7

所以我有一个基于 WiX 的 MSI,它安装了一些设备驱动程序,因此我有一个 x64 和一个 x86 版本。该软件包还具有 .NET 3.5 依赖项,因此我正在生成一个引导程序来执行此操作,然后启动 MSI。我的问题是,是否有人知道创建引导程序的方法,该引导程序将检测它正在运行的平台并启动适当的 MSI。我已经用谷歌搜索了这样的解决方案,但到目前为止一无所获。谢谢!

4

3 回答 3

3

不幸的是,Windows Installer 需要一个单独的用于 x86 和 x64 的 MSI 包。

借助 WiX v3.6+,Burn 提供了将两个包“捆绑”在一起成为单个安装(由 Burn 可执行文件驱动)的功能。您可以使用 .wxs 文件来执行此操作,该文件有点像:

<Bundle ...>
  <BootstrapperApplicationRef Id='WixStandardBootstrapperApplication.RtfLicense' />

  <Chain>
    <MsiPackage InstallCondition='NOT VersionNT64' SourceFile='path\to\x86.msi' />
    <MsiPackage InstallCondition='VersionNT64' SourceFile='path\to\x64.msi' />
  </Chain>
</Bundle>

这才刚刚开始触及 Burn 可以做的所有事情的表面,但它展示了如何将两个架构包捆绑到一个安装体验中。

于 2013-03-17T21:43:16.450 回答
1

如果您在启动 msi 之前安装 .Net,您还可以包含一个用 c# 编写的 exe,它会检测您的平台,然后将答案传回您的引导程序。

我使用了一个检测平台的 exe,创建了一个我正在验证的 reg 密钥以决定启动什么。

C# 示例

于 2009-10-09T18:32:52.800 回答
0

dotNetInstaller可能是您需要使用的:您可以创建不同的“设置”配置,只有在满足操作系统、平台和语言的正确组合时才会触发这些配置。您还可以将任何 MSI、先决条件等嵌入到安装程序可执行文件中,这样用户只需下载/运行一个文件。

于 2010-09-03T22:30:29.557 回答