如何使用哪些版本的C#和.NET/MONO



您可以使用 System.Environment.Version来获取CLR的版本;您如何获得当前使用的C#以及.NET或MONO框架的版本?

编辑:我不是在问如何找到您是在使用Mono还是.NET。(我的问题的第一个版本确实要求这是一个次要问题,但是当我看到其他地方回答该问题时,我几乎立即删除了这一点。)这里的问题是(1)如何弄清楚您正在使用哪种版本的C#,以及(2)您拥有哪种版本的.NET(与CLR的版本相反,这不是同一件事)。

检查是否在单声道中运行:

public static bool IsRunningOnMono ()
{
    return Type.GetType ("Mono.Runtime") != null;
}

检查单声道版本:

Type type = Type.GetType("Mono.Runtime");
if (type != null)
{                                          
    MethodInfo dispalayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static); 
    if (dispalayName != null)                   
        Console.WriteLine(dispalayName.Invoke(null, null)); 
}

如果您不在单声道中,那么您仍然使用System.Environment.Version

已经问了一个非常相似的问题:

public static bool IsRunningOnMono ()
{
    return Type.GetType ("Mono.Runtime") != null;
}

如何检测使用哪个.NET运行时(MS与单声道)?

并且用于检测当前在运行时使用的.NET Framework的版本,您可以检查Environment.Version

最新更新