问题描述
我们想要构建一个安装程序,其中包含已经作为独立 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 (将#修改为@)