public async Task RestoreMissingPackagesAsync ( IEnumerable<INuGetAwareProject> projects, NuGetProjectContext context, CancellationToken token) { foreach (INuGetAwareProject project in projects) { await RestoreMissingPackagesAsync (project, context, token); } }
async Task <List <InstallNuGetPackageAction> > CreatePackageActions(DotNetProject project, IEnumerable <TemplatePackageReference> packageReferences) { var repositoryProvider = SourceRepositoryProviderFactory.CreateSourceRepositoryProvider(); var repositories = repositoryProvider.GetRepositories().ToList(); var solutionManager = PackageManagementServices.Workspace.GetSolutionManager(project.ParentSolution); var installPackageActions = new List <InstallNuGetPackageAction> (); var context = new NuGetProjectContext(solutionManager.Settings) { FileConflictResolution = FileConflictAction.IgnoreAll }; var dotNetProject = new DotNetProjectProxy(project); var nugetProject = solutionManager.GetNuGetProject(dotNetProject); var installedPackages = (await nugetProject.GetInstalledPackagesAsync(CancellationToken.None)).ToList(); foreach (var packageReference in packageReferences) { var version = new NuGetVersion(packageReference.Version); if (!ShouldInstallPackage(packageReference.Id, version, installedPackages)) { continue; } var action = new InstallNuGetPackageAction( repositories, solutionManager, dotNetProject, context) { LicensesMustBeAccepted = false, OpenReadmeFile = false, PackageId = packageReference.Id, Version = version }; installPackageActions.Add(action); } return(installPackageActions); }
InstallNuGetPackageAction CreateInstallNuGetPackageAction( DotNetProject dotNetProject, ProjectTemplateSourceRepositoryProvider repositoryProvider, ProjectTemplatePackageReference packageReference) { var primaryRepositories = repositoryProvider.GetRepositories(packageReference).ToList(); var secondaryRepositories = GetSecondaryRepositories(primaryRepositories, packageReference); var context = new NuGetProjectContext { FileConflictResolution = FileConflictAction.IgnoreAll }; return(new InstallNuGetPackageAction( primaryRepositories, secondaryRepositories, PackageManagementServices.Workspace.GetSolutionManager(dotNetProject.ParentSolution), new DotNetProjectProxy(dotNetProject), context) { LicensesMustBeAccepted = packageReference.RequireLicenseAcceptance, OpenReadmeFile = false }); }
void DebugLogFormat(string format, params object[] args) { NuGetProjectContext.Log(MessageLevel.Debug, format, args); }
IEnumerable<INuGetPackageAction> CreateInstallActions ( IEnumerable<SourceRepository> repositories, Project project, IEnumerable<PackageManagementPackageReference> packages, bool licensesAccepted) { List<INuGetPackageAction> actions = null; Runtime.RunInMainThread (() => { var solutionManager = PackageManagementServices.Workspace.GetSolutionManager (project.ParentSolution); var dotNetProject = new DotNetProjectProxy ((DotNetProject)project); var context = new NuGetProjectContext (); actions = packages.Select (packageReference => { var action = new InstallNuGetPackageAction ( repositories, solutionManager, dotNetProject, context); action.PackageId = packageReference.Id; action.Version = packageReference.GetNuGetVersion (); action.LicensesMustBeAccepted = !licensesAccepted; return (INuGetPackageAction)action; }).ToList (); }).Wait (); return actions; }