我创建了一个msi,允许用户查看许可证,选择安装文件夹和要安装的功能。这一切都运作良好。
现在我需要创建一个引导程序来检查框架4.5是否已安装,如果没有,则安装它,然后安装msi。
我可以使用WixStandardBootstrapperApplication.RtfLargeLicense来执行此操作,我将在其中安装框架,然后使用自己的UI执行msi。
但是如果我不想显示两个应用程序(msi over exe),但只有一个窗口呢?
由于我的msi包含功能,标准的bootstrapper不提供我可以从msi设置功能的界面,所以我需要创建一个自定义UI。
问题是我不太明白WixManagedBootstrapperApplicationHost是如何工作的?我用新UI创建了一个dll,并将其放在Payload中。运行安装程序时,需要安装框架时,WixManagedBootstrapperApplicationHost始终调用自己的窗口,其中显示:
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。为什么有人想要这种功能,我的bootstrapper应用程序包含与框架安装UI完全不同的UI?使用自定义UI的bootstrapper的想法是不是提供完全自定义的UI?
那么,我如何为该框架安装部分提供我的自定义UI?
答案 0 :(得分:0)
我假设您自己的UI是C#和WPF?如果你在没有.Net的机器上安装它,那么在它可以显示WPF UI之前需要安装.Net。我可能错了,但我确信这是不可避免的。
如果你想替换/修改.Net安装屏幕,那么这个线程看起来就像它有答案:
Wix Burn: Basic UI handling if No Net Framework is there
但是,如果您说在安装的某个时刻您的UI上显示.Net安装对话框,那么您需要将Install命令设置为“/ q”,这意味着安静(没有UI)。