[译]:WiX Toolset使用技巧——使用Burn引擎安装.NET Framework
博客分类: 官方教程
返回目录索引
原文地址:Install the .NET Framework Using Burn
译文地址:WiX Toolset使用技巧——使用Burn引擎安装.NET Framework
How To: Install the .NET Framework Using Burn
使用.NET Framework编写应用时,通常需要将Framework一起打包,然后与应用一起安装。Wix 3.6及以上版本可以使用Burn处理。
步骤1:为应用创建捆绑包
具体处理步骤见:原文:Building Installation Package Bundles、译文:WiX Toolset入门——安装包捆版包基础元素介绍
步骤2:添加一个.NET PackageGroups引用
- 向捆绑包项目添加WixNetFxExtension引用
将PackageGroupRef元素添加到捆绑 包的chain元素下,以此引用你应用 所需的.NET包。关于详细列表见:原文:WixNetfxExtension。另,确保PayloadGroupRef元素放置在其他任何需要.NET的软件包之前。
<Chain> <PackageGroupRef Id="NetFx45Web"/> <MsiPackage Id="MyApplication" SourceFile="$(var.MyApplicationSetup.TargetPath)"/> </Chain>
步骤3:打包.NET Framework再发行组件【可选】
.NET PackageGroup会在需要.NET再发行组件时,进行远程下载。如果你想要创建不需要Internet连接的捆绑包,则可以将.NET再发行包打包到你的捆绑包中。这样做需要你本地有再发行组件的副本,例如签入到你的源代码控制系统中。
<Bundle>
<PayloadGroup Id="NetFx452RedistPayload">
<Payload Name="redist\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"
SourceFile="X:\path\to\redists\in\repo\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"/>
<PayloadGroup/>
</Bundle>
注意:捆绑包chain元素下的PackageGroupRef元素仍是需要的。
自定义bootstrapper应用
任何本机bootstrapper应用(包括WiX标准引导应用),都可以和包含.NET的捆绑包配合使用。
托管引导应用在包含.NET时,必须注意保证它们不会不必要地依赖于正在安装的.NET Framework版本。
从捆绑包中引用托管引导应用宿主
<BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost"> <Payload Name="BootstrapperCore.config" SourceFile="$(var.MyMBA.TargetDir)\TestUX.BootstrapperCore.config"/> <Payload SourceFile="$(var.MyMBA.TargetPath)"/> </BootstrapperApplicationRef>
将引导应用定位到操作系统内置的.NET版本。如Windows 7中就是.NET 3.5。
如果旧版本不可用,则使用新版.NET支持。以下示例为BootstrapperCore.config文件的内容:
<configuration> <configSections> <sectionGroup name="wix.bootstrapper" type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperSectionGroup, BootstrapperCore"> <section name="host" type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.HostSection, BootstrapperCore" /> </sectionGroup> </configSections> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v2.0.50727" /> <supportedRuntime version="v4.0" /> </startup> <wix.bootstrapper> <host assemblyName="MyBootstrapperApplicationAssembly"> <supportedFramework version="v3.5" /> <supportedFramework version="v4\Client" /> <!-- Example only. Replace the host/@assemblyName attribute with an assembly that implements BootstrapperApplication. --> <host assemblyName="$(var.MyMBA.TargetPath)" /> </host> </wix.bootstrapper> </configuration>
译:奇葩史