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(() => { }); }
private void ConvertFromNuGet(object sender, EventArgs e) { RunCommandAndReloadAllProjects("paket-convert-from-nuget.html", info => { PaketLauncher.LaunchPaket(SolutionExplorerExtensions.GetSolutionDirectory(), "convert-from-nuget", (send, args) => PaketOutputPane.OutputPane.OutputStringThreadSafe(args.Data + "\n")); }); }
private void RemovePackageFromProject(object sender, EventArgs e) { RunCommandOnPackageInUnloadedProject("paket-remove.html#Removing-from-a-single-project", info => { PaketLauncher.LaunchPaket(SolutionExplorerExtensions.GetSolutionDirectory(), "remove " + info.PackageName + " --project " + info.ReferencesFileName, (send, args) => PaketOutputPane.OutputPane.OutputStringThreadSafe(args.Data + "\n")); }); }
private void RemovePackage(object sender, EventArgs e) { RunCommandOnPackageAndReloadAllDependendProjects("paket-remove.html", info => { PaketLauncher.LaunchPaket(SolutionExplorerExtensions.GetSolutionDirectory(), "remove " + info.PackageName, (send, args) => PaketOutputPane.OutputPane.OutputStringThreadSafe(args.Data + "\n")); }); }
private void UpdateGroup(object sender, EventArgs e) { RunCommandOnPackageAndReloadAllDependendProjects("paket-update.html#Updating-a-single-group", info => { PaketLauncher.LaunchPaket(SolutionExplorerExtensions.GetSolutionDirectory(), "update --group " + info.GroupName, (send, args) => PaketOutputPane.OutputPane.OutputStringThreadSafe(args.Data + "\n")); }); }
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); } }); }
public static string GetPaketDirectory() { var di = new DirectoryInfo(SolutionExplorerExtensions.GetSolutionDirectory()); return(GetPaketDirectory(di, di)); }