杉宫竹苑工作室

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2803|回复: 0

WiX Toolset使用技巧——使用Burn引擎安装.NET Framework

[复制链接]
发表于 2017-4-8 14:02:18 | 显示全部楼层 |阅读模式

正式会员享受无限制浏览网站功能和高速网盘下载,赶快加入本站吧!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用.NET Framework编写应用时,通常需要将Framework一起打包,然后与应用一起安装。Wix 3.6及以上版本可以使用Burn处理。

步骤1:为应用创建捆绑包
具体处理步骤见:原文:Building Installation Package Bundles、译文:WiX Toolset入门——安装包捆版包基础元素介绍

步骤2:添加一个.NET PackageGroups引用
向捆绑包项目添加WixNetFxExtension引用
将PackageGroupRef元素添加到捆绑 包的chain元素下,以此引用你应用 所需的.NET包。关于详细列表见:原文:WixNetfxExtension。另,确保PayloadGroupRef元素放置在其他任何需要.NET的软件包之前。
  1. <Chain>
  2.     <PackageGroupRef Id="NetFx45Web"/>
  3.     <MsiPackage Id="MyApplication" SourceFile="$(var.MyApplicationSetup.TargetPath)"/>
  4. </Chain>
复制代码

步骤3:打包.NET Framework再发行组件【可选】
.NET PackageGroup会在需要.NET再发行组件时,进行远程下载。如果你想要创建不需要Internet连接的捆绑包,则可以将.NET再发行包打包到你的捆绑包中。这样做需要你本地有再发行组件的副本,例如签入到你的源代码控制系统中。
  1. <Bundle>
  2.     <PayloadGroup Id="NetFx452RedistPayload">
  3.         <Payload Name="redist\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"
  4.                 SourceFile="X:\path\to\redists\in\repo\NDP452-KB2901907-x86-x64-AllOS-ENU.exe"/>
  5.     <PayloadGroup/>
  6. </Bundle>
复制代码

注意:捆绑包chain元素下的PackageGroupRef元素仍是需要的。

自定义bootstrapper应用
任何本机bootstrapper应用(包括WiX标准引导应用),都可以和包含.NET的捆绑包配合使用。

托管引导应用在包含.NET时,必须注意保证它们不会不必要地依赖于正在安装的.NET Framework版本。

从捆绑包中引用托管引导应用宿主
  1. <BootstrapperApplicationRef
  2. Id="ManagedBootstrapperApplicationHost">
  3. <Payload
  4.     Name="BootstrapperCore.config"
  5.     SourceFile="$(var.MyMBA.TargetDir)\TestUX.BootstrapperCore.config"/>
  6. <Payload
  7.     SourceFile="$(var.MyMBA.TargetPath)"/>
  8. </BootstrapperApplicationRef>
复制代码

将引导应用定位到操作系统内置的.NET版本。如Windows 7中就是.NET 3.5。

如果旧版本不可用,则使用新版.NET支持。以下示例为BootstrapperCore.config文件的内容:
  1. <configuration>
  2.     <configSections>
  3.         <sectionGroup name="wix.bootstrapper" type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.BootstrapperSectionGroup, BootstrapperCore">
  4.         <section name="host" type="Microsoft.Tools.WindowsInstallerXml.Bootstrapper.HostSection, BootstrapperCore" />
  5.         </sectionGroup>
  6.     </configSections>
  7.     <startup useLegacyV2RuntimeActivationPolicy="true">
  8.         <supportedRuntime version="v2.0.50727" />
  9.         <supportedRuntime version="v4.0" />
  10.     </startup>
  11.     <wix.bootstrapper>
  12.         <host assemblyName="MyBootstrapperApplicationAssembly">
  13.         <supportedFramework version="v3.5" />
  14.         <supportedFramework version="v4\Client" />
  15.             <!-- Example only. Replace the host/@assemblyName attribute with
  16.             an assembly that implements BootstrapperApplication. -->
  17.             <host assemblyName="$(var.MyMBA.TargetPath)" />
  18.         </host>
  19.     </wix.bootstrapper>
  20. </configuration>
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SgzyStudio

GMT+8, 2024-4-28 05:05 , Processed in 0.110600 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表