微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Burn/Bootstrapping:仅在用户选择时执行 Chainelement

如何解决Burn/Bootstrapping:仅在用户选择时执行 Chainelement

我们想要构建一个安装程序,其中包含已经作为独立 msi 文件提供的第三方依赖项。一些第三方依赖项是可选的,由用户决定是否安装。

可以使用 Installation Package Bundles 捆绑多个独立安装程序,并且在没有可选约束的情况下按预期工作。

我们现在的问题是,Bundle 是否允许(可选)“功能”,可由用户选择?

如果没有,一个想法是使用选择/取消选择元素构建自己的 UI 对话,设置变量并在 MsiPackage elementInstallCondition 属性中使用这些变量。但我们更愿意创建和维护尽可能少的代码

目前(并精简),我们的 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 举报,一经查实,本站将立刻删除。