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

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

问题描述

我需要创建一个 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、Chrome 64 位和 Firefox 32 位的 64 位机器;我希望能够在两个浏览器中使用我的插件.

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,由于 heat.exe,它无法转换为 64 位 .msi漏洞.我得到了类似的东西: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 位位置和自定义操作以创建 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 将 2 个安装程序链接在一起来完成.

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.

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

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