如何解决Burn/Bootstrapping:仅在用户选择时执行 Chainelement
我们想要构建一个安装程序,其中包含已经作为独立 msi 文件提供的第三方依赖项。一些第三方依赖项是可选的,由用户决定是否安装。
可以使用 Installation Package Bundles 捆绑多个独立安装程序,并且在没有可选约束的情况下按预期工作。
我们现在的问题是,Bundle 是否允许(可选)“功能”,可由用户选择?
如果没有,一个想法是使用选择/取消选择元素构建自己的 UI 对话,设置变量并在 MsiPackage element 的 InstallCondition
属性中使用这些变量。但我们更愿意创建和维护尽可能少的代码。
目前(并精简),我们的 wix 代码如下所示:
<?xml version="1.0"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="Acme Product" Version="1.0.0" Manufacturer="Acme"
UpgradeCode="XXXX">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense">
<bal:WixStandardBootstrapperApplication
logoFile="resources/logo_64x64.png"
ShowVersion="yes"
/>
</BootstrapperApplicationRef>
<bal:Condition Message="Requires Windows >= 10">
<![CDATA[VersionNT >= v10.0 AND VersionNT64]]>
</bal:Condition>
<Chain>
<MsiPackage Id="MainProduct" SourceFile="resources/obligatory.msi" Compressed="yes" Vital="yes"/>
<MsiPackage Id="OptionalThirdPartyAppA" SourceFile="resources/optionalA.msi" Compressed="no" Visible="yes"/>
<MsiPackage Id="OptionalThirdPartyAppB" SourceFile="resources/optionalB.msi" Compressed="no" Visible="yes"/>
</Chain>
</Bundle>
</Wix>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。