我如何获得我所针对的.NET Framework版本,而不是应用程序当前运行的.NET框架版本?
例如,如果应用程序以.NET Framework 4.5为目标,我需要知道我的目标是.NET Framework 4.5.
例如,检查System.Environment.Version:
4.0.30319.185024.0.30319.18502所以这不起作用.
真正的目标是尝试解决.NET中缺少编译器定义的问题.
Sri*_*vel 22
这很简单 - 检查TargetFrameworkAttribute:
var targetFrameworkAttribute = Assembly.GetExecutingAssembly()
.GetCustomAttributes(typeof(System.Runtime.Versioning.TargetFrameworkAttribute), false)
.SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
是什么阻止你使用普通的/define?
csc/define:NET45/optimize /out:MyProgram.exe*.cs
同
using System;
public class Test
{
public static void Main()
{
#if (NET45)
Console.WriteLine("NET45 targeted");
#else
Console.WriteLine("NET45 not targeted");
#endif
}
}
Run Code Online (Sandbox Code Playgroud)