private void UpdateUnresolvedDependencies(ProjectState state, bool allowRestore) { var libraryManager = state.ProjectContext.LibraryManager; var allDiagnostics = libraryManager.GetAllDiagnostics(); var unresolvedLibraries = libraryManager.GetLibraries().Where(dep => !dep.Resolved); var needRestore = allDiagnostics.Any(diag => diag.ErrorCode == ErrorCodes.NU1006) || unresolvedLibraries.Any(); if (needRestore) { var unresolvedDependencies = unresolvedLibraries.Select(library => new PackageDependency { Name = library.Identity.Name, Version = library.Identity.Version?.ToString() }); var projectFile = state.ProjectContext.ProjectFile; if (allowRestore && _enableRestorePackages) { _dotNetCliService.RestoreAsync(projectFile.ProjectDirectory, onFailure: () => { _eventEmitter.UnresolvedDepdendencies(projectFile.ProjectFilePath, unresolvedDependencies); }); } else { _eventEmitter.UnresolvedDepdendencies(projectFile.ProjectFilePath, unresolvedDependencies); } } }
public void CheckForUnresolvedDependences(ProjectFileInfo projectFile, bool allowAutoRestore) { var unresolvedPackageReferences = FindUnresolvedPackageReferences(projectFile); if (unresolvedPackageReferences.IsEmpty) { return; } var unresolvedDependencies = unresolvedPackageReferences.Select(packageReference => new PackageDependency { Name = packageReference.Dependency.Id, Version = packageReference.Dependency.VersionRange.ToNormalizedString() }); if (allowAutoRestore && _options.EnablePackageAutoRestore) { _dotNetCli.RestoreAsync(projectFile.Directory, onFailure: () => { _eventEmitter.UnresolvedDepdendencies(projectFile.FilePath, unresolvedDependencies); }); } else { _eventEmitter.UnresolvedDepdendencies(projectFile.FilePath, unresolvedDependencies); } }