Wix和.NET框架(前提条件)

29

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

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

谢谢!


1
旧问题,Wix现在知道如何处理先决条件。 - kroiz
更新:请看这里:如何使用Burn安装.NET Framework - Stein Åsmul
5个回答

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

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

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

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

  

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

如果您只想为用户提供一个单独的安装程序,则可能希望创建一个自我膨胀的安装包,其中包含设置.exe文件和您的MSI包。您可以使用随Windows一起提供的iexpress来完成此操作。

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


11

链接无效。 - AH.

9

DotNetInstaller被许多开发人员推荐作为一个良好而可靠的启动程序。

更新: 2017年8月更新了DotNetInstaller的网址。


DotNetInstaller是我目前最喜欢的引导程序。 - mcdon
我正在非常成功地使用这个。 - Martin Doms

7

7
在使用Wix 3.6中的启动程序时,如果需要下载.net 4.0作为前提条件,则只需执行以下操作:
a) 将文件WixNetFxExtension.dll添加到启动程序/托管启动程序应用项目的引用中。
b) 在您的链中将以下内容作为第一项添加。
<PackageGroupRef Id="NetFx40Web"/>

就是这样了!

更多信息请参见:wixnetfxextension文档


我在那里没有找到Net Core的支持。有任何已知的支持吗? - Noman_1
@Noman_1 - 很抱歉回复晚了 - Stackoverflow 今天才通知我您的评论(2022年3月15日!!!)我们还没有将客户端产品更新到核心版本,因此无法发表评论 - 我会尽快告诉您 :) - Fetchez la vache

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接