C# 如何通过编程方式检查从.NET Framework应用程序安装在我的计算机上的.NET Core运行时版本?
我正在用C#写一份申请书。该应用程序是一个以.NET 4.7为目标的控制台应用程序。我希望通过该应用程序以编程方式检查是否安装了.NET Core 3.1.300运行时。如果没有,那么我想安装它。怎么做?C# 如何通过编程方式检查从.NET Framework应用程序安装在我的计算机上的.NET Core运行时版本?,c#,.net,.net-core,version,C#,.net,.net Core,Version,我正在用C#写一份申请书。该应用程序是一个以.NET 4.7为目标的控制台应用程序。我希望通过该应用程序以编程方式检查是否安装了.NET Core 3.1.300运行时。如果没有,那么我想安装它。怎么做? 到目前为止,我还没有找到任何API来检查已安装的.net core运行时。为了省去您在注册表中查询这些位置的麻烦: 对于x64版本 HKEY\u LOCAL\u MACHINE\SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\x64\sh
到目前为止,我还没有找到任何API来检查已安装的.net core运行时。为了省去您在注册表中查询这些位置的麻烦: 对于x64版本
HKEY\u LOCAL\u MACHINE\SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\x64\sharedfx\Microsoft.NETCore.App
对于x86版本
HKEY\u LOCAL\u MACHINE\SOFTWARE\WOW6432Node\dotnet\Setup\InstalledVersions\x86\sharedfx\Microsoft.NETCore.App
这在将来可能会改变,但从我所看到的和我的机器上看,所有版本都记录在这些位置
关于Linux
从Olivier Rogier建议的文档链接中,您可以检查以下文件夹:
dotnet可执行文件
/主页/用户/共享/dotnet/dotnet
.NETSDK
/home/user/share/dotnet/sdk/{version}/
.NET运行时
/home/user/share/dotnet/shared/{runtime type}/{version}/是。从
.Net Core 3
中,您可以使用:
var netCoreVer = System.Environment.Version;
var runtimeVer = System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription;
使用
注册表如何?@HMZ如何操作?有任何指向开始的指针吗?看这里,它已经被问到了:这是否回答了您的问题?还有:@HMZ你认为哪一个更好?检查dotnet文件夹还是检查注册表?@Ayan对于windows,您检查注册表;对于linux,您检查我上面提到的文件夹。在windows中,我会选择注册表而不是dotnet文件夹。它更快、更简单这对于检查正在运行的应用程序的底层框架很有用,但不能回答问题。