【问题标题】:Wix and .NET Framework (prerequisites)Wix 和 .NET Framework(先决条件)
【发布时间】:2009-01-09 11:37:57
【问题描述】:

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

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

谢谢!

【问题讨论】:

标签: .net wix prerequisites


【解决方案1】:

更新 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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 链接不工作
    【解决方案3】:

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

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

    【讨论】:

    • DotNetInstaller 是迄今为止我最喜欢的引导程序。
    • 我使用这个非常成功。
    【解决方案4】:

    现在从 WiX 3.6 开始支持此功能。文档仍然很粗略,但对于初学者,请查看 How To: Install the .NET Framework Using Burn

    【讨论】:

      【解决方案5】:

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

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

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

      <PackageGroupRef Id="NetFx40Web"/>
      

      原来如此!

      更多信息在这里:wixnetfxextension documentation

      【讨论】:

      • 我发现那里不支持 Net Core。有知道的吗?
      • @Noman_1 - 抱歉,这个回复来晚了 - Stackoverflow 今天(2022 年 3 月 15 日)才通知我您的评论!!!)我们还没有将我们的客户产品更新到核心,所以不能评论-我知道后会尽快做的:)
      猜你喜欢
      • 2013-02-10
      • 2011-02-02
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      • 2012-10-10
      相关资源
      最近更新 更多