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

13

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

目前我所做的方式是创建两个完全相同的项目,一个引用difxapp_x86,另一个引用difxapp_x64。有没有更好的方法可以改进呢?

如果我引用difxapp_x86并构建64位版本,则不出所料地会出现错误:

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

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

谢谢, Alan


我也遇到了同样的错误。不要使用DIFXAPP,而是使用一个自定义操作,简单地调用SetupCopyOemInf并进行一些错误处理,这样可以让你为32位和64位Windows制作一个安装程序(我已经成功做过很多次,只是没有使用WiX)。 - David Grayson
1个回答

18

我成功找到了一种解决方案,涉及手动编辑项目文件。

我更改了以下部分:

<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>
现在,引用路径将由平台变量的状态确定。希望这对有着相同需求的其他人有所帮助。
Alan

2
注意:上述内容有助于为不同平台构建MSI,但并不能解决需要一个x86和一个x64的两个MSI的问题。 - Damian Dixon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接