public static bool BatchEventsApi(string id, string version) { return(ThreadHelper.JoinableTaskFactory.Run( async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); var packageProjectEventService = ServiceLocator.GetComponent <IVsPackageInstallerProjectEvents>(); var installerServices = ServiceLocator.GetComponent <IVsPackageInstaller>(); var batchStartIds = new List <string>(); var batchEndIds = new List <string>(); packageProjectEventService.BatchStart += (args) => { batchStartIds.Add(args.BatchId); }; packageProjectEventService.BatchEnd += (args) => { batchEndIds.Add(args.BatchId); }; foreach (EnvDTE.Project project in dte.Solution.Projects) { installerServices.InstallPackage(null, project, id, version, false); } return batchStartIds.Count == 1 && batchEndIds.Count == 1 && batchStartIds[0].Equals(batchEndIds[0], StringComparison.Ordinal); })); }
public static IVsProjectJsonToPackageReferenceMigrateResult MigrateJsonProject(string projectName) { return(ThreadHelper.JoinableTaskFactory.Run(async() => { var migrator = ServiceLocator.GetComponent <IVsProjectJsonToPackageReferenceMigrator>(); return (IVsProjectJsonToPackageReferenceMigrateResult)await migrator.MigrateProjectJsonToPackageReferenceAsync(projectName); })); }
public static IVsPathContext GetVsPathContext(string projectUniqueName) { var provider = ServiceLocator.GetComponent <IVsPathContextProvider>(); IVsPathContext context; if (provider.TryCreateContext(projectUniqueName, out context)) { return(context); } return(null); }
public static bool ExecuteInitScript(string id, string version, int timeoutSec = 30) { var scriptExecutor = ServiceLocator.GetComponent <IVsGlobalPackagesInitScriptExecutor>(); // It is important that this method does not wait on ExecuteInitScriptAsync on the calling thread. // Calling thread is powershell execution thread and ExecuteInitScriptAsync needs to switch to // Powershell execution thread to execute the scripts var task = Task.Run(() => scriptExecutor.ExecuteInitScriptAsync(id, version)); Task.WaitAny(task, Task.Delay(TimeSpan.FromSeconds(timeoutSec))); if (task.IsCompleted) { return(task.Result); } return(false); }
public static void RestorePackageApi() { ThreadHelper.JoinableTaskFactory.Run( async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); var restorer = ServiceLocator.GetComponent <IVsPackageRestorer>(); foreach (EnvDTE.Project project in dte.Solution.Projects) { restorer.RestorePackages(project); return; } }); }
public static void UninstallPackageApi(string id, bool dependency) { ThreadHelper.JoinableTaskFactory.Run( async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); var uninstaller = ServiceLocator.GetComponent <IVsPackageUninstaller>(); foreach (EnvDTE.Project project in dte.Solution.Projects) { uninstaller.UninstallPackage(project, id, dependency); return; } }); }
public static void InstallPackageApi(string source, string id, string version, bool prerelease) { ThreadHelper.JoinableTaskFactory.Run( async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); var dte = ServiceLocator.GetDTE(); var services = ServiceLocator.GetComponent <IVsPackageInstaller>(); foreach (EnvDTE.Project project in dte.Solution.Projects) { services.InstallPackage(source, project, id, version, prerelease); return; } }); }
public static async Task <IVsProjectJsonToPackageReferenceMigrateResult> MigrateJsonProject(string projectName) { var migrator = ServiceLocator.GetComponent <IVsProjectJsonToPackageReferenceMigrator>(); return((IVsProjectJsonToPackageReferenceMigrateResult)await migrator.MigrateProjectJsonToPackageReferenceAsync(projectName)); }