如何查找正在使用的C#和.NET / Mono版本?

时间:2012-10-17 10:58:44

标签: c# .net mono

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

编辑:我不是在问你如何使用Mono或.NET。 (我的问题的第一个版本确实问过这个问题,但是当我在其他地方看到这个问题时,我几乎立即将其删除了。)这里的问题是(1)如何弄清楚你正在使用的C#版本,以及(2)您拥有的.NET版本(与CLR的版本相对,isn't the same thing)。

2 个答案:

答案 0 :(得分:5)

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

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)); 
}

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

答案 1 :(得分:0)

已经提出了一个非常类似的问题:

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

How to detect which .NET runtime is being used (MS vs. Mono)?

并且为了检测当前在运行时用于执行的.NET框架版本,您可以检查Environment.Version