如何获取目标的 .NET Framework 版本

本文关键字:NET Framework 版本 目标 何获取 获取 | 更新日期: 2023-09-27 18:33:30

如何获取我所针对的.NET Framework版本,而不是当前运行应用程序的.NET Framework版本?

例如,如果应用程序面向 .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 中缺少编译器定义的问题。

如何获取目标的 .NET Framework 版本

这很简单 - 检查 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
    }
}