コード例 #1
0
 public static string FormatFrameworkString(CompatibleFramework framework)
 {
     if (string.IsNullOrEmpty(framework.Profile))
     {
         return(string.Format(CultureInfo.CurrentUICulture, Resources.GetString("FrameworkNameNoProfile"), new object[] { framework.TargetVersion }));
     }
     return(string.Format(CultureInfo.CurrentUICulture, Resources.GetString("FrameworkNameWithProfile"), new object[] { framework.TargetVersion, framework.Profile }));
 }
コード例 #2
0
        public static bool CheckCompatibleFramework(CompatibleFramework framework, ref Version clrVersion, ref string clrVersionString, string clrProcArch)
        {
            Logger.AddMethodCall("CheckCompatibleFramework called targetVersion:" + framework.TargetVersion + " profile:" + framework.Profile);
            Version versionRequired    = new Version(framework.TargetVersion);
            string  setupKeyPath       = null;
            string  str2               = null;
            string  setupValueName     = null;
            bool    detectInstallValue = false;
            bool    flag2              = false;

            if (versionRequired.Major < 4)
            {
                if (versionRequired.Major == 2)
                {
                    setupKeyPath       = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v" + framework.TargetVersion;
                    setupValueName     = "Install";
                    detectInstallValue = true;
                }
                else if (versionRequired.Minor == 0)
                {
                    setupKeyPath       = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup";
                    setupValueName     = "InstallSuccess";
                    detectInstallValue = true;
                }
                else
                {
                    setupKeyPath   = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v" + versionRequired.ToString(2);
                    setupValueName = "Version";
                    if ("Client".Equals(framework.Profile, StringComparison.OrdinalIgnoreCase))
                    {
                        str2 = @"SOFTWARE\Microsoft\NET Framework Setup\DotNetClient\v" + versionRequired.ToString(2);
                    }
                }
                flag2 = DetectFrameworkInRegistry(setupKeyPath, setupValueName, versionRequired, detectInstallValue) || ((str2 != null) && DetectFrameworkInRegistry(str2, setupValueName, versionRequired, detectInstallValue));
            }
            else
            {
                flag2 = DetectTFMInRegistry(framework.SupportedRuntime, framework.TargetVersion, framework.Profile);
            }
            if (!flag2)
            {
                return(false);
            }
            Version v = new Version(framework.SupportedRuntime);

            if (!VerifyCLRVersionInfo(v, clrProcArch))
            {
                Logger.AddWarningInformation(string.Format(CultureInfo.CurrentUICulture, Resources.GetString("CLRMissingForFoundFramework"), new object[] { framework.SupportedRuntime, FormatFrameworkString(framework) }));
                return(false);
            }
            clrVersionString = framework.SupportedRuntime;
            clrVersion       = new Version(clrVersionString);
            return(true);
        }
 public static bool CheckCompatibleFramework(CompatibleFramework framework, ref Version clrVersion, ref string clrVersionString, string clrProcArch)
 {
     Logger.AddMethodCall("CheckCompatibleFramework called targetVersion:" + framework.TargetVersion + " profile:" + framework.Profile);
     Version versionRequired = new Version(framework.TargetVersion);
     string setupKeyPath = null;
     string str2 = null;
     string setupValueName = null;
     bool detectInstallValue = false;
     bool flag2 = false;
     if (versionRequired.Major < 4)
     {
         if (versionRequired.Major == 2)
         {
             setupKeyPath = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v" + framework.TargetVersion;
             setupValueName = "Install";
             detectInstallValue = true;
         }
         else if (versionRequired.Minor == 0)
         {
             setupKeyPath = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup";
             setupValueName = "InstallSuccess";
             detectInstallValue = true;
         }
         else
         {
             setupKeyPath = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v" + versionRequired.ToString(2);
             setupValueName = "Version";
             if ("Client".Equals(framework.Profile, StringComparison.OrdinalIgnoreCase))
             {
                 str2 = @"SOFTWARE\Microsoft\NET Framework Setup\DotNetClient\v" + versionRequired.ToString(2);
             }
         }
         flag2 = DetectFrameworkInRegistry(setupKeyPath, setupValueName, versionRequired, detectInstallValue) || ((str2 != null) && DetectFrameworkInRegistry(str2, setupValueName, versionRequired, detectInstallValue));
     }
     else
     {
         flag2 = DetectTFMInRegistry(framework.SupportedRuntime, framework.TargetVersion, framework.Profile);
     }
     if (!flag2)
     {
         return false;
     }
     Version v = new Version(framework.SupportedRuntime);
     if (!VerifyCLRVersionInfo(v, clrProcArch))
     {
         Logger.AddWarningInformation(string.Format(CultureInfo.CurrentUICulture, Resources.GetString("CLRMissingForFoundFramework"), new object[] { framework.SupportedRuntime, FormatFrameworkString(framework) }));
         return false;
     }
     clrVersionString = framework.SupportedRuntime;
     clrVersion = new Version(clrVersionString);
     return true;
 }
 internal CompatibleFrameworks(System.Deployment.Internal.Isolation.Manifest.CompatibleFrameworksMetadataEntry compatibleFrameworksMetadataEntry, CompatibleFramework[] frameworks)
 {
     this._supportUrl = AssemblyManifest.UriFromMetadataEntry(compatibleFrameworksMetadataEntry.SupportUrl, "Ex_CompatibleFrameworksSupportUrlNotValid");
     this._frameworks = frameworks;
 }
