private static void AppendMonoFramework(FrameworkList frameworks, string monoPrefix, string version) { if (monoPrefix != null) { string format = ((version != null) ? ("Mono " + version + " - {0} Profile") : "Mono {0} Profile"); if (File.Exists(Path.Combine(monoPrefix, "lib/mono/1.0/mscorlib.dll"))) { RuntimeFramework runtimeFramework = new RuntimeFramework(RuntimeType.Mono, new Version(1, 1, 4322)); runtimeFramework.displayName = string.Format(format, "1.0"); frameworks.Add(runtimeFramework); } if (File.Exists(Path.Combine(monoPrefix, "lib/mono/2.0/mscorlib.dll"))) { RuntimeFramework runtimeFramework = new RuntimeFramework(RuntimeType.Mono, new Version(2, 0, 50727)); runtimeFramework.displayName = string.Format(format, "2.0"); frameworks.Add(runtimeFramework); } if (File.Exists(Path.Combine(monoPrefix, "lib/mono/4.0/mscorlib.dll"))) { RuntimeFramework runtimeFramework = new RuntimeFramework(RuntimeType.Mono, new Version(4, 0, 30319)); runtimeFramework.displayName = string.Format(format, "4.0"); frameworks.Add(runtimeFramework); } } }
private static void AppendDotNetFrameworks(FrameworkList frameworks) { if (Environment.OSVersion.Platform == PlatformID.Win32NT) { RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\.NETFramework\policy"); if (key != null) { foreach (string name in key.GetSubKeyNames()) { if (name.StartsWith("v")) { RegistryKey key2 = key.OpenSubKey(name); foreach (string build in key2.GetValueNames()) { frameworks.Add(new RuntimeFramework(RuntimeType.Net, new Version(name.Substring(1) + "." + build))); } } } } } }