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# 如何获取用于构建项目的目标框架版本?_C#_.net - Fatal编程技术网

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