public PackageServicesProxy(IVsPackageInstallerServices packageInstallerServices, IVsPackageInstaller packageInstaller, IVsPackageUninstaller packageUninstaller, IVsPackageSourceProvider packageSourceProvider)
 {
     _packageInstallerServices = packageInstallerServices;
     _packageInstaller         = packageInstaller;
     _packageUninstaller       = packageUninstaller;
     _packageSourceProvider    = packageSourceProvider;
 }
Пример #2
0
        /// <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);
        }
Пример #3
0
 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;
            }
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
 public PackageManagerConverter(
     IConverterViewProvider converterViewProvider,
     IVsPackageInstaller installer,
     IVsPackageUninstaller uninstaller,
     IVsPackageRestorer restorer,
     IVsFrameworkParser frameworkParser)
 {
     _converterViewProvider = converterViewProvider;
     _installer             = installer;
     _uninstaller           = uninstaller;
     _restorer        = restorer;
     _frameworkParser = frameworkParser;
 }
Пример #8
0
 public PackageManagerConverter(
     IConverterViewProvider converterViewProvider,
     IVsPackageInstallerServices services,
     IVsPackageInstaller installer,
     IVsPackageUninstaller uninstaller,
     IVsPackageRestorer restorer)
 {
     _converterViewProvider = converterViewProvider;
     _installer             = installer;
     _services    = services;
     _uninstaller = uninstaller;
     _restorer    = restorer;
 }
Пример #9
0
        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);
                }
            }
        }
Пример #10
0
        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);
            }
        }
Пример #12
0
        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);
        }
Пример #15
0
 static void Realize(IVsPackageUninstaller uninstaller)
 {
     uninstaller.UninstallPackage(default(Project), default(string), default(bool));
 }
 protected abstract void RemoveDependencies(Project proj, IVsPackageInstallerServices installerServices,
                                            IVsPackageUninstaller installer);
Пример #17
0
        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);
        }
Пример #18
0
        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);
            }
        }
Пример #19
0
 public void RegisterNugetServices(IVsPackageInstallerServices installerServices, IVsPackageInstaller packageInstaller, IVsPackageUninstaller packageUninstaller)
 {
     _installerServices  = installerServices;
     _packageInstaller   = packageInstaller;
     _packageUninstaller = packageUninstaller;
 }
Пример #20
0
 static void Realize(IVsPackageUninstaller uninstaller)
 {
     uninstaller.UninstallPackage(default(Project), default(string), default(bool));
 }
 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);
 }
Пример #23
0
 public PackageServicesProxy(IVsPackageInstallerServices packageInstallerServices, IVsPackageInstaller packageInstaller, IVsPackageUninstaller packageUninstaller, IVsPackageSourceProvider packageSourceProvider)
 {
     _packageInstallerServices = packageInstallerServices;
     _packageInstaller = packageInstaller;
     _packageUninstaller = packageUninstaller;
     _packageSourceProvider = packageSourceProvider;
 }