alter_ego_dev2
Posts: 23
Joined: Wed May 10, 2023 4:09 pm

How to correctly add merged modules?

Hey, guys
I would like to add merged modules to an installer project. There are three merged modules which have the same driver for different platforms (x86, x64, arm64):
https://github.com/OpenVPN/ovpn-dco-win ... -amd64.msm
https://github.com/OpenVPN/ovpn-dco-win ... -arm64.msm
https://github.com/OpenVPN/ovpn-dco-win ... co-x86.msm
At the moment my installer has two builds:
The first (DefaultBuild) package type parameter is 32-bit package, to support both x32 and x64 operation systems. Custom actions have special conditions, can detect OS architecture to correctly use x32 or x64 resources.
The second one (Arm64Build) package type parameter is arm64 package.

The first problem, I can't add both ovpn-dco-amd64.msm and ovpn-dco-x86.msm from Advanced installer UI. The installer adds first msm file successfully, then it do nothing on adding the second msm file. Why?

The second problem, even when I add only one ovpn-dco-amd64.msm file, advanced installer fails on build:
Merge operation FAILED for module: C:\...ovpn-dco-amd64.msm. Error: Merging 64bit module into 32bit database.
Does it mean that 32-bit package installer can't use x64 msm file? In this case I can't have one installer for both (x86 and x64) architectures.

Is it possible to use merge modules conditionally? For example, for the first build configuration use one msm file and for the second build configuration use another msm file?
Catalin
Posts: 6623
Joined: Wed Jun 13, 2018 7:49 am

Re: How to correctly add merged modules?

Hello,

An MSI package is basically a database.

The merging operations tries to merge the two databases, yours and the MSMs.

It is indeed true that since the two databases are different, they can not be merged - unfortunately this is a limitation of Windows Installer.

The only way this works is with 32-bit module which can be merged into both 32-bit and 64-bit MSIs.
Is it possible to use merge modules conditionally?
Unfortuantely, I'm afraid that this is not possible. :(

Please let me know if you have any other questions and I will gladly assist.

Best regards,
Catalin
Catalin Gheorghe - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Return to “Building Installers”