Page 1 of 1

64-bit merge module not recognized

Posted: Thu Nov 21, 2019 10:46 am
by khalprin
I'm using InstallAware X10 and I have a project that can be built in either 32 or 64 bit mode. I recently upgraded from version X3 where this project built in either mode without error.

When I build the project in X10 using the 64 bit mode (from the IDE with the compiler variable set for 64 bit mode or from the command line with a parameter to set the compiler variable to 64 bit), I get an error when InstallAware tries to add a merge module to the install database. Before I start the project I make sure the correct version (32 or 64) of the merge module file is in the folder used by the project. It reports this error:

Error during build: Unable to merge Windows Installer database with module OPC_COM_ProxyStub_MergeModule

When building the 32 bit mode, the project completes the build process successfully.

I have a suspicion that the project is set to 64 bit mode, but is then set back to 32 bit mode. I haven't been able to find anything that would do this - and again - this project worked successfully in 64 bit mode using InstallAware X3. No changes have been made other than what InstallAware may have done to upgrade the project. The reason I wonder about the 32-bit mode is that the command line shows the mode set to 64 bit mode and then later shows the mode as 32-bit. Shown in the attached image:

CommandLine.png
View of output at start of command line build.
CommandLine.png (31.93 KiB) Viewed 4511 times


My project is put into 64 bit mode using the msicode shown below. This is the very beginning of the main script. Shown in the attached image 64bitModeSetup.png

64bitModeSetup.png
msicode script to setup 64 bit mode
64bitModeSetup.png (37.4 KiB) Viewed 4511 times



Any thoughts on what might be occurring?

Thanks,
Ken

Re: 64-bit merge module not recognized

Posted: Thu Jan 23, 2020 1:49 pm
by FrancescoT
I suspect that probably, you are not assigning your custom compiler variables correctly.
Do you have any of these which get assigned by default?