Example #1
0
        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);
        }