Register Assembly Issues

Got a problem you cannot solve? Try here.
skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Register Assembly Issues

Postby skibbs » Fri Jun 16, 2006 7:39 pm

I was really excited to see the new Register Assembly command to register .NET libraries for COM interop. I had been manually entering the required registry entries so an automated method would be a huge step forward.

I converted a 5.3 installer to 6.0 and utilized the Register Assembly command instead of my manual registry entries. This failed to properly register my libraries. I then generated .REG files for each library using REGASM, which I took and imported into InstallAware using the import tool. My installation still failed with a class not registered error.

I ran those same .REG files on a clean box, then ran my installation and it proceeded perfectly. I noticed that while importing the registry entries from a .REG file, InstallAware reverses the order of the entries which makes the majority of the entries fail during installation. You end up with registry paths that contain no keys.

Does the register assembly command work for anyone with .NET COM libraries? or the import .REG tool?

Could the reverse order issue plague both tools?

I really appreciate the new tools, once these issues get worked out they will be amazingly useful!

Thanks! :D

skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Postby skibbs » Fri Jun 16, 2006 7:45 pm

BTW I am using Version 6.0 (Build gwinnett_rtm.060606)

skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Postby skibbs » Fri Jun 16, 2006 7:51 pm

Code: Select all

REGEDIT4

[HKEY_CLASSES_ROOT\\Record\\{BFD582D4-8E25-390A-9562-D54F8AC4525C}\\1.0.2358.28333]
"Class"="WizardInstallers.WizardPage"
"Assembly"="WizardInstallers, Version=1.0.2358.28333, Culture=neutral, PublicKeyToken=1a2ccb77e57d159e"
"RuntimeVersion"="v2.0.50727"

[HKEY_CLASSES_ROOT\\Record\\{57C7D1FA-9E1E-3071-93EF-306BB59FE08B}\\1.0.2358.28333]
"Class"="WizardInstallers.Direction"
"Assembly"="WizardInstallers, Version=1.0.2358.28333, Culture=neutral, PublicKeyToken=1a2ccb77e57d159e"
"RuntimeVersion"="v2.0.50727"

[HKEY_CLASSES_ROOT\\WizardInstallers.WizardLoader]
@="WizardInstallers.WizardLoader"

[HKEY_CLASSES_ROOT\\WizardInstallers.WizardLoader\\CLSID]
@="{64EDF5B1-1614-42CA-844B-19632150CB6A}"

[HKEY_CLASSES_ROOT\\CLSID\\{64EDF5B1-1614-42CA-844B-19632150CB6A}]
@="WizardInstallers.WizardLoader"

