29

当客户端计算机上尚未安装所需的 .NET Framework 时,如何让我的 Wix 包下载?我已经有条件检查已安装的 .NET 版本,但我不确定在找不到时如何下载和安装它。

ClickOnce 通过检查属性页面中的先决条件自动执行此操作。由于其他一些要求,我只需要在 Wix 中完成它。

谢谢!

4

5 回答 5

37

2017 年 8 月更新:这个非常好的答案现在看起来已经过时了。另请阅读“线程”中的其他答案,了解一些不同的“引导程序选项”。


Wix 创建的 MSI 包无法做到这一点。Windows 安装程序相当有限,一个 MSI 文件(您的安装程序)不允许调用另一个 MSI 文件(.NET Framework 安装程序)。

您必须创建一个所谓的引导程序(一个 setup.exe 文件),它可以检查指定的先决条件,根据需要下载并安装它们,然后启动您的 MSI 安装程序。

创建引导程序的一种方法是使用 Visual Studio 或 MSBuild 任务 GenerateBootstrapper。这是一个提供更多详细信息的链接:

http://wix.mindcapers.com/wiki/Bootstrapper

如果您只想为您的用户提供一个安装程序,您可能需要创建一个包含 setup.exe 文件和您的 MSI 包的自膨胀安装包。您可以使用 Windows 附带的iexpress来做到这一点。

这是另一个示例链接:http: //www.clariusconsulting.net/blogs/pga/comments/42831.aspx

于 2009-01-09T11:54:31.707 回答
11

Wix 将包含自己的引导程序,称为burn。看看:http ://robmensching.com/blog/posts/2009/7/14/Lets-talk-about-Burn

于 2009-09-21T08:10:13.303 回答
9

DotNetInstaller也被许多开发人员推荐为良好且可靠的引导程序。

更新:更新了 DotNetInstaller 的 URL,2017 年 8 月。

于 2010-06-15T08:47:38.153 回答
7

现在从 WiX 3.6 开始支持此功能。文档仍然很粗略,但对于初学者,请查看如何:使用 Burn 安装 .NET Framework

于 2012-09-10T20:11:03.753 回答
7

在使用引导程序的 wix 3.6 中,您只需要添加 .net 4.0 作为先决条件,如果需要下载是..

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

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

<PackageGroupRef Id="NetFx40Web"/>

真的是这样!

更多信息:wixnetfxextension 文档

于 2013-03-20T14:44:56.810 回答