指定 Burn Bootstrapper 先决条件

Specifying Burn Bootstrapper prerequisites

我很遗憾缺少 Wix Burn 引导程序引擎的文档。我希望我能回答一些具体问题。

我知道 Burn 引擎需要 .Net 4.0。它似乎有自己的迷你引导程序,如果它不存在,它将安装 .Net 4.0。

(1) .Net 4.5 应该是 .Net 4.0 的就地替代品。如果 mini-bootstrapper 看到 4.5 存在,它会识别这个并且不安装 4.0 吗?

(2) 我的应用程序和自定义引导程序需要 .Net 4.5。我可以告诉迷你引导程序安装 4.5 而不是 4.0 吗?

这直接引出了关于 BootstrapperCore.config 的问题。

(3) startup、supportedRuntime 元素如何与此相关联?

(4) 在哪里可以找到允许值列表以及版本和 sku 属性的语法?

(5) 如果我只想要 4.5,我还应该包括 4.0 的支持运行时吗?

(6) host、supportedFramework 元素如何与此关联?

(7) 如果我的自定义引导程序需要 4.5,如果我包含 4.0 的受支持框架并且 4.0 存在但 4.5 不存在,它会失败吗?

(8) 如果我需要 4.5 而目标系统已经有 4.5.1(或更高版本),Burn 会识别它并跳过安装 4.5 吗?

另外,可能不相关,v4/Full和v4/Client有什么区别?

0) 这是错误的。 Burn 只需要 XP 或更高版本,不需要 .NET。

1) Burn 不会自动安装 .NET 4(请参阅 0)。 "mini-bootstrapper" 是 ManagedBootstrapperApplicationHost(又名 mbapreq)。

2) 在 WiX 3.9 之前,mbapreq 只会安装一个包 - 由 WixVariable WixMbaPrereqPackageId 指定的包。从 WiX 3.9 开始,您可以使用 bal:PrereqSupportPackage 属性获取 mbapreq 来安装多个包。

3) startupsupportedRuntime 元素是 .NET 配置文件中的标准元素,并记录在 MSDN 上。

4) 参见 MSDN documentation

5) 号

6) hostsupportedFramework 元素由 WiX 定义。 supportedFramework 元素用于表明您支持 .NET 的客户端安装,因为 .NET 4.5 和更高版本不再需要指定任何 supportedFramework 元素。 host 元素用于告诉 mbapreq 哪个程序集具有您的 BootstrapperApplication class.

7) 是的。

8) mbapreq 如果它可以加载基于您的 BootstrapperCore.config 的 .NET 框架,则不会显示 "mini-bootstrapper"。如果配置文件没有正确写入,它成功加载了 .NET 框架但无法加载您的 BA,那么它将无声地失败(尽管日志总是写入临时目录)。如果 DetectCondition 为真,Burn 不会尝试安装包。