8

我是 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 中包含本地可再发行组件,以便无需下载?

编辑:

我相信我在这里找到了答案:

WiXNetFxExtension 将检查一个名为“redist”的子目录,您的捆绑包在该子目录中用于该包,如果该路径不存在,则下载它,例如“redist\dotNetFx40_Client_setup.exe”。这是标准的刻录行为。

4

1 回答 1

2

两者之间的区别是:
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>
于 2014-06-21T07:18:52.320 回答