您可以使用System.Environment.Version
来获取CLR的版本;你如何获得当前使用的C#版本和.NET或Mono框架?
编辑:我不是在问你如何使用Mono或.NET。 (我的问题的第一个版本确实问过这个问题,但是当我在其他地方看到这个问题时,我几乎立即将其删除了。)这里的问题是(1)如何弄清楚你正在使用的C#版本,以及(2)您拥有的.NET版本(与CLR的版本相对,isn't the same thing)。
答案 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