2

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

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

4

2 回答 2

6

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

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

于 2012-10-17T11:01:29.437 回答
0

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

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

如何检测正在使用哪个 .NET 运行时(MS 与 Mono)?

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

于 2012-10-17T11:01:25.073 回答