如何确定运行.NET Standard 类库的.NET 平台?

Vad*_*oda 1 c# .net-core .net-standard .net-standard-2.0

.NET 标准库 - 一个库来统治所有这些。

.NET 标准库功能可能因运行它的 .NET 平台而异:

  • .NET 框架
  • .NET 核心
  • 沙马林

如何查看 .NET Standard 库当前运行所在的 .NET 平台?

例如:

// System.AppContext.TargetFrameworkName 
// returns ".NETFramework,Version=v4.6.1" for .NET Framework 
// and
// returns null for .NET Core.

if (IsNullOrWhiteSpace(System.AppContext.TargetFrameworkName))
    // the platform is .NET Core or at least not .NET Framework
else
    // the platform is .NET Framework
Run Code Online (Sandbox Code Playgroud)

这是回答问题的可靠方法(至少对于 .NET Framework 和 .NET Core)吗?

Nig*_*888 5

使用命名空间中的RuntimeInformation.FrameworkDescription属性System.Runtime.InteropServices

返回一个字符串,该字符串指示运行应用程序的 .NET 安装的名称。

该属性返回以下字符串之一:

  • “.NET 核心”。

  • “.NET 框架”。

  • “.NET 原生”。