我正在使用Burn中的.NET 4.0框架安装程序捆绑MSI包。由于我不喜欢用户界面Burn适用,我已经编写了自己的自定义Bootstrapper应用程序。如果尚未安装.NET框架,则会正确安装。但我无法弄清楚如何安装MSI包。这是我自定义BA的代码,我检查过它已被执行。
public class ShopProtectBA : BootstrapperApplication
{
protected override void Run()
{
//Here i would like to run the bundled MSI package.
Engine.Quit(0);
}
}
关于此的文档很少。我应该不在Run()中安装包吗?这个怎么样?
编辑:我忘了提到这是一个自定义的Managed Bootstrapper应用程序。如果它有任何区别。
我能想到的最好的是:
var pl = new PlanMsiFeatureEventArgs("MyMsiPackage", "Complete", FeatureState.Local);
Engine.Detect();
OnPlanMsiFeature(pl);
Engine.Plan(LaunchAction.Install);
Engine.Elevate(FindWindow(null, "Setup"));
Engine.Apply(FindWindow(null, "Setup"));
但它只会在一个窗口中告诉我安装已准备就绪。然后我关闭,没有更多的事情发生。
答案 0 :(得分:0)
还有更多内容:您必须要求引擎检测机器状态,计划包操作并应用它们。看一下WiX BA本身的源代码:src \ Setup \ WixBA。