首页 > 解决方案 > 如何在我的项目安装中包含 .NET Framework?

问题描述

我有一个使用.NET Framework (版本 4.6.2)构建的 Windows 服务。它是使用 Visual Studio 2017 中的“Windows 服务 (.NET Framework)”模板制作的。作为参考,我遵循了本指南

将制作自定义安装程序以在客户端计算机上安装/更新/维护此 Windows 服务。以下是安装程序的概述:

据我所知,当服务启动时,需要在机器上安装 .NET Framework 4.6.2 才能使服务正常工作。

如何确定客户端计算机上安装了 .NET Framework 4.6.2?

此外,其他版本的 .NET Framework(例如 4.8 版)是否已安装在机器上会导致问题?

我在网上做了一些搜索,但没有找到适合我情况的任何解决方案。解决方案仅在我们决定为我们的安装程序使用 Visual Studio 安装程序项目时才有效。自包含部署显然只适用于基于 .NET Core 的项目,而不适用于 .NET Framework。

标签: c#.netinstallation.net-framework-version

解决方案


虽然我们还没有实现我们的自定义安装程序,但经过一些研究,这是我们最有可能做的:

  • 在我们的自定义安装程序中包含 .NET Framework 的离线安装程序(在我们的例子中,我们需要版本 4.6.2 )。
  • 让我们的自定义安装程序检查现有版本的 .NET Framework。有关确定已安装的 .NET Framework 版本的详细信息,请参阅此文档。

    • 如果客户端具有 .NET Framework 版本 4.6.2。(或更高版本)安装,然后继续安装过程。
    • 如果客户端安装了旧版本的 .NET Framework,请询问他们是否要更新到版本 4.6.2。如果他们拒绝,请中止自定义安装程序。如果他们选择更新到 .NET Framework 4.6.2 版,那么我们将调用离线安装程序。请参阅下面调用离线安装程序的基本代码示例:

      // NOTE: This code is just a crude example.
      
      // Invoke the offline installer.
      System.Diagnostics.Process process = new System.Diagnostics.Process();
      System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
      startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
      startInfo.FileName = "cmd.exe";
      startInfo.Arguments = "/C path\\to\\offline\\installer\\NDP462-KB3151800-x86-x64-AllOS-ENU.exe";
      process.StartInfo = startInfo;
      process.Start();
      
      process.WaitForExit();
      
      // Handle the exit code.
      if (process.ExitCode == ...)
      {
          ...
      }
      

参考

  • 本文档介绍了重新分发 .NET Framework。
  • 本文档提供了有关重新分发 .NET Framework 的详细信息。
  • 本文档包含有关 .NET Framework 的最低系统要求的信息。
  • 虽然更面向 IT,但本教程本教程包含有关安装 .NET Framework 的有用详细信息。

有关的

在我的一些测试/研究中发现了以下内容:

  • 默认情况下,这些操作系统安装了以下版本的 .NET Framework:
    • Windows 7 SP1 – .NET Framework 版本3.5.30729.5420
    • Windows 2019 年 11 月 10 日更新(版本 1909)– .NET Framework 版本4.8
    • Windows Server 2012 R2 Standard(版本 6.3.9600)- .NET Framework 版本4.5.1
    • Windows Server 2019(版本 10.0.17763;又名版本 1809)– .NET Framework 版本4.7.2
  • 通过最近的更新(大约 2020 年 2 月),这些操作系统安装了以下版本的 .NET Framework:
    • Windows 7 SP1 – .NET Framework 4.8版
    • Windows 2019 年 11 月 10 日更新(版本 1909)– .NET Framework 版本4.8
    • Windows Server 2012 R2 标准版(版本 6.3.9600)- .NET Framework 版本4.8
    • Windows Server 2019(版本 10.0.17763;又名版本 1809)– .NET Framework 版本4.7.2

故障排除

  • 本文档包含有关如何对 .NET Framework 安装/卸载进行故障排除的信息。
  • 本文档包含有关解决与启动依赖于 .NET Framework 的应用程序相关的错误的信息。

推荐阅读