C# 如何获取用于构建项目的目标框架版本?
我们正在尝试做一些多目标的事情,并且发生了一些不好的事情。。。我不是这方面的专家,所以我完全不懂 在我的实验中,我想从运行时的代码中找出用于构建项目的目标框架 有没有办法做到这一点 差不多C# 如何获取用于构建项目的目标框架版本?,c#,.net,C#,.net,我们正在尝试做一些多目标的事情,并且发生了一些不好的事情。。。我不是这方面的专家,所以我完全不懂 在我的实验中,我想从运行时的代码中找出用于构建项目的目标框架 有没有办法做到这一点 差不多 if (TARGET_FRAMEWORK == "net462") Console.WriteLine("Hello World from .NET Framework version 4.6.2"); if (TARGET_FRAMEWORK == "
if (TARGET_FRAMEWORK == "net462")
Console.WriteLine("Hello World from .NET Framework version 4.6.2");
if (TARGET_FRAMEWORK == "net48")
Console.WriteLine("Hello World from .NET Framework version 4.8");
注:
Version是CLR的版本。通常为单个CLR版本
支持多个.NET Framework版本。大于或等于4.0.30319.42000的CLR版本支持以.NET Framework 4.6开头的.NET Framework版本
在设置为4.8的项目中运行此代码会导致
namespace ConsoleApp48
{
class Program
{
static void Main(string[] args)
{
#if NET462
Console.WriteLine($"HelloWorld from NET462");
#elif NET48
Console.WriteLine($"HelloWorld from NET48");
#else
Console.WriteLine($"HelloWorld from UNKNOWN");
#endif
#if DEBUG
Console.WriteLine("DEBUG");
#endif
Console.ReadLine();
}
}
}
结果:
来自未知的HelloWorld
调试您需要在编译时或运行时了解它吗?@PMF我正在寻找运行时我认为您可以使用“用于构建项目的目标框架”与“当前用于运行我的代码的框架版本,无论其目标是什么”完全不同。你确定你在找前者而不是后者吗?请注意,这两个版本都不是“用于构建项目的编译器版本”,它只与框架版本相关,但在发生(错误)编译问题时仍然相关(这当然比JIT问题不常见,但仍然如此)。@OlivierRogier不,它不。。。我需要构建版本。。。不是CLR