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(); }); } } }
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)); }