Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to implement single installer for 32 & 64 platforms

Tags:

I work on an WIX based installer.

The installer builds to 32 and 64 platforms separately. The installers versions are very similar in both platforms but few conditional steps like avoid registering x64 native dlls in the 32 bit installer.

Is there a way to unite both of the installers to one?

like image 293
Elisha Avatar asked Dec 17 '09 14:12

Elisha


People also ask

What is 32bit installer?

A 32-bit package consists of only 32-bit Windows Installer components and must have the value "Intel" entered in the platform field of the Template Summary Property. For more information, see Windows Installer on 64-bit Operating Systems and 64-bit Windows Installer Packages.

Do I need 32 or 64-bit installer?

Do I Need 64-Bit Windows? For most people, 64-bit Windows is today's standard and you should use it to take advantage of security features, better performance, and increased RAM capability. The only rare reasons you'd want to stick with 32-bit Windows are: Your computer has a 32-bit processor.

How do I enable support for 32-bit applications?

You will see your computer's name in the left window, expand it and click on Application Pools. In the right window, right-click on DefaultAppPools and selects Advanced Settings. Select “Enable 32-bit Applications” and change it from False to True. Click OK and restart your computer.


1 Answers

It can't be done. It's a limitation of Windows Installer, if you want to do this without making it twice as large, then you'll need two MSI's with external CAB files and a bootstrapper to execute the correct installation.

If you don't need an MSI, try NSIS. You can do conditional installation based on OS architecture pretty easily.

Anyway, this has been also asked on the WiX-users list a number of times in recent weeks, the best response I can find is this one from Blair:

An MSI marked as 64-bit simply will not install on a 32-bit system. Nothing you can do.

An MSI marked as 32-bit simply cannot place files into a "64-bit directory" (they will be redirected to 32-bit "equivalent" folders). Nothing you can do.

An MSI cannot be marked as both 32- and 64-bit. Also nothing you can do.

The "correct" method is to generate two MSIs, one for 32-bit platforms and another for 64-bit platforms. They can share the same external cab files if you need to ship them together to save space. If you do that, you can use a bootstrapper to extract the appropriate one with your CAB(s) and install it.

like image 138
saschabeaumont Avatar answered Sep 29 '22 17:09

saschabeaumont