【问题标题】:WiX Toolkit, MSI product with bootstrapper bundle, what is the correct sequence of events?WiX 工具集,带有引导程序包的 MSI 产品,正确的事件顺序是什么?
【发布时间】:2013-06-11 10:35:14
【问题描述】:

我的应用程序需要 12 个 DLL 文件和 .NET 4.0 客户端配置文件和 SQL Server Compact

使用 WiX Toolkit 3.7 和 Visual Studio 2012,我构建了一个 Burn 引导程序,用于安装 .NET 4.0 和 SQL Server Compact,然后是包含所有 DLL 文件等的 MSI 文件。我通过阅读StackOverflow 上有关 Wix 的文档和其他问题。我正在新安装的 Windows 7 机器上测试安装过程。 :)

但是,我对安装过程的一个方面感到困惑......

我认为我的 MSI 文件作为主安装程序运行,并且只有在目标计算机上缺少 .NET 4.0 CP 或 SQL Server Compact 时,引导程序才会启动并安装缺少的包。

我现在的情况是,我的 MSI 文件是隐藏的,我唯一的文件是我的 Bootstrapper.exe 文件,我在安装过程中看到的唯一对话框是引导程序对话框。这是正确的还是我做错了什么?

我已将 Bootstrapper 的构建输出更改为 MSI,所以我只剩下一个很棒的 MSI 文件。考虑到原来的 product.wxs 项目输出(MSI 文件)现在嵌入在 Bootstrapper.msi 文件中 - 我应该从原来的 product.wxs 项目中取出所有 UI 元素吗?

如果是这样,我猜我可以自定义引导程序 UI。

【问题讨论】:

    标签: wix burn


    【解决方案1】:

    您错误地理解了引导程序的概念。 Bootstrapper 链接所有包,包括您的 MSI 文件和其他先决条件。所以你应该总是运行引导程序。如果您的先决条件已经安装,那么引导程序将跳过这些并仅安装您的 MSI 安装程序。

    引导程序的主要目标是提供单一的用户体验。因此,您需要编写自己的 MBA(托管引导程序应用程序)来显示不同的安装程序页面并根据需要从用户那里获取输入。

    但是,如果您查看任何其他直接简单的解决方案,则需要将 DisplayInternalUI 属性设置为 yes,以便该 MSI 包显示对话框。但在这种情况下,引导程序窗口也会显示,直到安装完成。如果您选择此选项,我会给出一些修改默认 MBA 的建议。

    注意:考虑到您的 MSI 对话框本身中有许可协议。

    使用 HyperLinklicense 并将许可证 URL 设置为空。如果你使用下面的 Bal 扩展。您将获得带有安装和关闭按钮的普通安装程序页面。

    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">
        <bal:WixStandardBootstrapperApplication SuppressOptionsUI="yes" LicenseUrl="" LogoFile="logo.jpg" />
    </BootstrapperApplicationRef>
    

    【讨论】:

    • 非常感谢。这正是我想知道的。
    • 我正在寻找的问题和答案。谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-03-08
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 2021-05-03
    • 2013-03-02
    • 1970-01-01
    相关资源
    最近更新 更多