创建一个在计算机上安装32位和64位资源的msi软件包 [英] Create an msi package which installs both 32-bit and 64-bit resources on a machine

查看:163
本文介绍了创建一个在计算机上安装32位和64位资源的msi软件包的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要创建一个MSI软件包,该软件包在计算机上安装基于Firebreath的插件的32位和64位.dll文件。

I need to create an MSI package which installs both 32-bit and 64-bit .dll files of a firebreath based plugin on a machine.

我想要实现的是既安装了资源,又根据浏览器(32位或64位)使用了合适的资源。例如,如果我有一台装有Windows的64位计算机,Chrome 64位和Firefox 32位;我希望能够在两个浏览器中都使用我的插件。

What I want to achieve is have both resources installed and use the one suitable depending on the Browser (32-bit or 64-bit). For instance, if I have a 64-bit machine with Windows, Chrome 64-bit and Firefox 32-bit; I want to be able to use my plugin from both browsers.

为此,我使用的是Visual Studio 2008和Wix。
到现在为止,我已经能够创建一个32位.dll,该文件将转换为32位.msi,并将一个64位.dll转换为64位.msi,由于heat.exe错误。我得到类似的信息: https://groups.google .com / forum /#!msg / firebreath-dev / HmGYEgZamUQ / 35WJWfB4zegJ

To do so, I am using Visual Studio 2008 and Wix. Up to now I was able to create a 32-bit .dll which is converted in a 32-bit .msi and a 64-bit .dll which fails to be converted to a 64-bit .msi, due to a heat.exe bug. I get something similar to this: https://groups.google.com/forum/#!msg/firebreath-dev/HmGYEgZamUQ/35WJWfB4zegJ

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

The implementation mentioned before would create 2 different .msi installers (if the 64-bit msi didn't fail). What I would like to do is generate both .dll files (32-bit .dll and 64-bit .dll) and then package them in one single .msi installer which registers both.

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

Is this possible and if so what would be the best way to do it?

推荐答案

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

Windows Installer doesn't support this. Strictly speaking an .MSI package is platform specific. There are some hacks and tricks to create a "hybrid" installer. This entails creating a 32bit MSI that subverts MSI checks to install files to 64 bit locations and custom actions to create 64bit registry keys.

本书的答案是创建32位并64位MSI,然后将它们封装在引导程序中,该引导程序向程序和功能注册,并在幕后安装2个MSI。在WiX中,这可以通过使用Burn将两个安装程序链接在一起来实现。

The book answer is to create a 32bit and 64bit MSI and then encapsulate them in a bootstrapper that registeres itself with Programs and Features and installs the 2 MSI's under the covers. In WiX this would be accomplished using Burn to chain the 2 installers together.

这篇关于创建一个在计算机上安装32位和64位资源的msi软件包的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