2012-10-17 106 views
1

您可以使用System.Environment.Version來獲取CLR的版本;你如何獲得當前正在使用的C#和.NET或Mono框架的版本?如何找到正在使用的C#和.NET/Mono版本?

編輯:我不問如何找到你是否使用單聲道或.NET。 (我的問題的第一個版本確實要求將其作爲第二個問題,但是當我在其他地方看到該問題時,我幾乎立即刪除了這個問題。)這裏的問題是(1)如何確定您正在使用的C#版本,(2)你有什麼版本的.NET(相對於CLR的版本,其中isn't the same thing)。

+0

檢查此[鏈接](http://stackoverflow.com/questions/951856/is-there -an-easy-way-to-check-net-framework-version-using-c) – andy

+3

在執行*時,沒有使用'C#'... – AakashM

+0

@AakashM - 啊對,Python部分我的大腦正在接管那裏。是否有用於檢查編譯器版本號的C#預處理器指令? – Ghopper21

回答

0

一個非常類似的問題已經被問不已:

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

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

和檢測目前在運行時執行中使用了.NET Framework的版本,你可以檢查Environment.Version

+0

'Environment.Version'用於CLR版本,不是.NET框架版本,不是? – Ghopper21

3

檢查,如果你'在單聲道運行:

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

+0

謝謝。對於.NET,「System.Environment.Version」用於CLR版本,而不是.NET框架版本,否? – Ghopper21

相關問題