如何定位.NET Framework的版本?
我如何获得我定位的.NET Framework版本,而不是应用程序当前运行的.NET框架版本?
例如,如果应用程序面向.NET Framework 4.5,我需要知道我的目标是.NET Framework 4.5。
例如,检查System.Environment.Version
:
- 何时针对.NET Framework 4:
4.0.30319.18502
- 何时针对.NET Framework 4.5:
4.0.30319.18502
所以这不起作用。
真正的目标是尝试解决.NET中缺少编译器定义的问题 。
这很简单 – 检查TargetFrameworkAttribute :
var targetFrameworkAttribute = Assembly.GetExecutingAssembly() .GetCustomAttributes(typeof(System.Runtime.Versioning.TargetFrameworkAttribute), false) .SingleOrDefault();
什么阻止你使用普通/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 } }