protected npandaySettingsVendorsVendor GetVendorForGnu(String libPath) { if (libPath == null) { throw new ExecutionException("NPANDAY-9011-000: Could not detect GNU vendor: No CSCC_LIB_PATH Found"); } if (libPath.EndsWith("lib" + Path.DirectorySeparatorChar + "cscc" + Path.DirectorySeparatorChar + "lib")) { string installR = new DirectoryInfo(libPath).Parent.Parent.Parent.FullName; string[] tokenizedInstallRoot = installR.Split(Path.DirectorySeparatorChar); string vendorVersion = tokenizedInstallRoot[tokenizedInstallRoot.Length - 1]; if (!isValidVersion(vendorVersion)) { throw new ExecutionException("NPANDAY-9011-001: Invalid version format for dotGNU: Version = " + vendorVersion + ", Root = " + installR); } npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "DotGNU"; vendor.vendorVersion = vendorVersion; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = Path.Combine(installR, "bin"); vf.frameworkVersion = "2.0.50727";//doesn't matter vendorFrameworks[0] = vf;; vendor.frameworks = vendorFrameworks; return(vendor); } throw new ExecutionException("NPANDAY-9011-002: CSCC_LIB_PATH found but could not determine vendor information"); }
private void FindAndAssignExecutablePaths(npandaySettingsVendorsVendorFrameworksFramework x) { if (x.sdkInstallRoot != null) { if (File.Exists(Path.Combine(x.sdkInstallRoot, "xsd.exe"))) { return; } string binDir = Path.Combine(x.sdkInstallRoot, "bin"); if (File.Exists(Path.Combine(binDir, "xsd.exe"))) { if (x.executablePaths == null) { x.executablePaths = new string[] { binDir } } ; else { List <string> list = new List <string>(x.executablePaths); list.Add(binDir); x.executablePaths = list.ToArray(); } } } }
private npandaySettingsVendorsVendor[] GetVendorsForMono(RegistryKey monoRegistryKey, string defaultMonoCLR) { if (monoRegistryKey == null) { throw new ExecutionException("NPANDAY-9011-007: Mono installation could not be found."); } npandaySettingsVendorsVendor[] vendors = new npandaySettingsVendorsVendor[monoRegistryKey.SubKeyCount]; int i = 0; foreach (string keyName in monoRegistryKey.GetSubKeyNames()) { string sdkInstallRoot = (string)monoRegistryKey.OpenSubKey(keyName).GetValue("SdkInstallRoot"); if (sdkInstallRoot == null) { throw new ExecutionException("NPANDAY-9011-004: Could not find install root key for mono"); } string installRoot = Path.Combine(sdkInstallRoot, "bin"); npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[2]; npandaySettingsVendorsVendorFrameworksFramework vf11 = new npandaySettingsVendorsVendorFrameworksFramework(); vf11.installRoot = installRoot; vf11.frameworkVersion = "1.1.4322"; vendorFrameworks[0] = vf11; npandaySettingsVendorsVendorFrameworksFramework vf20 = new npandaySettingsVendorsVendorFrameworksFramework(); vf20.installRoot = installRoot; vf20.frameworkVersion = "2.0.50727"; vendorFrameworks[1] = vf20; npandaySettingsVendorsVendorFrameworksFramework vf35 = new npandaySettingsVendorsVendorFrameworksFramework(); vf35.installRoot = installRoot; vf35.frameworkVersion = "3.5"; vendorFrameworks[2] = vf35; npandaySettingsVendorsVendorFrameworksFramework vf40 = new npandaySettingsVendorsVendorFrameworksFramework(); vf40.installRoot = installRoot; vf40.frameworkVersion = "4.0"; vendorFrameworks[3] = vf40; npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MONO"; vendor.vendorVersion = keyName; vendor.frameworks = vendorFrameworks; if (defaultMonoCLR.Equals(keyName)) { vendor.isDefault = "true"; } vendors[i++] = vendor; } return(vendors); }
private npandaySettingsVendorsVendor[] GetVendorsForMicrosoft(RegistryKey microsoftRegistryKey) { if (microsoftRegistryKey == null) { throw new ExecutionException("NPANDAY-9011-006: Microsoft installation could not be found."); } string installRoot = (string)microsoftRegistryKey.GetValue("InstallRoot"); DotnetSdkLocator sdkLocator = new DotnetSdkLocator(); string sdkInstallRoot11 = sdkLocator.Find1_1(); string sdkInstallRoot20 = sdkLocator.Find2_0(); string sdkInstallRoot35 = sdkLocator.Find3_5(); string sdkInstallRoot40 = sdkLocator.Find4_0(); if (installRoot == null) { throw new ExecutionException("NPANDAY-9011-005"); } List <npandaySettingsVendorsVendor> vendors = new List <npandaySettingsVendorsVendor>(); DirectoryInfo dirInfo11 = new DirectoryInfo(Path.Combine(installRoot, "v1.1.4322")); DirectoryInfo dirInfo20 = new DirectoryInfo(Path.Combine(installRoot, "v2.0.50727")); DirectoryInfo dirInfo30 = new DirectoryInfo(Path.Combine(installRoot, "v3.0")); DirectoryInfo dirInfo35 = new DirectoryInfo(Path.Combine(installRoot, "v3.5")); DirectoryInfo dirInfo40 = new DirectoryInfo(Path.Combine(installRoot, "v4.0.30319")); if (dirInfo11.Exists) { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "1.1.4322"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo11.FullName; vf.frameworkVersion = "1.1.4322"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot11; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } if (dirInfo20.Exists) { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "2.0.50727"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo20.FullName; vf.frameworkVersion = "2.0.50727"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot20; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } if (dirInfo30.Exists) { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "3.0"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo30.FullName; vf.frameworkVersion = "3.0"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot20; // 3.0 does not have it's own compilers, so the bins from 2.0 will do the job here vf.executablePaths = new string[] { dirInfo20.FullName }; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } if (dirInfo35.Exists) { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "3.5"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo35.FullName; vf.frameworkVersion = "3.5"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot35; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } if (dirInfo40.Exists) { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "4.0"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo40.FullName; vf.frameworkVersion = "4.0"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot40; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } foreach (string sdk in microsoftRegistryKey.GetSubKeyNames()) { if (sdk == "v4.5.50709") { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "4.5"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo40.FullName; vf.frameworkVersion = "4.5"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot40; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } else if (sdk == "v4.5.1") { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "4.5.1"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo40.FullName; vf.frameworkVersion = "4.5.1"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot40; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } } return(vendors.ToArray()); }
private npandaySettingsVendorsVendor[] GetVendorsForMono(RegistryKey monoRegistryKey, string defaultMonoCLR) { if (monoRegistryKey == null) throw new ExecutionException("NPANDAY-9011-007: Mono installation could not be found."); npandaySettingsVendorsVendor[] vendors = new npandaySettingsVendorsVendor[monoRegistryKey.SubKeyCount]; int i = 0; foreach (string keyName in monoRegistryKey.GetSubKeyNames()) { string sdkInstallRoot = (string)monoRegistryKey.OpenSubKey(keyName).GetValue("SdkInstallRoot"); if (sdkInstallRoot == null) throw new ExecutionException("NPANDAY-9011-004: Could not find install root key for mono"); string installRoot = Path.Combine(sdkInstallRoot, "bin"); npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[2]; npandaySettingsVendorsVendorFrameworksFramework vf11 = new npandaySettingsVendorsVendorFrameworksFramework(); vf11.installRoot = installRoot; vf11.frameworkVersion = "1.1.4322"; vendorFrameworks[0] = vf11; npandaySettingsVendorsVendorFrameworksFramework vf20 = new npandaySettingsVendorsVendorFrameworksFramework(); vf20.installRoot = installRoot; vf20.frameworkVersion = "2.0.50727"; vendorFrameworks[1] = vf20; npandaySettingsVendorsVendorFrameworksFramework vf35 = new npandaySettingsVendorsVendorFrameworksFramework(); vf35.installRoot = installRoot; vf35.frameworkVersion = "3.5"; vendorFrameworks[2] = vf35; npandaySettingsVendorsVendorFrameworksFramework vf40 = new npandaySettingsVendorsVendorFrameworksFramework(); vf40.installRoot = installRoot; vf40.frameworkVersion = "4.0"; vendorFrameworks[3] = vf40; npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MONO"; vendor.vendorVersion = keyName; vendor.frameworks = vendorFrameworks; if (defaultMonoCLR.Equals(keyName)) vendor.isDefault = "true"; vendors[i++] = vendor; } return vendors; }
private npandaySettingsVendorsVendor[] GetVendorsForMicrosoft(RegistryKey microsoftRegistryKey) { if (microsoftRegistryKey == null) throw new ExecutionException("NPANDAY-9011-006: Microsoft installation could not be found."); string installRoot = (string)microsoftRegistryKey.GetValue("InstallRoot"); DotnetSdkLocator sdkLocator = new DotnetSdkLocator(); string sdkInstallRoot11 = sdkLocator.Find1_1(); string sdkInstallRoot20 = sdkLocator.Find2_0(); string sdkInstallRoot35 = sdkLocator.Find3_5(); string sdkInstallRoot40 = sdkLocator.Find4_0(); if (installRoot == null) throw new ExecutionException("NPANDAY-9011-005"); List<npandaySettingsVendorsVendor> vendors = new List<npandaySettingsVendorsVendor>(); DirectoryInfo dirInfo11 = new DirectoryInfo(Path.Combine(installRoot, "v1.1.4322")); DirectoryInfo dirInfo20 = new DirectoryInfo(Path.Combine(installRoot, "v2.0.50727")); DirectoryInfo dirInfo30 = new DirectoryInfo(Path.Combine(installRoot, "v3.0")); DirectoryInfo dirInfo35 = new DirectoryInfo(Path.Combine(installRoot, "v3.5")); DirectoryInfo dirInfo40 = new DirectoryInfo(Path.Combine(installRoot, "v4.0.30319")); if (dirInfo11.Exists) { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "1.1.4322"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo11.FullName; vf.frameworkVersion = "1.1.4322"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot11; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } if (dirInfo20.Exists) { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "2.0.50727"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo20.FullName; vf.frameworkVersion = "2.0.50727"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot20; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } if (dirInfo30.Exists) { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "3.0"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo30.FullName; vf.frameworkVersion = "3.0"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot20; // 3.0 does not have it's own compilers, so the bins from 2.0 will do the job here vf.executablePaths = new string[] { dirInfo20.FullName }; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } if (dirInfo35.Exists) { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "3.5"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo35.FullName; vf.frameworkVersion = "3.5"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot35; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } if (dirInfo40.Exists) { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "4.0"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo40.FullName; vf.frameworkVersion = "4.0"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot40; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } foreach (string sdk in microsoftRegistryKey.GetSubKeyNames()) { if (sdk == "v4.5.50709") { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "4.5"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo40.FullName; vf.frameworkVersion = "4.5"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot40; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } else if (sdk == "v4.5.1") { npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "MICROSOFT"; vendor.vendorVersion = "4.5.1"; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = dirInfo40.FullName; vf.frameworkVersion = "4.5.1"; vendorFrameworks[0] = vf; vf.sdkInstallRoot = sdkInstallRoot40; FindAndAssignExecutablePaths(vf); vendor.frameworks = vendorFrameworks; vendors.Add(vendor); } } return vendors.ToArray(); }
private void FindAndAssignExecutablePaths(npandaySettingsVendorsVendorFrameworksFramework x) { if (x.sdkInstallRoot != null) { if (File.Exists(Path.Combine(x.sdkInstallRoot, "xsd.exe"))) { return; } string binDir = Path.Combine(x.sdkInstallRoot, "bin"); if (File.Exists(Path.Combine(binDir, "xsd.exe"))) { if (x.executablePaths == null) x.executablePaths = new string[] { binDir }; else { List<string> list = new List<string>(x.executablePaths); list.Add(binDir); x.executablePaths = list.ToArray(); } } } }
protected npandaySettingsVendorsVendor GetVendorForGnu(String libPath) { if (libPath == null) throw new ExecutionException("NPANDAY-9011-000: Could not detect GNU vendor: No CSCC_LIB_PATH Found"); if (libPath.EndsWith("lib" + Path.DirectorySeparatorChar + "cscc" + Path.DirectorySeparatorChar + "lib")) { string installR = new DirectoryInfo(libPath).Parent.Parent.Parent.FullName; string[] tokenizedInstallRoot = installR.Split(Path.DirectorySeparatorChar); string vendorVersion = tokenizedInstallRoot[tokenizedInstallRoot.Length - 1]; if (!isValidVersion(vendorVersion)) { throw new ExecutionException("NPANDAY-9011-001: Invalid version format for dotGNU: Version = " + vendorVersion + ", Root = " + installR); } npandaySettingsVendorsVendor vendor = new npandaySettingsVendorsVendor(); vendor.vendorName = "DotGNU"; vendor.vendorVersion = vendorVersion; npandaySettingsVendorsVendorFrameworksFramework[] vendorFrameworks = new npandaySettingsVendorsVendorFrameworksFramework[1]; npandaySettingsVendorsVendorFrameworksFramework vf = new npandaySettingsVendorsVendorFrameworksFramework(); vf.installRoot = Path.Combine(installR, "bin"); vf.frameworkVersion = "2.0.50727";//doesn't matter vendorFrameworks[0] = vf; ; vendor.frameworks = vendorFrameworks; return vendor; } throw new ExecutionException("NPANDAY-9011-002: CSCC_LIB_PATH found but could not determine vendor information"); }