使用Wix Bootstrapper安装.NET可再发行组件(Burn)

时间:2013-11-20 15:06:36

标签: c# wix install wix-extension

我是Wix / Burn的新手,我正在尝试了解一些基本原理。我有一个简单的引导程序,使用以下链安装所需的.net 4.0框架:

<Chain>
    <PackageGroupRef Id="NetFx40ClientRedist"/>
    <MsiPackage Id="MyApp" SourceFile="$(var.WixInstaller.TargetPath)" DisplayInternalUI="yes" />
</Chain>

根据How To: Install the .NET Framework Using Burn的建议。 该应用程序可以在没有Web访问权限的服务器上使用,因此从本地可再发行组件安装.net非常重要。引导程序似乎运行良好,并按预期安装框架。但是,setup.exe文件与应用程序的大小大致相同(<5 MB),因此我必须假设在安装期间仍在下载框架。

问题

  1. 那么,WixNetfxExtension包中“NetFx40ClientWeb”和“NetFx40ClientRedist”的区别是什么?

  2. 如何在boostrapper中包含本地可再发行组件,以便不需要下载?

  3. 修改

    我相信我找到了答案here

      

    WiXNetFxExtension将检查一个名为“redist”的子目录   你的软件包是针对软件包然后下载它的,如果它不存在的话   该路径,例如“REDIST \ dotNetFx40_Client_setup.exe”。这是标准的   烧伤行为。

1 个答案:

答案 0 :(得分:1)

两者的区别在于:
1. clientWeb - 意味着你必须连接到网络,然后下载.net 4.0,然后安装在机器上。

2.clientRedist - 表示可再发行 - 意味着一个完整的包,不需要任何连接到互联网,您可以将其安装在任何计算机上。


如果你使用可再发行软件包你应该没问题 - 这里是.Net 4.5的例子,它与.Net 4.0相同,只有diff是可再发行软件包。

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
  <Bundle Name="Prog" Version="1.0.0.0" Manufacturer="my Corporation" UpgradeCode="*">
    <Chain>
      <!-- TODO: Define the list of chained packages. -->
      <PackageGroupRef Id="Netfx45FullPackage" />
    </Chain>
  </Bundle>
  <Fragment>
    <PackageGroup Id="Netfx45FullPackage">
      <ExePackage Id="Netfx45Xxx" Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="no" InstallCommand="/q" SourceFile="..\SetupProject\dotnetfx45_full_x86_x64.exe" DetectCondition="(Netfx4FullVersion=&quot;4.5.50709&quot;) AND (NOT VersionNT64 OR (Netfx4x64FullVersion=&quot;4.5.50709&quot;))" InstallCondition="(VersionNT &gt;= v6.0 OR VersionNT64 &gt;= v6.0) AND (NOT (Netfx4FullVersion=&quot;4.5.50709&quot; OR Netfx4x64FullVersion=&quot;4.5.50709&quot;))" />

      <MsiPackage Id="MyProg" Cache="no" Compressed="no" DisplayInternalUI="yes" Vital="yes" SourceFile="$(var.installerPath)\MyProgCore.msi" />
    </PackageGroup>
  </Fragment>
</Wix>