2

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

我一直在阅读文档并遵循如何在 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>
4

3 回答 3

2

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

于 2012-05-27T21:14:34.087 回答
1

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

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

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

<PackageGroupRef Id="NetFx40Web"/>

就是这样!

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

于 2013-03-20T14:49:11.873 回答
0

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

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

于 2012-05-27T19:42:11.510 回答