如何为多个 MSI 文件构建引导程序?
Posted
技术标签:
【中文标题】如何为多个 MSI 文件构建引导程序?【英文标题】:How to build a bootstrapper for multiple MSI files? 【发布时间】:2013-06-21 13:05:54 【问题描述】:我遇到了以下问题:使用 WiX 3.7,我构建了一个安装程序,它创建了几个本地化的 MSI 文件,例如:
..\bin\x86\Release\en-us\myProject.msi
..\bin\x86\Release\fr-fr\myProject.msi
..\bin\x86\Release\de-de\myProject.msi
此外,我创建了一个 Burn 引导程序项目,该项目应确保已安装 .NET 4.5:
...
<Chain>
<PackageGroupRef Id="NetFx45Web"/>
<MsiPackage SourceFile="$(var.myProject.TargetPath)"></MsiPackage>
</Chain>
...
现在我预计 Burn 引导程序项目会创建:
..\bin\x86\Release\en-us\myProject.exe
..\bin\x86\Release\fr-fr\myProject.exe
..\bin\x86\Release\de-de\myProject.exe
但 MsiPackage 需要一个文件。
Burn 项目通常可以按我的预期工作吗?
如果不是这样,是否有可能知道创建的 MSI 文件的确切名称?我无法对 MSI 文件名进行硬编码,因为输出名称可能会有所不同。
【问题讨论】:
【参考方案1】:我不认为这是可能的...如果您使用 MSBuild 或类似的东西,您可以在构建 MSI 包时构建它。
或者你可以使用一个简单的脚本来调用带有参数-dYOUR_VARIABLE=myProject.msi
的candle.exe。
请参阅 Working with MSBuild 了解更多信息。
【讨论】:
以上是关于如何为多个 MSI 文件构建引导程序?的主要内容,如果未能解决你的问题,请参考以下文章
强制 WiX Burn 引导程序允许 MSI 文件使用 REINSTALLMODE=amus
如何从包含多个 MSI 的 wix 自定义引导程序包中安装/卸载单个 msi,例如安装项目的添加/删除功能?