Create single setup to install x64 & x86 msi
-
Hi, I have to create a single setup package which on detection of User's machine decides which msi to consider(compiled for x86 bit machine or x64 bit machine). My Project using: 1. Visual Studio 2010 2. Coded in C# 3. Built on framework 4.0 4. Using Windows Installer 4.0 5. Prerequisits included (Framework 4.0 (integrated x86 & x64) and SQL Express2008 (integrated x86 & x64)) Problem is currently i have to build 2 setups for different target palteforms (x86 & x64) which bundeling same prerequist files. If a single setup can be done which decides which sub-msi to use will save more that 100 mb of files to be included in the package. Thus i want to create one setup.exe, one set of prerequisites and two msis' in separate folders (e.g. x86 & x64) which contains their respective msi file. So that executing setup.exe will search for firstly prerequisites & then on the basis of system will run the appropriate msi to install. Regards, honeyashu
-
Hi, I have to create a single setup package which on detection of User's machine decides which msi to consider(compiled for x86 bit machine or x64 bit machine). My Project using: 1. Visual Studio 2010 2. Coded in C# 3. Built on framework 4.0 4. Using Windows Installer 4.0 5. Prerequisits included (Framework 4.0 (integrated x86 & x64) and SQL Express2008 (integrated x86 & x64)) Problem is currently i have to build 2 setups for different target palteforms (x86 & x64) which bundeling same prerequist files. If a single setup can be done which decides which sub-msi to use will save more that 100 mb of files to be included in the package. Thus i want to create one setup.exe, one set of prerequisites and two msis' in separate folders (e.g. x86 & x64) which contains their respective msi file. So that executing setup.exe will search for firstly prerequisites & then on the basis of system will run the appropriate msi to install. Regards, honeyashu
I don't think that is possible, every app I have downloaded that has a different requirement for 86/64 has supplied separate MSIs. I would be mightily annoyed if I had to download x86 files when installing on a 64 machine!
Never underestimate the power of human stupidity RAH
-
Hi, I have to create a single setup package which on detection of User's machine decides which msi to consider(compiled for x86 bit machine or x64 bit machine). My Project using: 1. Visual Studio 2010 2. Coded in C# 3. Built on framework 4.0 4. Using Windows Installer 4.0 5. Prerequisits included (Framework 4.0 (integrated x86 & x64) and SQL Express2008 (integrated x86 & x64)) Problem is currently i have to build 2 setups for different target palteforms (x86 & x64) which bundeling same prerequist files. If a single setup can be done which decides which sub-msi to use will save more that 100 mb of files to be included in the package. Thus i want to create one setup.exe, one set of prerequisites and two msis' in separate folders (e.g. x86 & x64) which contains their respective msi file. So that executing setup.exe will search for firstly prerequisites & then on the basis of system will run the appropriate msi to install. Regards, honeyashu
I don't think it can be done with an MSI installer. You need to have two projects which build two versions of the .msi and which you both provide for download to the user. You could write a tiny application that checks the platform, downloads the appropriate MSI and uses Process.Start to run it. Most applications don't bother with this, they expect users to know which platform they're on.
-
I don't think that is possible, every app I have downloaded that has a different requirement for 86/64 has supplied separate MSIs. I would be mightily annoyed if I had to download x86 files when installing on a 64 machine!
Never underestimate the power of human stupidity RAH
Thanks for your reply, but what i want is i want to create one setup.exe, one set of prerequisites and two msis' in separate folders (e.g. x86 & x64) which contains their respective msi file. Thus running on setup.exe will search for firstly prerequisites & then on the basis of system will run the appropriate msi to install. Regards, Ashish
-
Thanks for your reply, but what i want is i want to create one setup.exe, one set of prerequisites and two msis' in separate folders (e.g. x86 & x64) which contains their respective msi file. Thus running on setup.exe will search for firstly prerequisites & then on the basis of system will run the appropriate msi to install. Regards, Ashish
OK, so what's the problem then?? Other than, yes it's possible. Setup.exe wrapped installers like this are made all the time. BTW: Your pre-req's, depending on what they are and how your application uses them, would possibly ALSO have to be seperated into x86 and x64 versions. You cannot mix 32 and 64-bit code in the same process, so if your app is running 64-bit, it cannot use a 32-bit library.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak -
OK, so what's the problem then?? Other than, yes it's possible. Setup.exe wrapped installers like this are made all the time. BTW: Your pre-req's, depending on what they are and how your application uses them, would possibly ALSO have to be seperated into x86 and x64 versions. You cannot mix 32 and 64-bit code in the same process, so if your app is running 64-bit, it cannot use a 32-bit library.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak -
Problem is i am unable to find a way to create such type of setup.exe which should call appropriate msi to run on correct system.
You can create the Setup.exe in any language you want. C and C++ won't require you to install a prereq just to run the Setup.exe. You could use C# or VB.NET, but the user would have to install the .NET Framework on the machine first (if needed) before the user launches your Setup.exe. In any case, all your Setup.exe is doing is determining which bitness of Windows it's running on then starting a new Process with the appropriate command line to launch your installer, such as "msiexec /i myinstall.msi" and waiting for it to end.
A guide to posting questions on CodeProject[^]
Dave Kreskowiak