Can I configure Windows Installer 3.0 with the Visual Studio 2012 compiler?

Recently Microsoft refused the decision to refuse support for Windows XP with the Visual Studio 2012 1. update. My product manager told me that I can switch to using the Visual Studio 2012 compiler provided:

  • We continue to support our Windows XP customers.
  • We do not introduce any additional prerequisites other than Windows XP SP3 (since we have a contract with some customers on this subject).

I tried to transform our solution to use the VC2012 XP toolkit, and now everything works well in terms of code. However, our WiX installer project complained that we were now trying to enable the VC2012 Runtime Merge Modules and that they only support Windows Installer 4.5. This version of the Windows installer was not available in Windows XP SP3, so this would mean that our customers would need to install the Windows Installer 4.5 Redistributable installer package in order to be able to install our product.

Can I get around this problem and still use these merge modules in a way that supports Windows Installer 3.0?

So, we are currently installing:

<Package InstallerVersion="300" /> 

But we need merge modules:

 <Package InstallerVersion="405" /> 

This would mean that we could not support Windows XP SP3 out of the box.

Here is the WiX error:

warning LGHT1104: the Microsoft_VC110_ATL merge module has an installer version of 405 that is larger than the product installer version 300. Combining a module with a higher version of the installer than the product with which it is merged can lead to invalid values ​​in the msi result. You must set the Package / @ InstallerVersion attribute to 405 or more to combine this merge module into your product.

+6
source share
2 answers

Install Windows Installer 4.5 along with the product. It is available for Windows XP SP2 and SP3. After all, the VC 2012 runtime environment is also not equipped with Windows and XP.

You may be stuck with the idea that you can only install your product as MSI with any necessary merge modules. With WiX Bootstrapper projects (WiX 3.6 and higher), you can easily create a chain of installers and combine them into a single EXE file. The engine (known as Burn ) also handles all necessary reboots. If you installed the latest version of WiX, you saw a burn in action.

If you go this route, you can also remove the merge modules from your MSI, and instead VC 2012 runtime into your chain.

+7
source

You need to set the InstallerVersion attribute in Package to install the necessary Windows installer for installation.

Ex. for Windows Installer 3.0

 <Package InstallerVersion="300" /> 
0
source

Source: https://habr.com/ru/post/947020/


All Articles