最近,Microsoft 放弃了放弃对带有 Visual Studio 2012 Update 1 的 Windows XP 的支持的决定。我们的产品经理告诉我,我可以转而使用提供的 Visual Studio 2012 编译器:
- 我们将继续支持我们的 Windows XP 客户。
- 除了 Windows XP SP3 之外,我们不会引入任何额外的先决条件(因为我们与一些客户签订了这方面的合同)。
我尝试将我们的解决方案转换为使用 VC2012 XP 工具集,现在从代码的角度来看,一切都运行良好。但是,我们的 WiX 安装程序项目抱怨我们现在试图包含 VC2012 运行时合并模块并且这些仅支持 Windows Installer 4.5。此版本的 Windows Installer 在 Windows XP SP3 中不可用,因此这意味着我们的客户必须安装 Windows Installer 4.5 Redistributable 软件包才能安装我们的产品。
是否可以解决此问题并仍然以支持 Windows Installer 3.0 的方式使用这些合并模块?
所以我们目前正在设置:
<Package InstallerVersion="300" />
但是合并模块似乎需要我们设置:
<Package InstallerVersion="405" />
这意味着我们不能开箱即用地支持 Windows XP SP3。
这是来自 WiX 的错误:
警告 LGHT1104:合并模块“Microsoft_VC110_ATL”的安装程序版本为 405,高于产品的安装程序版本 300。合并安装程序版本高于其要合并到的产品的模块可能会导致生成的 msi 中的值无效. 您必须将 Package/@InstallerVersion 属性设置为 405 或更高,才能将此合并模块合并到您的产品中。