public async Task Do(string package, string rootPath) { if (rootPath == null) { rootPath = Directory.GetCurrentDirectory(); } var providers = new List <Lazy <INuGetResourceProvider> >(); providers.AddRange(Repository.Provider.GetCoreV3()); // Add v3 API support var settings = Settings.LoadDefaultSettings(rootPath, null, new MachineWideSettings()); var project = new ProjectBazel(rootPath, null, false); var sourceRepositoryProvider = new SourceRepositoryProvider(settings, providers); var solutionManager = new BazelSolutionManager(project, rootPath); var deleteManager = new DeleteOnRestart(); var packageManager = new NuGetPackageManager(sourceRepositoryProvider, settings, solutionManager, deleteManager) { PackagesFolderNuGetProject = project, }; var projectContext = new ProjectContext(); var uninstallContext = new UninstallationContext(true, true); await packageManager.UninstallPackageAsync(packageManager.PackagesFolderNuGetProject, package, uninstallContext, projectContext, CancellationToken.None); }
public static async Task UninstallPackage(string packageId, string version, ILogger logger = null) { if (logger == null) { logger = new ConsoleNuGetLogger(IoC.Get <IConsole>()); } PackageIdentity identity = new PackageIdentity(packageId, new NuGet.Versioning.NuGetVersion(version)); List <Lazy <INuGetResourceProvider> > providers = new List <Lazy <INuGetResourceProvider> >(); providers.AddRange(Repository.Provider.GetCoreV3()); // Add v3 API support var settings = NuGet.Configuration.Settings.LoadDefaultSettings(Platform.ReposDirectory, null, new MachineWideSettings(), false, true); ISourceRepositoryProvider sourceRepositoryProvider = new SourceRepositoryProvider(settings, providers); // See part 2 using (var installedPackageCache = GetCache()) { var project = new AvalonStudioExtensionsFolderProject(GetFramework(), installedPackageCache, Platform.ReposDirectory); var packageManager = new NuGetPackageManager(sourceRepositoryProvider, settings, new SolutionManager(), new DeleteOnRestartManager()) { PackagesFolderNuGetProject = project, }; INuGetProjectContext projectContext = new ProjectContext(logger); var uninstallationContext = new UninstallationContext(true, true); await packageManager.UninstallPackageAsync(project, packageId, uninstallationContext, projectContext, CancellationToken.None); } }
public void UninstallPackage(Project project, string packageId, bool removeDependencies) { if (project == null) { throw new ArgumentNullException("project"); } if (String.IsNullOrEmpty(packageId)) { throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, CommonResources.Argument_Cannot_Be_Null_Or_Empty, "packageId")); } PumpingJTF.Run(async delegate { NuGetPackageManager packageManager = new NuGetPackageManager( _sourceRepositoryProvider, _settings, _solutionManager, _deleteOnRestartManager); UninstallationContext uninstallContext = new UninstallationContext(removeDependencies, false); VSAPIProjectContext projectContext = new VSAPIProjectContext(); // find the project NuGetProject nuGetProject = await _solutionManager.GetOrCreateProjectAsync(project, projectContext); // uninstall the package await packageManager.UninstallPackageAsync(nuGetProject, packageId, uninstallContext, projectContext, CancellationToken.None); }); }
public void UninstallPackage(Project project, string packageId, bool removeDependencies) { const string eventName = nameof(IVsPackageUninstaller) + "." + nameof(UninstallPackage); using var _ = NuGetETW.ExtensibilityEventSource.StartStopEvent(eventName, new { // Can't add project information, since it's a COM object that this method might be called on a background thread PackageId = packageId, RemoveDependencies = removeDependencies }); if (project == null) { throw new ArgumentNullException(nameof(project)); } if (string.IsNullOrEmpty(packageId)) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, CommonResources.Argument_Cannot_Be_Null_Or_Empty, nameof(packageId))); } try { PumpingJTF.Run(async delegate { NuGetPackageManager packageManager = new NuGetPackageManager( _sourceRepositoryProvider, _settings, _solutionManager, _deleteOnRestartManager, _restoreProgressReporter); var uninstallContext = new UninstallationContext(removeDependencies, forceRemove: false); var projectContext = new VSAPIProjectContext { PackageExtractionContext = new PackageExtractionContext( PackageSaveMode.Defaultv2, PackageExtractionBehavior.XmlDocFileSaveMode, ClientPolicyContext.GetClientPolicy(_settings, NullLogger.Instance), NullLogger.Instance) }; // find the project NuGetProject nuGetProject = await _solutionManager.GetOrCreateProjectAsync(project, projectContext); // uninstall the package await packageManager.UninstallPackageAsync(nuGetProject, packageId, uninstallContext, projectContext, CancellationToken.None); }); } catch (Exception exception) { _telemetryProvider.PostFault(exception, typeof(VsPackageUninstaller).FullName); throw; } }
public void UninstallPackage(Project project, string packageId, bool removeDependencies) { if (project == null) { throw new ArgumentNullException("project"); } if (string.IsNullOrEmpty(packageId)) { throw new ArgumentException(string.Format(CultureInfo.CurrentCulture, CommonResources.Argument_Cannot_Be_Null_Or_Empty, nameof(packageId))); } try { PumpingJTF.Run(async delegate { NuGetPackageManager packageManager = new NuGetPackageManager( _sourceRepositoryProvider, _settings, _solutionManager, _deleteOnRestartManager); var uninstallContext = new UninstallationContext(removeDependencies, forceRemove: false); var projectContext = new VSAPIProjectContext { PackageExtractionContext = new PackageExtractionContext( PackageSaveMode.Defaultv2, PackageExtractionBehavior.XmlDocFileSaveMode, ClientPolicyContext.GetClientPolicy(_settings, NullLogger.Instance), NullLogger.Instance) }; // find the project NuGetProject nuGetProject = await _solutionManager.GetOrCreateProjectAsync(project, projectContext); // uninstall the package await packageManager.UninstallPackageAsync(nuGetProject, packageId, uninstallContext, projectContext, CancellationToken.None); }); } catch (Exception exception) { _telemetryProvider.PostFault(exception, typeof(VsPackageUninstaller).FullName); throw; } }
public async Task UninstallAsync(string packageId) { UninstallationContext uninstallationContext; PackageReference installedPackage; IEnumerable <PackageReference> installedPackageSet; uninstallationContext = new UninstallationContext(); installedPackageSet = await _project.GetInstalledPackagesAsync(new CancellationToken()); installedPackage = installedPackageSet.FirstOrDefault(packageReference => packageReference.PackageIdentity.Id == packageId); if (installedPackage != null) { await _packageManager.UninstallPackageAsync(_project, packageId, uninstallationContext, _projectContext, CancellationToken.None); } this.OnInstalledPackagesChanged(); }
public void UninstallPackage(Project project, string packageId, bool removeDependencies) { if (project == null) { throw new ArgumentNullException("project"); } if (String.IsNullOrEmpty(packageId)) { throw new ArgumentException(String.Format(CultureInfo.CurrentCulture, CommonResources.Argument_Cannot_Be_Null_Or_Empty, "packageId")); } PumpingJTF.Run(async delegate { NuGetPackageManager packageManager = new NuGetPackageManager( _sourceRepositoryProvider, _settings, _solutionManager, _deleteOnRestartManager); UninstallationContext uninstallContext = new UninstallationContext(removeDependencies, false); VSAPIProjectContext projectContext = new VSAPIProjectContext(); var signedPackageVerifier = new PackageSignatureVerifier(SignatureVerificationProviderFactory.GetSignatureVerificationProviders()); var logger = new LoggerAdapter(projectContext); projectContext.PackageExtractionContext = new PackageExtractionContext( PackageSaveMode.Defaultv2, PackageExtractionBehavior.XmlDocFileSaveMode, logger, signedPackageVerifier, SignedPackageVerifierSettings.GetClientPolicy(_settings, logger)); // find the project NuGetProject nuGetProject = await _solutionManager.GetOrCreateProjectAsync(project, projectContext); // uninstall the package await packageManager.UninstallPackageAsync(nuGetProject, packageId, uninstallContext, projectContext, CancellationToken.None); }); }