private static FrameworkInstallation GetFromV4(RegistryKey subKey, string subKeyName)
        {
            var hasRelease = int.TryParse(
                subKey.GetValue("Release", null)?.ToString(), out var release);

            Version version = null;

            if (hasRelease)
            {
                // 4.5+
                var displayableVersion = GetNetFxVersionFromRelease(release);
                if (displayableVersion != null)
                {
                    version = displayableVersion;
                }
            }

            if (version == null)
            {
                version = ParseOrNull(subKey.GetString("Version"));
            }

            FrameworkProfile?profile = null;

            switch (subKeyName)
            {
            case "Full":
                profile = FrameworkProfile.Full;
                break;

            case "Client":
                profile = FrameworkProfile.Client;
                break;
            }

            return(new FrameworkInstallation
            {
                Profile = profile,
                Version = version,
                ServicePack = subKey.GetInt("SP"),
                Release = hasRelease ? release : null as int?
            });
        }
Exemplo n.º 2
0
 /// <summary>
 /// 从注册表中读取 Int 型数值。
 /// </summary>
 /// <param name="name">键值名称。</param>
 /// <returns>Int 型数值。</returns>
 public static int GetInt(this RegistryKey This, string name)
 {
     return(This.GetInt(name, 0));
 }
 public static int GetInt(string name)
 {
     return(MainRegistry.GetInt(name));
 }