Пример #1
0
        public SaveSolutionCommand(ISettings settings, IVisualStudioInstallationsProvider visualStudioInstallationsProvider, string solutionFileName, string visualStudioVersion, SolutionViewModel solution)
        {
            _settings = settings;
            _visualStudioInstallationsProvider = visualStudioInstallationsProvider;
            _solutionFileName    = solutionFileName;
            _visualStudioVersion = visualStudioVersion;
            _solution            = solution;

            _visualStudioInstallation = _visualStudioInstallationsProvider.GetVisualStudioInstallationByVersionId(_visualStudioVersion)
                                        ?? _visualStudioInstallationsProvider.GetMostRecentVisualStudioInstallation();
        }
Пример #2
0
        private void Launch(bool elevated)
        {
            InternalSave(null);
            var installation = _visualStudioInstallationsProvider.GetVisualStudioInstallationByVersionId(_settings.VisualStudioVersion);
            var psi          = new ProcessStartInfo(installation.DevEnvExePath, "\"" + FileName + "\"");

            if (elevated)
            {
                psi.Verb = "runas";
            }
            try {
                Process.Start(psi);
                Application.Current.MainWindow.WindowState = WindowState.Minimized;
            } catch (Win32Exception ex) {
                // if NativeErrorCode = 1223, the user cancelled the UAC dialog
                if (ex.NativeErrorCode != 1223)
                {
                    throw;
                }
            }
        }