private void AddPackageToProject(object sender, EventArgs e) { var helpTopic = "paket-add.html#Adding-to-a-single-project"; PaketOutputPane.OutputPane.Activate(); PaketErrorPane.Clear(); var projectFileName = tracker.GetSelectedFileName(); StatusBarService.UpdateText("Add NuGet package to " + projectFileName); var projectGuid = tracker.GetSelectedProjectGuid(); SolutionExplorerExtensions.SaveSolution(); try { AddPackageProcess.ShowAddPackageDialog(projectFileName, projectGuid.ToString()); PaketOutputPane.OutputPane.OutputStringThreadSafe("Ready\r\n"); StatusBarService.UpdateText("Ready"); } catch (Exception ex) { SolutionExplorerExtensions.ReloadProject(projectGuid); PaketErrorPane.ShowError(ex.Message, projectFileName, helpTopic); PaketOutputPane.OutputPane.OutputStringThreadSafe(ex.Message + "\r\n"); } }
private void RunCommand(string helpTopic, Action <SolutionInfo> command, TaskScheduler taskScheduler = null) { PaketOutputPane.OutputPane.Activate(); taskScheduler = taskScheduler ?? TaskScheduler.Default; PaketErrorPane.Clear(); StatusBarService.UpdateText("Paket command started."); var info = new SolutionInfo(); info.Directory = SolutionExplorerExtensions.GetSolutionDirectory(); info.FileName = SolutionExplorerExtensions.GetSolutionDirectory(); System.Threading.Tasks.Task.Factory.StartNew(() => { try { command(info); PaketOutputPane.OutputPane.OutputStringThreadSafe("Ready\r\n"); StatusBarService.UpdateText("Ready"); } catch (Exception ex) { PaketErrorPane.ShowError(ex.Message, tracker.GetSelectedFileName(), helpTopic); PaketOutputPane.OutputPane.OutputStringThreadSafe(ex.Message + "\r\n"); } }, CancellationToken.None, TaskCreationOptions.None, taskScheduler); System.Threading.Tasks.Task.Run(() => { }); }
public static void SaveSolution() { if (DteUtils.DTE.Solution.IsDirty) { StatusBarService.UpdateText("Saving the current solution..."); IVsSolution solution = _serviceProvider.GetService(typeof(Microsoft.VisualStudio.Shell.Interop.SVsSolution)) as IVsSolution; solution.SaveSolutionElement((uint)__VSSLNSAVEOPTIONS.SLNSAVEOPT_ForceSave, null, 0); } }
private void RunCommandOnPackageAndReloadAllDependendProjects(string helpTopic, Action <PackageInfo> command) { var node = tracker.SelectedGraphNode; if (node == null || !node.HasCategory(PaketGraphSchema.PaketCategory)) { return; } PaketOutputPane.OutputPane.Activate(); PaketErrorPane.Clear(); StatusBarService.UpdateText("Paket command started."); var info = new PackageInfo(); info.DependenciesFileName = node.Id.GetFileName(); info.PackageName = node.GetPackageName(); info.GroupName = node.GetGroupName(); var projectGuids = Dependencies.Locate(info.DependenciesFileName) .FindProjectsFor(info.GroupName, info.PackageName) .Select(project => project.GetProjectGuid()) .ToArray(); SolutionExplorerExtensions.SaveSolution(); foreach (var projectGuid in projectGuids) { SolutionExplorerExtensions.UnloadProject(projectGuid); } System.Threading.Tasks.Task.Run(() => { try { command(info); PaketOutputPane.OutputPane.OutputStringThreadSafe("Ready\r\n"); StatusBarService.UpdateText("Ready"); } catch (Exception ex) { PaketErrorPane.ShowError(ex.Message, info.DependenciesFileName, helpTopic); PaketOutputPane.OutputPane.OutputStringThreadSafe(ex.Message + "\r\n"); } }).ContinueWith(_ => { foreach (var projectGuid in projectGuids) { SolutionExplorerExtensions.ReloadProject(projectGuid); } }); }
private void RunCommandAndReloadAllProjects(string helpTopic, Action <SolutionInfo> command) { PaketOutputPane.OutputPane.Activate(); PaketErrorPane.Clear(); StatusBarService.UpdateText("Paket command started."); var info = new SolutionInfo(); info.Directory = SolutionExplorerExtensions.GetSolutionDirectory(); info.FileName = SolutionExplorerExtensions.GetSolutionDirectory(); var projectGuids = SolutionExplorerExtensions.GetAllProjectGuids(); SolutionExplorerExtensions.SaveSolution(); // https://github.com/fsprojects/Paket.VisualStudio/issues/84 // explicitly save unsaved projects foreach (var project in SolutionExplorerExtensions.GetAllProjects().Where(p => false == p.Saved)) { project.Save(); } foreach (var projectGuid in projectGuids) { SolutionExplorerExtensions.UnloadProject(projectGuid); } System.Threading.Tasks.Task.Run(() => { try { command(info); PaketOutputPane.OutputPane.OutputStringThreadSafe("Ready\r\n"); StatusBarService.UpdateText("Ready"); } catch (Exception ex) { PaketErrorPane.ShowError(ex.Message, info.FileName, helpTopic); PaketOutputPane.OutputPane.OutputStringThreadSafe(ex.Message + "\r\n"); } }).ContinueWith(_ => { foreach (var projectGuid in projectGuids) { SolutionExplorerExtensions.ReloadProject(projectGuid); } }); }
private void RunCommandAndReloadAllProjects(string helpTopic, Action <SolutionInfo> command) { PaketOutputPane.OutputPane.Activate(); PaketErrorPane.Clear(); StatusBarService.UpdateText("Paket command started."); var info = new SolutionInfo(); info.Directory = SolutionExplorerExtensions.GetSolutionDirectory(); info.FileName = SolutionExplorerExtensions.GetSolutionDirectory(); var projectGuids = SolutionExplorerExtensions.GetAllProjectGuids(); SolutionExplorerExtensions.SaveSolution(); foreach (var projectGuid in projectGuids) { SolutionExplorerExtensions.UnloadProject(projectGuid); } System.Threading.Tasks.Task.Run(() => { try { command(info); PaketOutputPane.OutputPane.OutputStringThreadSafe("Ready\r\n"); StatusBarService.UpdateText("Ready"); } catch (Exception ex) { PaketErrorPane.ShowError(ex.Message, info.FileName, helpTopic); PaketOutputPane.OutputPane.OutputStringThreadSafe(ex.Message + "\r\n"); } }).ContinueWith(_ => { foreach (var projectGuid in projectGuids) { SolutionExplorerExtensions.ReloadProject(projectGuid); } }); }