コード例 #5
0
        public static bool CheckCompatibleFramework(CompatibleFramework framework, ref Version clrVersion, ref string clrVersionString, string clrProcArch)
        {
            Logger.AddMethodCall("CheckCompatibleFramework called targetVersion:" + framework.TargetVersion + " profile:" + framework.Profile);
            Version versionRequired    = new Version(framework.TargetVersion);
            string  setupKeyPath1      = (string)null;
            bool    detectInstallValue = false;
            string  setupKeyPath2;
            string  setupValueName;

            switch (versionRequired.Major)
            {
            case 2:
                setupKeyPath2      = "SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v" + framework.TargetVersion;
                setupValueName     = "Install";
                detectInstallValue = true;
                break;

            case 3:
                if (versionRequired.Minor == 0)
                {
                    setupKeyPath2      = "SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v3.0\\Setup";
                    setupValueName     = "InstallSuccess";
                    detectInstallValue = true;
                    break;
                }
                setupKeyPath2  = "SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v" + versionRequired.ToString(2);
                setupValueName = "Version";
                if ("Client".Equals(framework.Profile, StringComparison.OrdinalIgnoreCase))
                {
                    setupKeyPath1 = "SOFTWARE\\Microsoft\\NET Framework Setup\\DotNetClient\\v" + versionRequired.ToString(2);
                    break;
                }
                break;

            default:
                setupKeyPath2 = "SOFTWARE\\Microsoft\\NET Framework Setup\\NDP\\v" + versionRequired.ToString(1);
                if (!string.IsNullOrEmpty(framework.Profile))
                {
                    setupKeyPath2 = setupKeyPath2 + "\\" + framework.Profile;
                }
                setupValueName = "TargetVersion";
                break;
            }
            bool flag = PlatformDetector.DetectFrameworkInRegistry(setupKeyPath2, setupValueName, versionRequired, detectInstallValue) || setupKeyPath1 != null && PlatformDetector.DetectFrameworkInRegistry(setupKeyPath1, setupValueName, versionRequired, detectInstallValue);

            if (!flag && versionRequired.Major >= 4)
            {
                flag = PlatformDetector.DetectTFMInRegistry(framework.SupportedRuntime, framework.TargetVersion, framework.Profile);
            }
            if (!flag)
            {
                return(false);
            }
            if (!NativeMethods.VerifyCLRVersionInfo(new Version(framework.SupportedRuntime), clrProcArch))
            {
                Logger.AddWarningInformation(string.Format((IFormatProvider)CultureInfo.CurrentUICulture, Resources.GetString("CLRMissingForFoundFramework"), new object[2]
                {
                    (object)framework.SupportedRuntime,
                    (object)PlatformDetector.FormatFrameworkString(framework)
                }));
                return(false);
            }
            clrVersionString = framework.SupportedRuntime;
            clrVersion       = new Version(clrVersionString);
            return(true);
        }
 public static string FormatFrameworkString(CompatibleFramework framework)
 {
     if (string.IsNullOrEmpty(framework.Profile))
     {
         return string.Format(CultureInfo.CurrentUICulture, Resources.GetString("FrameworkNameNoProfile"), new object[] { framework.TargetVersion });
     }
     return string.Format(CultureInfo.CurrentUICulture, Resources.GetString("FrameworkNameWithProfile"), new object[] { framework.TargetVersion, framework.Profile });
 }