
esiemiat asked a question.
COM Extract TypeLib Information
I have 8 TLB, 1 EXE, and 7 DLL files that I am using the COM Extract at Build functionality on. At build time the COM data is extracted from the files without error, however when I check the MSI all of the TypeLib information that is extracted contains hardcoded paths which point to the folder the files were in on the build machine.
When I run the installer on a clean machine these paths find there way into the registry and cause my app to throw errors until I correct these paths in the registry.
What could be causing this? Why does the CLSID section substitute the actual file paths while the TYPELIB section does not? Are the DLL's not designed properly?
(I don't know off hand whether we perform this substitution for all registry entries laid down during self-registration, or whether it's just the set that we know are COM-related paths. I'm hoping an example could let us identify that.)
I attached a REG file that I exported from the MSI that was built from the project. The path to the file on the build machine is listed inside the REG file as D:\\Projects\\IShield\\Installs\\[ CD Images ]\\Pages\\PCD\\pages\\bin\\PagesePages65.tlb" while the path on the target computer is really C:\Program Files\...
I did some more playing around this morning and discovered that if I extract the COM info from inside the IDE everything works as expected, it is only when I extract at build time that there is a problem. In fact, registry keys created under our own key are extracted properly from the IDE while they show up as hard coded paths when Extracted at build time. What would be causing this
I should note that I am running InstallShield 2009 on Vista x65 SP1, and InstallShield 2008 is also installed on this box. Could that be causing this issue?
[CODE]REGEDIT4
[HKEY_CLASSES_ROOT]
[HKEY_CLASSES_ROOT\TypeLib]
[HKEY_CLASSES_ROOT\TypeLib\{3911E92C-0D4C-4BD6-9D19-AA88DE471A87}]
[HKEY_CLASSES_ROOT\TypeLib\{3911E92C-0D4C-4BD6-9D19-AA88DE471A87}\6.5]
@="PagesePages65"
[HKEY_CLASSES_ROOT\TypeLib\{3911E92C-0D4C-4BD6-9D19-AA88DE471A87}\6.5\FLAGS]
@="0"
[HKEY_CLASSES_ROOT\TypeLib\{3911E92C-0D4C-4BD6-9D19-AA88DE471A87}\6.5\HELPDIR]
@="D:\\Projects\\IShield\\Installs\\[ CD Images ]\\Pages\\PCD\\pages\\bin"
[HKEY_CLASSES_ROOT\TypeLib\{3911E92C-0D4C-4BD6-9D19-AA88DE471A87}\6.5\0]
[HKEY_CLASSES_ROOT\TypeLib\{3911E92C-0D4C-4BD6-9D19-AA88DE471A87}\6.5\0\win32]
@="D:\\Projects\\IShield\\Installs\\[ CD Images ]\\Pages\\PCD\\pages\\bin\\PagesePages65.tlb"
[HKEY_CURRENT_USER]
[HKEY_LOCAL_MACHINE]
[HKEY_USERS]
[HKEY_USER_SELECTABLE][/CODE]
That said, it sounds like you've got it working now?