2011-10-18 55 views

回答

1

如果你想獲得currenly運行CLR版本,使用Novakov的方法(如4.0.30319.239):

Environment.Version 

如果你想知道CLR版本的項目建成反對(如4.0.0.0),使用以下命令:

GetType().Assembly.GetReferencedAssemblies().Single(a => a.Name == "mscorlib").Version 

這可能給你一個不同的值比當前運行的CLR,因爲舊版本的組件可以在CLR的較新版本上運行。請注意,2.0,3.0和3.5的「目標框架」在這裏都會返回2.0.0.0,因爲它們都是針對CLR的2.0版本構建的。

可以進行額外的檢查可以揭示CLR 2.0項目建成使用的3.5的目標框架:

typeof(ConsoleSandbox.Program).Assembly.GetReferencedAssemblies() 
    .SingleOrDefault(a => a.Name == "System.Core") == null 

上述表達式的值爲true,如果目標框架是3.5(或4.0如果mscorlib是4.0.0.0),並且如果目標框架是2.0或3.0或者沒有使用System.Core.dll(例如升級的2.0/3.0項目),則評估爲false。

如果你解釋了你的問題背後的需要,它可能會給你一個更好的答案。

相關問題