//returns the lock file, if it changed async Task <string> RestorePackagesInternal( BuildIntegratedNuGetProject project, CancellationToken cancellationToken) { var now = DateTime.UtcNow; Action <SourceCacheContext> cacheContextModifier = c => c.MaxAge = now; var spec = await MonoDevelopDependencyGraphRestoreUtility.GetSolutionRestoreSpec(solutionManager, project, context, cancellationToken); context.AddToCache(spec); RestoreResult restoreResult = await DependencyGraphRestoreUtility.RestoreProjectAsync( solutionManager, project, context, new RestoreCommandProvidersCache(), cacheContextModifier, sourceRepositories, Guid.NewGuid(), context.Logger, cancellationToken); if (restoreResult.Success) { if (!object.Equals(restoreResult.LockFile, restoreResult.PreviousLockFile)) { return(restoreResult.LockFilePath); } } else { ReportRestoreError(restoreResult); } return(null); }
async Task <PackageSpec> CreateProjectPackageSpec(DependencyGraphCacheContext context) { DependencyGraphSpec dependencySpec = await MSBuildPackageSpecCreator.GetDependencyGraphSpec(project, configuration, context?.Logger); context.AddToCache(dependencySpec); PackageSpec spec = dependencySpec.GetProjectSpec(project.FileName); if (spec != null) { return(spec); } throw new InvalidOperationException(GettextCatalog.GetString("Unable to create package spec for project. '{0}'", project.FileName)); }