async Task RestorePackagesAsync(CancellationToken cancellationToken)
        {
            if (restoreManager != null)
            {
                using (var monitor = new PackageRestoreMonitor(restoreManager)) {
                    await restoreManager.RestoreMissingPackagesAsync(
                        solutionManager.SolutionDirectory,
                        packagesToRestore,
                        new NuGetProjectContext(),
                        cancellationToken);
                }
            }

            if (buildIntegratedRestorer != null)
            {
                await buildIntegratedRestorer.RestorePackages(buildIntegratedProjectsToBeRestored, cancellationToken);
            }

            if (nugetAwareRestorer != null)
            {
                await nugetAwareRestorer.RestoreMissingPackagesAsync(
                    nugetAwareProjectsToBeRestored,
                    new NuGetProjectContext(),
                    cancellationToken);
            }

            await Runtime.RunInMainThread(() => RefreshProjectReferences());

            packageManagementEvents.OnPackagesRestored();
        }
        async Task RestoreAnyMissingPackages(CancellationToken cancellationToken)
        {
            var packages = await restoreManager.GetPackagesInSolutionAsync(
                solutionManager.SolutionDirectory,
                cancellationToken);

            var missingPackages = packages.Select(IsMissingForCurrentProject).ToList();

            if (missingPackages.Any())
            {
                using (var monitor = new PackageRestoreMonitor(restoreManager, packageManagementEvents)) {
                    using (var cacheContext = new SourceCacheContext()) {
                        var downloadContext = new PackageDownloadContext(cacheContext);
                        await restoreManager.RestoreMissingPackagesAsync(
                            solutionManager.SolutionDirectory,
                            project,
                            context,
                            downloadContext,
                            cancellationToken);
                    }
                }

                await RunInMainThread(() => dotNetProject.RefreshReferenceStatus());

                packageManagementEvents.OnPackagesRestored();
            }
        }
        async Task RestoreAnyMissingPackagesAsync(SourceCacheContext sourceCacheContext, CancellationToken cancellationToken)
        {
            var packages = await restoreManager.GetPackagesInSolutionAsync(
                solutionManager.SolutionDirectory,
                cancellationToken);

            if (!packages.Any(package => IsMissingForProject(package)))
            {
                return;
            }

            using (var monitor = new PackageRestoreMonitor(restoreManager, packageManagementEvents)) {
                var downloadContext = new PackageDownloadContext(sourceCacheContext);
                await restoreManager.RestoreMissingPackagesAsync(
                    solutionManager.SolutionDirectory,
                    packages,
                    context,
                    downloadContext,
                    cancellationToken);
            }

            await Runtime.RunInMainThread(() => {
                foreach (IDotNetProject dotNetProject in dotNetProjects)
                {
                    dotNetProject.RefreshReferenceStatus();
                }
            });

            packageManagementEvents.OnPackagesRestored();
        }
Exemple #4
0
        public static async Task <PackageRestoreResult> RestoreMissingPackagesAsync(
            this IPackageRestoreManager restoreManager,
            string solutionDirectory,
            NuGetProject nuGetProject,
            INuGetProjectContext nuGetProjectContext,
            PackageDownloadContext downloadContext,
            CancellationToken token)
        {
            var installedPackages = await nuGetProject.GetInstalledPackagesAsync(token);

            var nuGetProjectName = NuGetProject.GetUniqueNameOrName(nuGetProject);
            var projectNames     = new[] { nuGetProjectName };

            var packages = installedPackages.Select(package => new PackageRestoreData(package, projectNames, isMissing: true));

            return(await restoreManager.RestoreMissingPackagesAsync(
                       solutionDirectory,
                       packages,
                       nuGetProjectContext,
                       downloadContext,
                       token));
        }