private void AddNugetDependencies() { EnsurePackageData(); IList <string> messageNugetPackages; // If package is a meta package use dependencies // form package info (parsed package.xml) // else use real dependencies retrieved form // message files. if (Package.PackageInfo.IsMetaPackage) { messageNugetPackages = Package.Parser .PackageDependencies .Select(x => NameMapper.ResolveNugetPackageName(x)) .Distinct() .ToList(); } else { messageNugetPackages = Package.Parser .ExternalTypeDependencies .Select(x => NameMapper.ResolveNugetPackageName(x)) .Distinct() .ToList(); } if (!messageNugetPackages.Any()) { return; } Logger.LogInformation($"Restoring package dependencies"); foreach (var dependency in messageNugetPackages) { Logger.LogInformation($" {dependency}"); try { DotNetProcess.AddPackage(_projectFilePath, dependency); } catch (ProcessFailedException e) { Environment.ExitCode |= (int)ExitCodes.CouldNotAddDependency; throw new DependencyNotFoundException(dependency, $"Could not add dependency {dependency}.", e); } } Logger.LogInformation(string.Empty); }