Beispiel #1
0
        private static IList <DotnetVersion> GetPre45VersionFromRegistry()
        {
            var versions = new List <DotnetVersion>();

            // Opens the registry key for the .NET Framework entry.
            using (RegistryKey ndpKey =
                       RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "").
                       OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
            {
                // As an alternative, if you know the computers you will query are running .NET Framework 4.5
                // or later, you can use:
                // using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,
                // RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
                foreach (string versionKeyName in ndpKey.GetSubKeyNames())
                {
                    if (versionKeyName.StartsWith("v"))
                    {
                        var         version    = new DotnetVersion();
                        RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);
                        version.VersionKeyName = versionKeyName;
                        version.Name           = (string)versionKey.GetValue("Version", "");
                        version.ServicePack    = versionKey.GetValue("SP", "").ToString();
                        version.Install        = versionKey.GetValue("Install", "").ToString();

                        if (version.Name != "")
                        {
                            continue;
                        }

                        foreach (string subKeyName in versionKey.GetSubKeyNames())
                        {
                            if (version.SubVersions == null)
                            {
                                version.SubVersions = new List <DotnetVersion>();
                            }

                            var         subVersion = new DotnetVersion();
                            RegistryKey subKey     = versionKey.OpenSubKey(subKeyName);
                            subVersion.VersionKeyName = subKeyName;
                            subVersion.Name           = (string)subKey.GetValue("Version", "");
                            if (subVersion.Name != "")
                            {
                                subVersion.ServicePack = subKey.GetValue("SP", "").ToString();
                            }

                            subVersion.Install = subKey.GetValue("Install", "").ToString();
                            version.SubVersions.Add(subVersion);
                        }

                        versions.Add(version);
                    }
                }
            }

            return(versions);
        }
Beispiel #2
0
        private static IList <DotnetVersion> Get45PlusFromRegistry()
        {
            var versions = new List <DotnetVersion>();

            const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";

            using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
            {
                if (ndpKey != null && ndpKey.GetValue("Release") != null)
                {
                    var version = new DotnetVersion();
                    version.Name = CheckFor45PlusVersion((int)ndpKey.GetValue("Release"));
                    versions.Add(version);
                }
            }

            return(versions);
        }
Beispiel #3
0
        static AgentInstallConfiguration()
        {
#if NET45
            IsWindows = true;
#else
            IsWindows = System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows);
#endif
            NewRelicHome            = GetNewRelicHome();
            NewRelicInstallPath     = GetNewRelicInstallPath();
            HomeExtensionsDirectory = NewRelicHome != null?Path.Combine(NewRelicHome, "extensions") : null;

            RuntimeHomeExtensionsDirectory = HomeExtensionsDirectory != null?Path.Combine(HomeExtensionsDirectory, RuntimeDirectoryName) : null;

            InstallPathExtensionsDirectory = NewRelicInstallPath != null?Path.Combine(NewRelicInstallPath, "extensions") : null;

            AgentVersion          = GetAgentVersion();
            AgentVersionTimestamp = GetAgentVersionTimestamp();
            IsNetstandardPresent  = GetIsNetstandardPresent();
            IsNet46OrAbove        = GetIsNet46OrAbove();
            IsNetCore30OrAbove    = GetIsNetCore30OrAbove();
            ProcessId             = new ProcessStatic().GetCurrentProcess().Id;
            AppDomainName         = AppDomain.CurrentDomain.FriendlyName;
#if NET45
            if (HttpRuntime.AppDomainAppVirtualPath != null)
            {
                AppDomainAppVirtualPath = HttpRuntime.AppDomainAppVirtualPath;
            }

            try
            {
                DotnetFrameworkVersion = DotnetVersion.GetDotnetFrameworkVersion();
            }
            catch { }
#else
            try
            {
                DotnetCoreVersion = DotnetVersion.GetDotnetCoreVersion();
            }
            catch { }
#endif
            AgentInfo = GetAgentInfo();
        }