创建一个msi软件包,在计算机上安装32位和64位资源

KoK*_*oKa 3 windows-installer wix 32bit-64bit firebreath

我需要创建一个MSI包,它可以在一台机器上安装基于firebreath的插件的32位和64位.dll文件.

我想要实现的是安装两个资源并根据浏览器使用适合的资源(32位或64位).例如,如果我有64位的Windows机器,Chrome 64位和Firefox 32位机器; 我希望能够从两个浏览器中使用我的插件.

为此,我使用的是Visual Studio 2008和Wix.到目前为止,我能够创建一个32位.dll,它被转换为32位.msi和64位.dll,由于heat.exe而无法转换为64位.msi错误.我得到类似的内容:https://groups.google.com/forum/#!msg/firebreath-dev/HMGYEgZamUQ/35WJWfB4zegJ

之前提到的实现将创建2个不同的.msi安装程序(如果64位msi没有失败).我想要做的是生成两个.dll文件(32位.dll和64位.dll),然后将它们打包在一个单独的.msi安装程序中,它们同时注册这两个文件.

这是可能的,如果是这样,最好的方法是什么?

Chr*_*ter 7

Windows Installer不支持此功能.严格来说,.MSI包是特定于平台的.创建"混合"安装程序有一些技巧和窍门.这需要创建一个32位MSI,它可以破坏MSI检查以将文件安装到64位位置,并创建自定义操作来创建64位注册表项.

本书的答案是创建一个32位和64位MSI,然后将它们封装在一个引导程序中,该引导程序通过程序和功能进行注册,并安装2个MSI.在WiX中,这将使用Burn将2个安装程序链接在一起.