public static VisualStudioVersion ParseVersionString(string versionNumber) { var versions = new[] { vs2008, vs2010 }; VisualStudioVersion version = versions.FirstOrDefault(v => versionNumber.Contains(v.Year)) ?? VisualStudioVersion.VS2010; return(version); }
private static string FindDevEnv(VisualStudioVersion version) { string key = @"Software\Microsoft\VisualStudio\" + version.PathVersionNumber; string wowKey = @"Software\Wow6432Node\Microsoft\VisualStudio\" + version.PathVersionNumber; var r = Registry.LocalMachine.OpenSubKey(wowKey) ?? Registry.LocalMachine.OpenSubKey(key); if (r == null) return null; var val = r.GetValue("InstallDir"); return val == null ? null : Path.Combine(val.ToString(), "devenv.exe"); }
public static void OpenSolution(string solutionPath, VisualStudioVersion visualStudioVersion) { var devenvPath = FindDevEnv(visualStudioVersion); if (devenvPath == null || !File.Exists(devenvPath)) { Log.ErrorFormat("Unable to locate Visual Studio {0} install directory.", visualStudioVersion.Year); return; } var info = new ProcessStartInfo(devenvPath, '"' + solutionPath + '"'); Process.Start(info); }