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 })); }
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; }
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 }); }