如何定位.NET Framework的版本?

时间:2013-09-30 14:30:33

标签: c# .net

如何获取我定位的.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

所以这不起作用。

真正的目标是尝试解决lack of compiler defines in .NET

2 个答案:

答案 0 :(得分:21)

这很简单 - 检查TargetFrameworkAttribute

var targetFrameworkAttribute = Assembly.GetExecutingAssembly()
    .GetCustomAttributes(typeof(System.Runtime.Versioning.TargetFrameworkAttribute), false)
    .SingleOrDefault();

答案 1 :(得分:5)

是什么阻止您使用普通/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
    }
}
相关问题