async Task RestorePackagesAsync(
            List <BuildIntegratedNuGetProject> projects,
            CancellationToken token)
        {
            var packageRestorer = new MonoDevelopBuildIntegratedRestorer(solutionManager);

            var restoreTask = packageRestorer.RestorePackages(projects, token);

            using (var task = new PackageRestoreTask(restoreTask)) {
                await restoreTask;
            }

            // Ensure MSBuild tasks are up to date when the next build is run.
            foreach (BuildIntegratedNuGetProject project in projects)
            {
                var dotNetProject = project.GetDotNetProject();
                dotNetProject.DotNetProject.ShutdownProjectBuilder();

                if (!packageRestorer.LockFileChanged)
                {
                    // Need to refresh the references since the restore did not.
                    await Runtime.RunInMainThread(() => {
                        dotNetProject.DotNetProject.DotNetCoreNotifyReferencesChanged();
                    });
                }
            }
        }
示例#2
0
        protected static Task RestoreDotNetCoreNuGetPackages(Solution solution)
        {
            var solutionManager = new MonoDevelopSolutionManager(solution);
            var restoreManager  = new MonoDevelopBuildIntegratedRestorer(solutionManager);

            var projects = solution.GetAllDotNetProjects().Select(p => new DotNetCoreNuGetProject(p));

            return(restoreManager.RestorePackages(
                       projects,
                       CancellationToken.None));
        }