我将 MSI 包与 Burn 中的 .NET 4.0 框架安装程序捆绑在一起。由于我不喜欢 Burn 应用的用户界面,因此我编写了自己的自定义引导程序应用程序。.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() 中安装软件包吗?这个 ting 是如何工作的?
编辑:我忘了提到这是一个自定义的托管引导程序应用程序。如果它有什么不同。
我能想到的最好的是:
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"));
但这只会导致一个窗口告诉我安装已准备好。然后我关闭,没有更多的事情发生。