4

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

使用 WiX Toolkit 3.7 和Visual Studio 2012,我构建了一个安装 .NET 4.0 和 SQL Server Compact 的Burn引导程序,然后是我的 MSI 文件,其中包含所有 DLL 文件等。我通过阅读文档和其他问题来做到这一点关于 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。

4

1 回答 1

10

您错误地理解了引导程序的概念。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>
于 2013-06-11T11:42:50.393 回答