使用 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 Bootstrapper 中检查 .NET 4.0 框架时遇到问题