private string GetProgIDForVSVersion(VSVersion vsVersion, VSSKU vsSKU) { string version = GetVersionString(vsVersion); string Sku = GetSkuString(vsSKU); return(Sku + ".DTE." + version); }
/// <summary> /// Launches VS with the specific version and SKU. /// </summary> /// <param name="VsVersion"></param> /// <param name="VsSKU"></param> public void LaunchVS(VSVersion VsVersion, VSSKU VsSKU) { if (!IsSkuInstalled(VsVersion, vsSKU)) { throw new Exception(string.Format("The SKU with version {0} and SKU name {1} is not present in the machine. Please specify a different SKU or install it.", VsVersion, vsSKU)); } this.vsVersion = VsVersion; this.vsSKU = VsSKU; LaunchVSInternal(); }
private void Initialize(string packagePath) { ZipPackage zipPackage = new ZipPackage(packagePath); packageId = zipPackage.Id; packageVersion = zipPackage.Version.ToString(); //set package sources. string PackageSource = Path.GetDirectoryName(packagePath); if (string.IsNullOrEmpty(PackageSource)) { PackageSource = Environment.CurrentDirectory; } IList <KeyValuePair <string, string> > sources = new List <KeyValuePair <string, string> >(); sources.Add(new KeyValuePair <string, string>("TestSource", PackageSource)); //If additional sources are specified in the app.config file, add them too. if (!string.IsNullOrEmpty(AppSettingsHelper.PackageSourceKeyValue)) { string[] additionalPackageSources = AppSettingsHelper.PackageSourceKeyValue.Split(new char[] { ',', ';' }); int i = 1; foreach (string additionalSource in additionalPackageSources) { sources.Add(new KeyValuePair <string, string>("AdditionalSources_" + i.ToString(), additionalSource)); i++; } } NugetSettingsUtility.SetPackageSources(sources); NugetSettingsUtility.SetActivePackageSource("TestSource", PackageSource); //Set test run directory. if (string.IsNullOrEmpty(AppSettingsHelper.TestResultsPathKeyValue)) { TestRunPath = Path.Combine(Environment.CurrentDirectory, packageId); } else { TestRunPath = AppSettingsHelper.TestResultsPathKeyValue; } //Create root level test run Dir if (!Directory.Exists(TestRunPath)) { Directory.CreateDirectory(TestRunPath); } AppSettingsHelper.TestResultsPathKeyValue = TestRunPath; //initialize other values. projName = DateTime.Now.Ticks.ToString(); vsVersion = (VSVersion)Enum.Parse(typeof(VSVersion), AppSettingsHelper.VSVersionKeyValue, true); vsSKU = (VSSKU)Enum.Parse(typeof(VSSKU), AppSettingsHelper.VSSKUKeyValue, true); }
private void GetDefaultSKU(out VSVersion defaultVersion, out VSSKU defaultSku) { foreach (var version in Enum.GetValues(typeof(VSVersion))) { foreach (var sku in Enum.GetValues(typeof(VSSKU))) { if (IsSkuInstalled((VSVersion)version, (VSSKU)sku)) { defaultVersion = (VSVersion)version; defaultSku = (VSSKU)sku; return; } } } throw new Exception("No VS SKU installed in this machine. Please make sure to install any SKU of VS to continue"); }
private string GetSkuString(VSSKU vsSKU) { switch (vsSKU) { case VSSKU.VSU: return(VSUSkUString); case VSSKU.VWDExpress: return(VWDExpressSkUString); case VSSKU.WDExpress: return(WDExpressSkUString); case VSSKU.Win8Express: return(Win8ExpressSkUString); default: return(VSUSkUString); } }
private string GetSkuInstallRegKeyPath(VSVersion version, VSSKU sku) { return(Path.Combine(@"Software\Microsoft", GetSkuString(sku), GetVersionString(version), @"Setup\VS")); }
private bool IsSkuInstalled(VSVersion version, VSSKU sku) { string[] subkeys = Registry.LocalMachine.OpenSubKey(GetSkuInstallRegKeyPath(version, sku)).GetSubKeyNames(); return(subkeys != null && subkeys.Length > 0); }