如果尚未安装在客户端的计算机上,如何使用我的Wix软件包下载所需的.NET Framework?我已经有条件检查已安装的.NET版本,但我不知道如何在未找到时下载和安装它.
ClickOnce通过检查属性页面中的先决条件自动执行此操作.由于其他一些要求,我只需要在Wix中完成它.
谢谢!
更新 2017年8月:这个非常好的答案现在看来已经过时了.还请阅读"线程"中的其他答案,了解一些不同的"bootstrapper选项".
Wix创建的MSI包无法做到这一点.Windows Installer相当有限,不允许一个MSI文件(您的安装程序)调用另一个MSI文件(.NET Framework安装程序).
您必须创建一个所谓的引导程序(setup.exe文件),它可以检查指定的先决条件,根据需要下载并安装它们,然后启动MSI安装程序.
创建引导程序的一种方法是使用Visual Studio或MSBuild任务GenerateBootstrapper.这是一个提供更多细节的链接:
http://wix.mindcapers.com/wiki/Bootstrapper
如果您只想为用户提供单个安装程序,则可能需要创建包含setup.exe文件和MSI包的自动充气安装包.你可以用iexpress做到这一点,它随Windows一起出现.
这是另一个链接示例:http://www.clariusconsulting.net/blogs/pga/comments/42831.aspx
Wix将包含自己的名为burn的引导程序.看看:http://robmensching.com/blog/posts/2009/7/14/Lets-talk-about-Burn
DotNetInstaller也被许多开发人员推荐为优秀且可靠的引导程序.
更新:更新的URL到DotNetInstaller,2017年8月.
现在,从WiX 3.6开始支持此功能.文档仍然是粗略的,但对于初学者,请查看如何:使用刻录安装.NET Framework.
在使用引导程序的wix 3.6中,您需要添加.net 4.0作为必要时下载的先决条件.
a)将文件WixNetFxExtension.dll的引用添加到Bootstrapper /托管引导程序应用程序项目中
b)添加以下内容作为链中的第一项.
真的就是这样!
更多信息:wixnetfxextension文档