async Task <IEnumerable <NuGetProjectAction> > PreviewUpdateAllPackagesAsync( SourceCacheContext sourceCacheContext, CancellationToken token) { solutionManager = projects.FirstOrDefault().GetSolutionManager(); nugetProjects = projects .Select(project => project.CreateNuGetProject(solutionManager)) .ToList(); var repositoryProvider = solutionManager.CreateSourceRepositoryProvider(); packageManager = new NuGetPackageManager( repositoryProvider, solutionManager.Settings, solutionManager, new DeleteOnRestartManager()); var repositories = repositoryProvider.GetRepositories(message.PackageSources); projectContext = new ConsoleHostNuGetProjectContext( solutionManager.Settings, message.FileConflictAction.ToFileConflictActionEnum()); var resolutionContext = new ResolutionContext( message.DependencyBehavior.ToDependencyBehaviorEnum(), message.AllowPrerelease, false, message.VersionConstraints.ToVersionContrainsEnum(), new GatherCache(), sourceCacheContext ); return(await packageManager.PreviewUpdatePackagesAsync( nugetProjects, resolutionContext, projectContext, repositories, repositories, // Update-Package does not use all enabled package sources. token ).ConfigureAwait(false)); }
async Task <IEnumerable <NuGetProjectAction> > PreviewUpdatePackagesAsync( SourceCacheContext sourceCacheContext, CancellationToken token) { solutionManager = projects.FirstOrDefault().GetSolutionManager(); nugetProjects = projects .Select(project => project.CreateNuGetProject(solutionManager)) .ToList(); IsPackageInstalled = await CheckPackageInstalled(token); if (!IsPackageInstalled) { return(Enumerable.Empty <NuGetProjectAction> ()); } var repositoryProvider = solutionManager.CreateSourceRepositoryProvider(); packageManager = new NuGetPackageManager( repositoryProvider, solutionManager.Settings, solutionManager, new DeleteOnRestartManager()); var enabledRepositories = repositoryProvider.GetEnabledRepositories(); var repositories = repositoryProvider.GetRepositories(message.PackageSources); projectContext = new ConsoleHostNuGetProjectContext( solutionManager.Settings, message.FileConflictAction.ToFileConflictActionEnum()); var resolutionContext = new ResolutionContext( message.DependencyBehavior.ToDependencyBehaviorEnum(), message.AllowPrerelease, false, message.VersionConstraints.ToVersionContrainsEnum(), new GatherCache(), sourceCacheContext ); if (!string.IsNullOrEmpty(message.PackageVersion)) { var packageVersion = NuGetVersion.Parse(message.PackageVersion); return(await packageManager.PreviewUpdatePackagesAsync( new PackageIdentity (message.PackageId, packageVersion), nugetProjects, resolutionContext, projectContext, repositories, enabledRepositories, token ).ConfigureAwait(false)); } else { return(await packageManager.PreviewUpdatePackagesAsync( message.PackageId, nugetProjects, resolutionContext, projectContext, repositories, enabledRepositories, token ).ConfigureAwait(false)); } }
public async Task <IEnumerable <NuGetProjectAction> > PreviewInstallPackage( SourceCacheContext sourceCacheContext, CancellationToken token) { solutionManager = project.GetSolutionManager(); nugetProject = project.CreateNuGetProject(solutionManager); packageManager = new MonoDevelopNuGetPackageManager(solutionManager); var repositoryProvider = solutionManager.CreateSourceRepositoryProvider(); var repositories = repositoryProvider.GetRepositories(message.PackageSources); projectContext = new ConsoleHostNuGetProjectContext( solutionManager.Settings, message.FileConflictAction.ToFileConflictActionEnum()); var dependencyBehavior = message.DependencyBehavior.ToDependencyBehaviorEnum(); NuGetVersion version = null; if (string.IsNullOrEmpty(message.PackageVersion)) { version = await GetLatestPackageVersion(repositories, dependencyBehavior, sourceCacheContext, token); } else { version = NuGetVersion.Parse(message.PackageVersion); } identity = new PackageIdentity(message.PackageId, version); var resolutionContext = new ResolutionContext( dependencyBehavior, message.AllowPrerelease, true, VersionConstraints.None, new GatherCache(), sourceCacheContext ); try { return(await packageManager.PreviewInstallPackageAsync( nugetProject, identity, resolutionContext, projectContext, repositories, null, token ).ConfigureAwait(false)); } catch (InvalidOperationException ex) { if (ex.InnerException is PackageAlreadyInstalledException) { IsPackageAlreadyInstalled = true; return(Enumerable.Empty <NuGetProjectAction> ()); } else { throw; } } }