您可以使用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));
}
如果您不在 Mono 中,那么您仍然使用System.Environment.Version
已经提出了一个非常相似的问题:
public static bool IsRunningOnMono ()
{
return Type.GetType ("Mono.Runtime") != null;
}
如何检测正在使用哪个 .NET 运行时(MS 与 Mono)?
并且为了检测当前在运行时用于执行的 .NET 框架的版本,您可以检查Environment.Version