使用 WiX 中的在线设置安装 .NET 框架

Posted

技术标签:

【中文标题】使用 WiX 中的在线设置安装 .NET 框架【英文标题】:Install .NET framework using online setup in WiX 【发布时间】:2012-05-27 19:11:37 【问题描述】:

更新:事实证明这确实有效,但安装文件只是默认复制到输出目录。如果安装程序在没有它们存在的情况下运行,它只会根据需要下载文件。

我一直在阅读文档并遵循如何在 WiX 中安装 .NET 框架的指南,但是由于包含框架安装文件(在 100mb 和 200mb 之间),构建的输出非常大)。

由于我想避免最终用户下载如此大的文件,是否可以让 WiX 使用在线安装程序 (http://www.microsoft.com/en-us/download/details.aspx?id= 31) 而不是让已经拥有框架的用户必须下载大型设置?

目前我的标记与文档中的标记几乎完全相同,但供可能需要查看的任何人参考,如下所示:

  <ItemGroup>
    <BootstrapperFile Include="Microsoft.Net.Framework.3.5">
      <ProductName>.NET Framework 3.5</ProductName>
    </BootstrapperFile>
    <BootstrapperFile Include="Microsoft.Windows.Installer.3.1">
      <ProductName>Windows Installer 3.1</ProductName>
    </BootstrapperFile>
  </ItemGroup>
  <Target Name="AfterBuild">
    <GenerateBootstrapper 
      ApplicationFile="$(TargetFileName)" 
      ApplicationName="Application Name" 
      BootstrapperItems="@(BootstrapperFile)" 
      ComponentsLocation="HomeSite" 
      CopyComponents="True" 
      OutputPath="$(OutputPath)" 
      Path="C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\Bootstrapper\" />
  </Target>

【问题讨论】:

根据this question,您的 msbuild 文件看起来不错。您是否尝试在不复制 .net 安装文件的情况下安装它? @Wimmel 好吧,这很尴尬!事实证明它正在添加在线安装程序,我所要做的就是没有你建议的安装文件。 没问题。不要忘记在下面接受您的答案。 嗨。你能告诉我这些信息在文档中的确切位置吗?我没有看到有关 ItemGruo 元素的任何信息?这不是 Wix 的一部分吗? 【参考方案1】:

事实证明这确实有效,但默认情况下安装文件只是被复制到输出目录。如果安装程序在没有它们存在的情况下运行,它只会根据需要下载文件。

【讨论】:

【参考方案2】:

正如 Sunil 提到的,也许最简单的方法是使用引导程序。一旦你的 WiX 引导程序开始工作,你需要做的就是添加 .Net 4.0 作为先决条件..

a) 将文件 WixNetFxExtension.dll 的引用添加到您的 Bootstrapper / 托管 Bootstrapper 应用程序项目中

b) 将以下内容添加为链中的第一项..

<PackageGroupRef Id="NetFx40Web"/>

就是这样!

如果需要,上面会通过 Internet 下载 .net 4。更多信息和选项在这里:wixnetfxextension documentation

【讨论】:

【参考方案3】:

有许多可用于绑定设置的引导程序。您可以将 .net 框架的 Web 设置与您的 s/w 绑定,然后如果未安装先决条件,该工具将安装 .net 框架。

我也有同样的要求,我选择了dotNetInstaller。这是一个免费工具。

【讨论】:

以上是关于使用 WiX 中的在线设置安装 .NET 框架的主要内容,如果未能解决你的问题,请参考以下文章

Wix:使用permissionEx设置安装文件夹中文件夹的权限

WiX 上的静默 .NET 框架

在 WIX Bootstrapper 中检查 .NET 4.0 框架时遇到问题

在自定义对话框中自定义 Wix 安装程序中的图像

Wix Managed Bootstrapper:安装 Net 框架并在添加删除程序中添加条目,即使我们取消产品安装

WiX-Bootstrapper - 为 UAC 对话框设置产品名称和公司名称