问题 使用Wix安装32位和64位驱动程序?


我有一个Wix项目,我希望在使用x86版本配置构建时安装32位驱动程序,使用x64构建时安装64位驱动程序。

我刚刚这样做的方式是两个相同的项目,但一个引用difxapp_x86,另一个引用difxapp_x64。我能改进吗?

另外,如果我引用difxapp_x86并构建64位版本,那么毫不奇怪我得到了msi错误:

“DIFXAPP:错误 - 您需要使用64位版本的DIFXAPP.DLL在此计算机上安装驱动程序。”

是否可以根据所选的构建配置有条件地引用这些?

谢谢, 艾伦


4964
2018-01-03 14:22


起源

我也得到了同样的错误。简单地调用SetupCopyOemInf并执行一些错误处理的自定义操作应该允许您为32位和64位Windows制作一个安装程序(我已经成功完成了多次,而不是使用WiX),而不是使用DIFXAPP。 - David Grayson


答案:


我设法找到了一个解决方案,涉及手动编辑项目文件。

我改变了以下部分:

<ItemGroup>
  <WixLibrary Include="difxapp_x86">
    <HintPath>C:\Program Files\Windows Installer XML v3.5\bin\difxapp_x86.wixlib</HintPath>
    <Name>difxapp_x86</Name>
  </WixLibrary>
</ItemGroup>

以下内容:

<ItemGroup>
  <WixLibrary Include="difxapp_$(Platform)">
    <HintPath>C:\Program Files\Windows Installer XML v3.5\bin\difxapp_$(Platform).wixlib</HintPath>
    <Name>difxapp_x86</Name>
  </WixLibrary>
</ItemGroup>

现在,引用的路径将由Platform变量的状态决定。希望它有同样的要求帮助其他人。

艾伦


15
2018-01-03 15:03



注意:以上内容有助于为不同平台构建MSI。它没有解决需要两个MSI的x86和一个x64的问题。 - Damian Dixon