WixManagedBootstrapperApplicationHost 自定义 UI

WixManagedBootstrapperApplicationHost custom UI

我创建了一个 msi,它允许用户查看许可证、select 安装文件夹和要安装的功能。一切正常。

现在我需要创建一个引导程序来检查是否安装了 framework 4.5,如果没有安装,然后安装 msi。

我可以使用 WixStandardBootstrapperApplication.RtfLargeLicense 执行此操作,我会在其中安装框架,然后使用它自己的 UI.

执行 msi

但是如果我不想显示两个应用程序(msi over exe),而只显示一个应用程序怎么办window?

由于我的 msi 包含功能,标准引导程序不提供我可以从 msi 设置功能的界面,所以我需要创建一个自定义 UI。

问题是我不太明白 WixManagedBootstrapperApplicationHost 是如何工作的?我用 new UI 创建了一个 dll,并将其放在 Payload 中。当 运行 设置时,当需要安装框架时,WixManagedBootstrapperApplicationHost 总是调用它自己的 window 说:

Microsoft .NET Framework required for MyApp Setup. Click the "Accept and Install" button to accept the Microsoft .NET Framework license terms.

在完成 .NET Framework 安装后,它会调用我在 dll 中创建的 UI。为什么会有人想要这种功能,我的引导程序应用程序包含与框架安装 UI 完全不同的 UI?带有自定义 UI 的引导程序的想法不是提供完全自定义的 UI 吗?

那么,如何为该框架安装部分提供我的自定义 UI?

我假设你自己的 UI 是 C# 和 WPF?如果您将它安装在没有 .Net 的机器上,那么它需要安装 .Net 才能显示 WPF UI。我可能是错的,但我确定这是不可避免的。

如果您想替换/修改 .Net 安装屏幕,那么这个帖子看起来有答案:

Wix Burn: Basic UI handling if No Net Framework is there

但是,如果您说 .Net 安装对话框在安装过程中的某个时候出现在您的 UI 上,那么您需要将安装命令设置为“/q”,这意味着安静(没有 UI).