Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何通过编程方式检查从.NET Framework应用程序安装在我的计算机上的.NET Core运行时版本?_C#_.net_.net Core_Version - Fatal编程技术网

C# 如何通过编程方式检查从.NET Framework应用程序安装在我的计算机上的.NET Core运行时版本?

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

我正在用C#写一份申请书。该应用程序是一个以.NET 4.7为目标的控制台应用程序。我希望通过该应用程序以编程方式检查是否安装了.NET Core 3.1.300运行时。如果没有,那么我想安装它。怎么做?
到目前为止,我还没有找到任何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文件夹。它更快、更简单这对于检查正在运行的应用程序的底层框架很有用,但不能回答问题。