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

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

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

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

我现在遇到的情况是,我的 MSI 文件是隐藏的,我唯一的文件是我的 Bootstrapper.exe。文件,我在安装过程中看到的唯一对话是 Bootstrap 对话。这是正确的还是我做的不好?

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

如果是这样,我猜我可以自定义 Bootstrap UI。

请您参考如下方法:

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

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

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

注意:考虑到您在 MSI 对话框中拥有许可协议(protocol)。

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

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


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!