public PackageServicesProxy(IVsPackageInstallerServices packageInstallerServices, IVsPackageInstaller packageInstaller, IVsPackageUninstaller packageUninstaller, IVsPackageSourceProvider packageSourceProvider) { _packageInstallerServices = packageInstallerServices; _packageInstaller = packageInstaller; _packageUninstaller = packageUninstaller; _packageSourceProvider = packageSourceProvider; }
/// <inheritdoc/> public override void Execute(Project project) { var componentModel = (IComponentModel)this.Package.GetService(typeof(SComponentModel)); IVsPackageUninstaller packageUninstaller = componentModel.GetService <IVsPackageUninstaller>(); packageUninstaller.UninstallPackage(project, SlowCheetahNuGetManager.OldPackageName, true); this.Successor.Execute(project); }
public PackageHandler(EnvDTE.Project project, IVsPackageInstallerServices packageServices, IVsPackageInstaller installer, IVsPackageUninstaller uninstaller, IVsPackageInstallerEvents events) : this(project, packageServices, installer, uninstaller, events, null) { m_project = project; m_packageServices = packageServices; m_installer = installer; m_uninstaller = uninstaller; m_events = events; }
public PackageServices() { var componentModel = (IComponentModel)Package.GetGlobalService(typeof(SComponentModel)); _PkgInstaller = componentModel.GetService <IVsPackageInstaller2>(); _PkgService = componentModel.GetService <IVsPackageInstallerServices>(); _PkgRepos = componentModel.GetService <IVsPackageSourceProvider>(); _PkgUninstaller = componentModel.GetService <IVsPackageUninstaller>(); _PkgRestorer = componentModel.GetService <IVsPackageRestorer>(); }
public static void UninstallPackageApi(string id, bool dependency) { EnvDTE.DTE dte = ServiceLocator.GetInstance <EnvDTE.DTE>(); IVsPackageUninstaller uninstaller = ServiceLocator.GetInstance <IVsPackageUninstaller>(); foreach (EnvDTE.Project project in dte.Solution.Projects) { uninstaller.UninstallPackage(project, id, dependency); return; } }
private void Execute(object sender, EventArgs e) { ProjectItem item = VsHelpers.DTE.SelectedItems.Item(1).ProjectItem; try { var dependencies = Dependencies.FromConfigFile(item.FileNames[1]); IEnumerable <string> packageIds = dependencies.Providers.Select(p => p.NuGetPackageId).Distinct(); if (!_isPackageInstalled) { if (!UserWantsToInstall()) { return; } System.Threading.Tasks.Task.Run(() => { Logger.LogEvent("Installing NuGet package containing MSBuild target...", LogLevel.Status); foreach (string packageId in packageIds) { IVsPackageInstaller2 installer = _componentModel.GetService <IVsPackageInstaller2>(); installer.InstallLatestPackage(null, item.ContainingProject, packageId, true, false); } Telemetry.TrackUserTask("InstallNugetPackage"); Logger.LogEvent("NuGet package installed", LogLevel.Status); }); } else { System.Threading.Tasks.Task.Run(() => { Logger.LogEvent("Uninstalling NuGet package...", LogLevel.Status); foreach (string packageId in packageIds) { IVsPackageUninstaller uninstaller = _componentModel.GetService <IVsPackageUninstaller>(); uninstaller.UninstallPackage(item.ContainingProject, packageId, false); } Telemetry.TrackUserTask("UninstallNugetPackage"); Logger.LogEvent("NuGet package uninstalled", LogLevel.Status); }); } } catch (Exception ex) { Telemetry.TrackException(nameof(RestoreOnBuildCommand), ex); Logger.LogEvent("Error installing NuGet package", LogLevel.Status); } }
public PackageManagerConverter( IConverterViewProvider converterViewProvider, IVsPackageInstaller installer, IVsPackageUninstaller uninstaller, IVsPackageRestorer restorer, IVsFrameworkParser frameworkParser) { _converterViewProvider = converterViewProvider; _installer = installer; _uninstaller = uninstaller; _restorer = restorer; _frameworkParser = frameworkParser; }
public PackageManagerConverter( IConverterViewProvider converterViewProvider, IVsPackageInstallerServices services, IVsPackageInstaller installer, IVsPackageUninstaller uninstaller, IVsPackageRestorer restorer) { _converterViewProvider = converterViewProvider; _installer = installer; _services = services; _uninstaller = uninstaller; _restorer = restorer; }
private void UpdateSlowCheetah(Project project) { // This is done on the UI thread because changes are made to the project file, // causing it to be reloaded. To avoid conflicts with NuGet installation, // the update is done sequentially if (this.HasUserAcceptedWarningMessage(Resources.Resources.NugetUpdate_Title, Resources.Resources.NugetUpdate_Text)) { // Creates dialog informing the user to wait for the installation to finish IVsThreadedWaitDialogFactory twdFactory = this.package.GetService(typeof(SVsThreadedWaitDialogFactory)) as IVsThreadedWaitDialogFactory; IVsThreadedWaitDialog2 dialog = null; twdFactory?.CreateInstance(out dialog); string title = Resources.Resources.NugetUpdate_WaitTitle; string text = Resources.Resources.NugetUpdate_WaitText; dialog?.StartWaitDialog(title, text, null, null, null, 0, false, true); try { // Installs the latest version of the SlowCheetah NuGet package var componentModel = (IComponentModel)this.package.GetService(typeof(SComponentModel)); if (this.IsSlowCheetahInstalled(project)) { IVsPackageUninstaller packageUninstaller = componentModel.GetService <IVsPackageUninstaller>(); packageUninstaller.UninstallPackage(project, PackageName, true); } IVsPackageInstaller2 packageInstaller = componentModel.GetService <IVsPackageInstaller2>(); packageInstaller.InstallLatestPackage(null, project, PackageName, false, false); project.Save(); ProjectRootElement projectRoot = ProjectRootElement.Open(project.FullName); foreach (ProjectPropertyGroupElement propertyGroup in projectRoot.PropertyGroups.Where(pg => pg.Label.Equals("SlowCheetah"))) { projectRoot.RemoveChild(propertyGroup); } foreach (ProjectImportElement import in projectRoot.Imports.Where(i => i.Label == "SlowCheetah" || i.Project == "$(SlowCheetahTargets)")) { projectRoot.RemoveChild(import); } projectRoot.Save(); } finally { // Closes the wait dialog. If the dialog failed, does nothing int canceled; dialog?.EndWaitDialog(out canceled); } } }
private void UninstallPackageNoForce(object sender, EventArgs e) { EnvDTE.DTE dte = ServiceLocator.GetInstance <EnvDTE.DTE>(); IVsPackageInstaller services = ServiceLocator.GetInstance <IVsPackageInstaller>(); IVsPackageUninstaller uninstaller = ServiceLocator.GetInstance <IVsPackageUninstaller>(); foreach (EnvDTE.Project project in dte.Solution.Projects) { _task = System.Threading.Tasks.Task.Run(() => { services.InstallPackage("https://api.nuget.org/v2/", project, "windowsazure.storage", "4.3.0", false); uninstaller.UninstallPackage(project, "newtonsoft.json", true); }); return; } }
public static void UnInstallPackage(DTE dte, IVsPackageUninstaller uninstaller, Project project, string package) { try { StatusBar.SetStatusBarValue(dte, Resources.Resource.NuGetPackageUninstallingStatusBarMessage + ": " + package); uninstaller.UninstallPackage(project, package, true); } catch (Exception ex) { //MessageBox.Show(Resources.Resource.NuGetPackageInstallFailureMessage + ": " + ex.Message); } finally { StatusBar.ClearStatusBarValue(dte); } }
public PackageHandler(EnvDTE.Project project, IVsPackageInstallerServices packageServices, IVsPackageInstaller installer, IVsPackageUninstaller uninstaller, IVsPackageInstallerEvents events, IVsOutputWindowPane outputWindowPane) { m_project = project ?? throw new ArgumentNullException(nameof(project)); m_packageServices = packageServices ?? throw new ArgumentNullException(nameof(packageServices)); m_installer = installer ?? throw new ArgumentNullException(nameof(installer)); m_uninstaller = uninstaller ?? throw new ArgumentNullException(nameof(uninstaller)); m_events = events; m_outputWindowPane = outputWindowPane; if (m_outputWindowPane != null && m_events != null) { m_events.PackageInstalling += OnEventsOnPackageInstalling; m_events.PackageInstalled += OnEventsOnPackageInstalled; m_events.PackageUninstalling += OnEventsOnPackageUninstalling; m_events.PackageUninstalled += OnEventsOnPackageUninstalled; } }
private void Execute(object sender, EventArgs e) { ProjectItem item = VsHelpers.DTE.SelectedItems.Item(1).ProjectItem; try { if (!_isPackageInstalled) { if (!UserWantsToInstall()) { return; } System.Threading.Tasks.Task.Run(() => { Logger.LogEvent("Installing NuGet package containing MSBuild target...", LogLevel.Status); IVsPackageInstaller2 installer = _componentModel.GetService <IVsPackageInstaller2>(); installer.InstallLatestPackage(null, item.ContainingProject, Constants.NuGetPackageId, true, false); Telemetry.TrackUserTask("InstallNugetPackage"); Logger.LogEvent("NuGet package installed", LogLevel.Status); }); } else { System.Threading.Tasks.Task.Run(() => { Logger.LogEvent("Uninstalling NuGet package...", LogLevel.Status); IVsPackageUninstaller uninstaller = _componentModel.GetService <IVsPackageUninstaller>(); uninstaller.UninstallPackage(item.ContainingProject, Constants.NuGetPackageId, false); Telemetry.TrackUserTask("UninstallNugetPackage"); Logger.LogEvent("NuGet package uninstalled", LogLevel.Status); }); } } catch (Exception ex) { Telemetry.TrackException(nameof(RestoreOnBuildCommand), ex); Logger.LogEvent("Error installing NuGet package", LogLevel.Status); } }
private void ConnectWorker(VisualStudioWorkspaceImpl workspace) { var componentModel = workspace.GetVsService <SComponentModel, IComponentModel>(); _packageInstallerServices = componentModel.GetExtensions <IVsPackageInstallerServices>().FirstOrDefault(); _packageInstaller = componentModel.GetExtensions <IVsPackageInstaller>().FirstOrDefault(); _packageUninstaller = componentModel.GetExtensions <IVsPackageUninstaller>().FirstOrDefault(); _packageSourceProvider = componentModel.GetExtensions <IVsPackageSourceProvider>().FirstOrDefault(); if (!this.IsEnabled) { return; } // Start listening to workspace changes. _workspace = workspace; _workspace.WorkspaceChanged += OnWorkspaceChanged; _packageSourceProvider.SourcesChanged += OnSourceProviderSourcesChanged; OnSourceProviderSourcesChanged(null, EventArgs.Empty); }
static void Realize(IVsPackageUninstaller uninstaller) { uninstaller.UninstallPackage(default(Project), default(string), default(bool)); }
protected abstract void RemoveDependencies(Project proj, IVsPackageInstallerServices installerServices, IVsPackageUninstaller installer);
private void StartWorker() { var componentModel = _workspace.GetVsService<SComponentModel, IComponentModel>(); _packageInstallerServices = componentModel.GetExtensions<IVsPackageInstallerServices>().FirstOrDefault(); _packageInstaller = componentModel.GetExtensions<IVsPackageInstaller>().FirstOrDefault(); _packageUninstaller = componentModel.GetExtensions<IVsPackageUninstaller>().FirstOrDefault(); _packageSourceProvider = componentModel.GetExtensions<IVsPackageSourceProvider>().FirstOrDefault(); if (!this.IsEnabled) { return; } // Start listening to workspace changes. _workspace.WorkspaceChanged += OnWorkspaceChanged; _packageSourceProvider.SourcesChanged += OnSourceProviderSourcesChanged; OnSourceProviderSourcesChanged(null, EventArgs.Empty); }
private async Task ExecuteAsync(object sender, EventArgs e) { ProjectItem projectItem = await VsHelpers.GetSelectedItemAsync(); Project project = await VsHelpers.GetProjectOfSelectedItemAsync(); try { var dependencies = _dependenciesFactory.FromConfigFile(projectItem.FileNames[1]); IEnumerable <string> packageIds = dependencies.Providers .Where(p => p.NuGetPackageId != null) .Select(p => p.NuGetPackageId) .Distinct(); if (!_isPackageInstalled) { if (!UserWantsToInstall()) { return; } await Task.Run(() => { Logger.LogEvent(Resources.Text.Nuget_InstallingPackage, LogLevel.Status); try { foreach (string packageId in packageIds) { IVsPackageInstaller2 installer = _componentModel.GetService <IVsPackageInstaller2>(); installer.InstallLatestPackage(null, project, packageId, true, false); } Telemetry.TrackUserTask("Install-NugetPackage"); Logger.LogEvent(Resources.Text.Nuget_PackageInstalled, LogLevel.Status); } catch (Exception ex) { Telemetry.TrackException(nameof(RestoreOnBuildCommand), ex); Logger.LogEvent(Resources.Text.Nuget_PackageFailedToInstall, LogLevel.Status); } }); } else { await Task.Run(() => { Logger.LogEvent(Resources.Text.Nuget_UninstallingPackage, LogLevel.Status); try { foreach (string packageId in packageIds) { IVsPackageUninstaller uninstaller = _componentModel.GetService <IVsPackageUninstaller>(); uninstaller.UninstallPackage(project, packageId, false); } Telemetry.TrackUserTask("Uninstall-NugetPackage"); Logger.LogEvent(Resources.Text.Nuget_PackageUninstalled, LogLevel.Status); } catch (Exception ex) { Telemetry.TrackException(nameof(RestoreOnBuildCommand), ex); Logger.LogEvent(Resources.Text.Nuget_PackageFailedToUninstall, LogLevel.Status); } }); } } catch (Exception ex) { Telemetry.TrackException(nameof(RestoreOnBuildCommand), ex); Logger.LogEvent(Resources.Text.Nuget_PackageFailedToInstall, LogLevel.Status); } }
public void RegisterNugetServices(IVsPackageInstallerServices installerServices, IVsPackageInstaller packageInstaller, IVsPackageUninstaller packageUninstaller) { _installerServices = installerServices; _packageInstaller = packageInstaller; _packageUninstaller = packageUninstaller; }
protected override void RemoveDependencies(Project proj, IVsPackageInstallerServices installerServices, IVsPackageUninstaller installer) { // AMF.NetCoreApiExplorer if (installerServices.IsPackageInstalled(proj, RamlNetCoreApiExplorerPackageId)) { installer.UninstallPackage(proj, RamlNetCoreApiExplorerPackageId, false); } }
public void RegisterNugetServices(IVsPackageInstallerServices installerServices, IVsPackageInstaller packageInstaller, IVsPackageUninstaller packageUninstaller) { Consolidator.Instance.RegisterNugetServices(installerServices, packageInstaller, packageUninstaller); }