gpt4 book ai didi

c# - 如何确定是否安装了 .Net 5 运行时?

转载 作者:行者123 更新时间:2023-12-03 23:59:54 27 4
gpt4 key购买 nike

我安装了 .NET 5.0 预览版 SDK 和运行时。
如何检测/确定 .Net 5 运行时是否安装在 C# 中?

最佳答案

这里有一些错误:

  • .NET 5 是 不是 .NET Framework 的一个版本,它是 .NET Core 的下一个版本 ( source )
  • 如果您的应用程序是针对 .NET 5 编译的,并且您尝试运行的计算机没有安装 .NET 5,那么您的应用程序将无法启动(将其想象为尝试运行为 .NET 编译的应用程序仅安装了 .NET Framework 3.5 的计算机上的 Framework 4.8)*

  • 由于 .NET 5 是 .NET Core 的下一个版本,因此您可以轻松使用新的(在 Core 3.0 中)API
    var netVersion = System.Environment.Version;
    var runtimeVer = System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription;
    正如您在原始问题中所提到的,您正在阅读用于获取 .NET Framework 版本的注册表项(我假设为 so )。那么指定安装的 .NET Core 版本的 key 的位置位于不同的位置,即 HKEY_LOCAL_MACHINE\SOFTWARE\dotnet\Setup\InstalledVersions .以下是您阅读它们的方法:
    const string subkey = @"SOFTWARE\dotnet\Setup\InstalledVersions";
    var baseKey = Registry.LocalMachine.OpenSubKey(subkey);
    if (baseKey.SubKeyCount == 0)
    return;

    foreach (var platformKey in baseKey.GetSubKeyNames())
    {
    using (var platform = baseKey.OpenSubKey(platformKey))
    {
    Console.WriteLine($"Platform: {platform.Name.Substring(platform.Name.LastIndexOf("\\") + 1)}");
    if (platform.SubKeyCount == 0)
    continue;

    var sharedHost = platform.OpenSubKey("sharedhost");
    foreach (var version in sharedHost.GetValueNames())
    Console.WriteLine("{0,-8}: {1}", version, sharedHost.GetValue(version));
    }
    }

    * 如果您使用 self-contained 编译您的应用程序,请期待它将运行时与您的应用程序捆绑在一起

    关于c# - 如何确定是否安装了 .Net 5 运行时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63445216/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com