> -----Original Message----- > From: tzleon [mailto:tzl...@gmail.com] > Sent: Monday, June 25, 2012 06:52 > To: wix-users@lists.sourceforge.net > Subject: [WiX-users] How to mix 32bit driver and 64bit driver into same > package? > > I wish to mix 32bit driver and 64bit driver into same package, but the problem > is the two referenced library difxapp_x64 and difxapp_x85 can't be imported > into same package, otherwise, there is a error as below: > > "Error 1 Duplicate symbol 'CustomAction:MsiProcessDrivers' found. > This > typically means that an Id is duplicated. Check to make sure all your > identifiers of a given type (File, Component, Feature) are unique. > C:\Program Files (x86)\Windows Installer XML v3.6\bin\difxapp_x86.wixlib > 0 1 > HKeySetup" > > How to solve this problem?
I was unable to find a method for creating an MSI that works on both 32-bit and 64-bit Windows when using DIFxApp. After some investigation, I concluded that it was impossible without having access to source code of DIFxApp to create a custom version of DIFxApp. The solution I used was as follows: 1. All bit-agnostic files were specified to be stored in a common media CAB file with a bit-agnostic filename. This way, the same software distribution download can support both 32-bit and 64-bit Windows without significant increase in file size - both 32-bit and 64-bit MSI files can share the same cabinet. 2. All 32-bit specific or 64-bit specific files were specified to be stored in separate CAB files: one for 32-bit and one for 64-bit. 3. The WiX source code was customized so that it could be compiled for either 32-bit or 64-bit use using conditional compilation. 4. The build script builds both 32-bit and 64-bit versions using appropriate conditional compilation variables. The resulting shared cabinet files (#1) are then compared to be sure they are identical, and then the output directories are merged. 5. Launch conditions are used to prevent the 32-bit MSI from running on 64-bit Windows. The 64-bit MSI is specified as being a 64-bit MSI, so it won't even run on a 32-bit system. 6. The bootstrapper decides which MSI to use, based on the bitness of the computer. This solution allows you to use the MSI files as-is without fussing with any special command line parameters (e.g. for transforms). Maybe there is a cleaner way to do this but I haven't found it. ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users