Exemplo n.º 1
0
        // This method works for Windows and Linux but currently
        // is only called under Linux.
        private static void AppendDefaultMonoFramework(FrameworkList frameworks)
        {
            string monoPrefix = null;
            string version    = null;

            if (Environment.OSVersion.Platform == PlatformID.Win32NT)
            {
                RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono");
                if (key != null)
                {
                    version = key.GetValue("DefaultCLR") as string;
                    if (version != null && version != "")
                    {
                        key = key.OpenSubKey(version);
                        if (key != null)
                        {
                            monoPrefix = key.GetValue("SdkInstallRoot") as string;
                        }
                    }
                }
            }
            else // Assuming we're currently running Mono - change if more runtimes are added
            {
                string libMonoDir = Path.GetDirectoryName(typeof(object).Assembly.Location);
                monoPrefix = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(libMonoDir)));
            }

            AppendMonoFramework(frameworks, monoPrefix, version);
        }
Exemplo n.º 2
0
 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);
         }
     }
 }
Exemplo n.º 3
0
        private static void AppendAllMonoFrameworks(FrameworkList frameworks)
        {
            // TODO: Find multiple installed Mono versions under Linux
            if (Environment.OSVersion.Platform == PlatformID.Win32NT)
            {
                // Use registry to find alternate versions
                RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\Novell\Mono");
                if (key == null)
                {
                    return;
                }

                foreach (string version in key.GetSubKeyNames())
                {
                    RegistryKey subKey     = key.OpenSubKey(version);
                    string      monoPrefix = subKey.GetValue("SdkInstallRoot") as string;

                    AppendMonoFramework(frameworks, monoPrefix, version);
                }
            }
            else
            {
                AppendDefaultMonoFramework(frameworks);
            }
        }
Exemplo n.º 4
0
        private static void AppendDefaultMonoFramework(FrameworkList frameworks)
        {
            string text          = null;
            string version       = null;
            string directoryName = Path.GetDirectoryName(typeof(object).Assembly.Location);

            text = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(directoryName)));
            AppendMonoFramework(frameworks, text, version);
        }
Exemplo n.º 5
0
        // This method works for Windows and Linux but currently
        // is only called under Linux.
        private static void AppendDefaultMonoFramework(FrameworkList frameworks)
        {
            string monoPrefix = null;
            string version    = null;
            string libMonoDir = Path.GetDirectoryName(typeof(object).Assembly.Location);

            monoPrefix = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(libMonoDir)));

            AppendMonoFramework(frameworks, monoPrefix, version);
        }
Exemplo n.º 6
0
        public static void Main(string[] args)
        {
            var enumerator    = new FrameworkEnumerator();
            var frameworkList = new FrameworkList <Framework>(enumerator);

            foreach (var dotNetFrameworkName in frameworkList.DotNetFrameworkNames)
            {
                Console.WriteLine(dotNetFrameworkName);
            }
        }
Exemplo n.º 7
0
 private static void AppendMonoFrameworks(FrameworkList frameworks)
 {
     if (Environment.OSVersion.Platform == PlatformID.Win32NT)
     {
         AppendAllMonoFrameworks(frameworks);
     }
     else
     {
         AppendDefaultMonoFramework(frameworks);
     }
 }
Exemplo n.º 8
0
 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)));
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 9
0
 private static void AppendDotNetFrameworks(FrameworkList frameworks)
 {
 }
Exemplo n.º 10
0
 private static void AppendAllMonoFrameworks(FrameworkList frameworks)
 {
     AppendDefaultMonoFramework(frameworks);
 }