0
votes

I have a weird msi!!!

I have installed my 32bit msi(target=x86) on 64 bit machine, every things seems to work fine except some COM dlls which fails to load and gets "An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B)" this error.

I have noticed that the same COM dlls works fine on 64bit machine on development environment. I am clueless why msi installed COM's have the problem.

Regards,

Girish

2
Did you make sure that your 32bit installation package contains only 32bit COM dlls ? Also COM registration requires UAC elevation. - Indy9000
thank you for the reply, i'm sure that those are 32bit COM dll's as it is working fine on the 32bit OS. Also what i noticed from this is the same COM DLL's loads fine when i work VS 2008 development on 64 bit machine - Giri Deshi

2 Answers

0
votes

If you're using InstallShield to create the MSI, then the COM information merged into the registry may or may not be in the correct location. Since InstallShield will typically extract the registry information during installer build, and merges that into the registry at install time it may or may not be getting things correct if you haven't double checked this.

You'll want to ensure that the COM information for the 32bit components exists only under the Wow6432Node key.

0
votes

Your C# program (exe projects) must be compiled as x86 (32 bit) in order to load x86 libraries.