更新:事实证明这确实有效,但安装文件只是默认被复制到输出目录。如果在没有它们的情况下运行安装程序,它将根据需要下载文件。
我一直在阅读文档,并按照如何指导在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>
答案 0 :(得分:2)
事实证明这实际上是有效的,但安装文件只是默认被复制到输出目录。如果在没有它们的情况下运行设置,它将根据需要下载文件。
答案 1 :(得分:1)
有很多bootstrappers可用于绑定设置。您可以将.net框架的Web设置与您的s / w绑定,然后如果未安装pre-requiste,该工具将安装.net framework。
我也有同样的要求,我去了dotNetInstaller。这是一个免费的工具。
答案 2 :(得分:1)
正如Sunil所提到的,也许最简单的方法是使用引导程序。一旦你的WiX引导程序工作,你需要做的就是添加.Net 4.0作为先决条件..
a)将文件WixNetFxExtension.dll的引用添加到Bootstrapper /托管引导程序应用程序项目中
b)将以下内容添加为链中的第一项..
<PackageGroupRef Id="NetFx40Web"/>
就是这样!
如果需要,上面通过互联网下载.net 4。更多信息和选项:wixnetfxextension documentation