/// <summary> /// Checks if there are missing packages that should be restored. If so, a warning will /// be added to the error list. /// </summary> private void CheckForMissingPackages() { var missingPackages = new List <PackageReference>(); var repoSettings = ServiceLocator.GetInstance <IRepositorySettings>(); var fileSystem = new PhysicalFileSystem(repoSettings.RepositoryPath); missingPackages.AddRange(GetMissingPackages(_packageReferenceFileList.SolutionPackageReferenceFile, fileSystem)); foreach (var projectReferenceFile in _packageReferenceFileList.ProjectPackageReferenceFiles) { if (HasCanceled()) { return; } missingPackages.AddRange(GetMissingPackages(projectReferenceFile.FullPath, fileSystem)); } if (missingPackages.Count > 0) { var errorText = String.Format(CultureInfo.CurrentCulture, Resources.PackageNotRestoredBecauseOfNoConsent, String.Join(", ", missingPackages.Select(p => p.ToString()))); VsUtility.ShowError(_errorListProvider, TaskErrorCategory.Error, TaskPriority.High, errorText, hierarchyItem: null); } }
private void ShowRetargetingErrorTask(IEnumerable <string> packagesToBeReinstalled, IVsHierarchy projectHierarchy, TaskErrorCategory errorCategory, TaskPriority priority) { Debug.Assert(packagesToBeReinstalled != null && !packagesToBeReinstalled.IsEmpty()); var errorText = String.Format(CultureInfo.CurrentCulture, Resources.ProjectUpgradeAndRetargetErrorMessage, String.Join(", ", packagesToBeReinstalled)); VsUtility.ShowError(_errorListProvider, errorCategory, priority, errorText, projectHierarchy); }
private void PackageRestore(ProjectPackageReferenceFile projectPackageReferenceFile) { if (HasCanceled()) { return; } var repoSettings = ServiceLocator.GetInstance <IRepositorySettings>(); var fileSystem = new PhysicalFileSystem(repoSettings.RepositoryPath); var projectName = projectPackageReferenceFile.Project.GetName(); try { WriteLine(VerbosityLevel.Normal, Resources.RestoringPackagesForProject, projectName); WriteLine(VerbosityLevel.Detailed, Resources.RestoringPackagesListedInFile, projectPackageReferenceFile.FullPath); RestorePackages(projectPackageReferenceFile.FullPath, fileSystem); } catch (Exception ex) { var exceptionMessage = _msBuildOutputVerbosity >= (int)VerbosityLevel.Detailed ? ex.ToString() : ex.Message; var message = String.Format( CultureInfo.CurrentCulture, Resources.PackageRestoreFailedForProject, projectName, exceptionMessage); WriteLine(VerbosityLevel.Quiet, message); ActivityLog.LogError(LogEntrySource, message); VsUtility.ShowError(_errorListProvider, TaskErrorCategory.Error, TaskPriority.High, message, hierarchyItem: null); _hasError = true; } finally { WriteLine(VerbosityLevel.Normal, Resources.PackageRestoreFinishedForProject, projectName); } }