我们有一段时间有点复杂的MSI安装程序(WiX),现在需要在MSI之后(可能在之前)调用某些可执行文件。这些可执行文件必须在msiexec之外运行。所以我刚刚开始使用WiX引导程序捆绑当前的MSI,然后调用之后需要的EXE,如下所示:
<Bundle Name=".......">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">
<bal:WixStandardBootstrapperApplication
LicenseUrl=""
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" />
</BootstrapperApplicationRef>
<Chain>
<MsiPackage Id="MainMSI" SourceFile="installer.msi" DisplayInternalUI="yes" />
<ExePackage Id="EXE1"
InstallCommand="...."
SourceFile="Exe1.exe" />
由于我们拥有的所有对话框(许可证,选项等)都在MSI中(我们希望保持这种方式,大多数情况下),使引导程序不是的最佳方法是什么? em>在MSI之前显示任何UI?目前我有一个带有几个来自引导程序的按钮的白色对话框,但有没有办法告诉引导程序在开始时不显示任何对话框,甚至立即跳转到MSI?
MSI完成后,我想建立一些对话框,显示正在运行的EXE和“完成”对话框的一些进展。我想那必须来自引导程序?怎么做?或者我是否需要创建一个显示“完成”对话框的简单“完成”MSI?
由于
答案 0 :(得分:0)
我认为使用StandardBootstrapper是不可能的,但使用自定义托管引导程序肯定是可行的。在自定义MBA中,您可以自己创建捆绑UI。特别是,当在命令行上传递switch / quiet时,根本不创建UI。但即使是正常情况,您也可能无法创建UI或创建一些不可见的UI。
然而,这将违背Burn哲学:所有UI都应该在引导程序中,而MSI应该是愚蠢的。