[HKEY_CLASSES_ROOT\\CLSID\\{64EDF5B1-1614-42CA-844B-19632150CB6A}\\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="WizardInstallers.WizardLoader"
"Assembly"="WizardInstallers, Version=1.0.2358.28333, Culture=neutral, PublicKeyToken=1a2ccb77e57d159e"
"RuntimeVersion"="v2.0.50727"

[HKEY_CLASSES_ROOT\\CLSID\\{64EDF5B1-1614-42CA-844B-19632150CB6A}\\InprocServer32\\1.0.2358.28333]
"Class"="WizardInstallers.WizardLoader"
"Assembly"="WizardInstallers, Version=1.0.2358.28333, Culture=neutral, PublicKeyToken=1a2ccb77e57d159e"
"RuntimeVersion"="v2.0.50727"

[HKEY_CLASSES_ROOT\\CLSID\\{64EDF5B1-1614-42CA-844B-19632150CB6A}\\ProgId]
@="WizardInstallers.WizardLoader"

[HKEY_CLASSES_ROOT\\CLSID\\{64EDF5B1-1614-42CA-844B-19632150CB6A}\\Implemented Categories\\{62C8FE65-4EBB-45E7-B440-6E39B2CDBF29}]


InstallAware generates the MSICode in the attached PNG image

File Attached:

InstallAware_RegistryEntries.png

skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Postby skibbs » Fri Jun 16, 2006 7:57 pm

After installing my application with the .REG file imported via the tool, my registry entries for this simple example look like this...

File Attached:

InstallAware_ImportReg.png

skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Postby skibbs » Fri Jun 16, 2006 8:00 pm

After deleting the InstallAware entries and manually running the .REG file on the client machine my registry looks like this... which is correct.

File Attached:

Manual_ImportReg.png

skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Postby skibbs » Fri Jun 16, 2006 8:03 pm

Is there anything I can do to fix this?

I popped open the MSI with Orca to take a peak the registry entries while debugging the problem but didn't see them there, is it possible for me to see the registry entries in the compiled installer? If so, where are they located? I just would like to know so that I can debug issues locally a bit more efficiently in the future...

Thanks

skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Postby skibbs » Fri Jun 16, 2006 8:36 pm

I get the same result, whether I use the Import .REG or use the Register Assembly commands... I've attached a screenshot of the registry after using the Register Assembly command.

File Attached:

InstallAware_RegisterAssembly.png

MichaelNesmith
Posts: 3452
Joined: Thu Dec 22, 2005 7:17 pm
Contact:

Postby MichaelNesmith » Sat Jun 17, 2006 6:39 am

I would just delete the superfluous blank entries that are created by the REG import tool - that should take care of it for you.
Michael Nesmith
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/

skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Postby skibbs » Sun Jun 18, 2006 3:38 pm

MichaelNesmith wrote:I would just delete the superfluous blank entries that are created by the REG import tool - that should take care of it for you.


That will work for now, but will the Register Assembly/Import .REG tools be issued a patch soon? I'd love to skip all these manual changes all together with the Register Assembly tool.

I'm really liking the new features in IA6, great work :D

Thanks!

skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Postby skibbs » Mon Jun 19, 2006 7:09 pm

In a .REG File:

[HKEY_CLASSES_ROOT\\Record\\{57C7D1FA-9E1E-3071-93EF-306BB59FE08B}\\1.0.2358.28333]
"Class"="WizardInstallers.Direction"
"Assembly"="WizardInstallers, Version=1.0.2358.28333, Culture=neutral, PublicKeyToken=1a2ccb77e57d159e"
"RuntimeVersion"="v2.0.50727"

Should be inserted into the registry like this:

[HKEY_CLASSES_ROOT\\Record\\{57C7D1FA-9E1E-3071-93EF-306BB59FE08B}\\1.0.2358.28333]
"RuntimeVersion"="v2.0.50727"
"Class"="WizardInstallers.Direction"
"Assembly"="WizardInstallers, Version=1.0.2358.28333, Culture=neutral, PublicKeyToken=1a2ccb77e57d159e"
(After running the .REG file manually, then exporting the reg entries)

Instead InstallAware inserts this:

[HKEY_CLASSES_ROOT\\Record\\{57C7D1FA-9E1E-3071-93EF-306BB59FE08B}\\1.0.2358.28333]
"Class"="WizardInstallers.Direction"
@=""
(After running the IA MSI w/ the imported .REG file, then exporting the reg entries)


You can see that InstallAware not only creates additional blank entries, but it also omits values completely. This feature is completely broken. Will it be fixed soon?

Thanks!

MichaelNesmith
Posts: 3452
Joined: Thu Dec 22, 2005 7:17 pm
Contact:

Postby MichaelNesmith » Tue Jun 20, 2006 4:54 am

I tried to import a .REG file, and only one superfluous entry was created for the unnamed (default) value, and other entries were created successfully.

Deleting the superfluous root entry as previously discussed should resolve the issue for you.
Michael Nesmith

InstallAware

Home of The Next Generation MSI Installer

Get your free copy today - http://www.installaware.com/

skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Postby skibbs » Tue Jun 20, 2006 1:26 pm

I've attached a .REG file for you to try locally.

If you import this into IA and run your installer, your registry will not contain all of the entries.

If you then manually import the .REG file through Windows, you will see all the entries.

Thanks!

File Attached:

WizardInstallers.reg

MichaelNesmith
Posts: 3452
Joined: Thu Dec 22, 2005 7:17 pm
Contact:

Postby MichaelNesmith » Tue Jun 20, 2006 1:37 pm

Thanks, this file helps clarify the situation.
This is a REGEDIT4 format file. Do you have an opportunity to export this file as the latest REGEDIT format, and then try importing into InstallAware?
As far as I can see, the problem here is that multi-string values from the REG file are not being imported successfully under the REGEDIT4 format. Thanks for reporting it - I will have this logged in as a defect!
Michael Nesmith

InstallAware

Home of The Next Generation MSI Installer

Get your free copy today - http://www.installaware.com/

skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Postby skibbs » Tue Jun 20, 2006 5:30 pm

I am using REGASM, the built in Visual Studio tool, to export the .REG file for my .NET COM libraries. There does not appear to be an option that allows me to specify the output format.

Example:

regasm classLibrary.dll /regfile:classLibrary.reg

Thanks!

skibbs
Posts: 56
Joined: Thu Apr 27, 2006 5:06 pm
Location: Redmond, WA
Contact:

Postby skibbs » Thu Jun 29, 2006 8:45 pm

Multi-Valued attributes in general aren't importing correctly, in REGEDIT4 or REGEDIT5. So it doesn't just affect the REGEDIT4 format apparently.

I've attached a small subset of a .REG file in REGEDIT5 format (exported from my Windows registry using REGEDIT on XP).

Thanks!

File Attached:

WizardInstallers.reg


Return to “Technical Support”

Who is online

Users browsing this forum: No registered users and 166 guests