只是作爲一個練習,我想知道的Visual Studio如何檢索到的.NET版本。您可以查詢註冊表,看看哪個版本的安裝和我想出了這個代碼:
static void Main(string[] args)
{
Console.WriteLine("The following .NET versions are installed:");
var vers = SearchRegistry(Registry.LocalMachine, "Software\\Microsoft\\NET Framework Setup\\NDP", "Version")
.GroupBy(v => v)
.Select(v => (string)v.Key)
.OrderBy(s => s);
foreach (string s in vers)
Console.WriteLine(s);
Console.WriteLine(string.Format("Newest Installed .NET version: {0}", vers.Last()));
}
private static IEnumerable<object> SearchRegistry(RegistryKey root, string subkey, string search)
{
foreach (string sub in root.OpenSubKey(subkey).GetSubKeyNames())
{
foreach (string val in root.OpenSubKey(subkey).OpenSubKey(sub).GetValueNames())
if (val == search)
yield return root.OpenSubKey(subkey).OpenSubKey(sub).GetValue(val);
foreach (var o in SearchRegistry(root.OpenSubKey(subkey), sub, search))
yield return o;
}
}
這是有道理的,但有實際返回的.NET版本,而不是在CLR版本的屬性?在什麼情況下你需要知道CLR版本,而不是框架版本本身? – 2013-04-22 00:28:28
@VincentAlegrete我更新了我的帖子。 – Virtlink 2013-04-22 00:36:40
同樣的事情發生的2.0 - 3.5他們都是CLR的2.0。 – 2013-04-22 00:37:24