diff --git a/src/chocolatey/infrastructure.app/services/NugetService.cs b/src/chocolatey/infrastructure.app/services/NugetService.cs index 21f5df285a..b8bb734b64 100644 --- a/src/chocolatey/infrastructure.app/services/NugetService.cs +++ b/src/chocolatey/infrastructure.app/services/NugetService.cs @@ -970,8 +970,9 @@ public virtual ConcurrentDictionary Upgrade(ChocolateyCon var projectContext = new ChocolateyNuGetProjectContext(config, _nugetLogger); var configIgnoreDependencies = config.IgnoreDependencies; - SetPackageNamesIfAllSpecified(config, () => { config.IgnoreDependencies = true; }); + var allLocalPackages = SetPackageNamesIfAllSpecified(config, () => { config.IgnoreDependencies = true; }).ToList(); config.IgnoreDependencies = configIgnoreDependencies; + var localPackageListValid = true; config.CreateBackup(); @@ -981,7 +982,12 @@ public virtual ConcurrentDictionary Upgrade(ChocolateyCon // before we start reading it. config.RevertChanges(); - var allLocalPackages = GetInstalledPackages(config).ToList(); + if (!localPackageListValid) + { + allLocalPackages = GetInstalledPackages(config).ToList(); + localPackageListValid = true; + } + var installedPackage = allLocalPackages.FirstOrDefault(p => p.Name.IsEqualTo(packageName)); var packagesToInstall = new List(); var packagesToUninstall = new HashSet(); @@ -1014,6 +1020,8 @@ public virtual ConcurrentDictionary Upgrade(ChocolateyCon string logMessage = @"{0} is not installed. Installing...".FormatWith(packageName); + localPackageListValid = false; + if (config.RegularOutput) this.Log().Warn(ChocolateyLoggers.Important, logMessage); var packageNames = config.PackageNames; @@ -1177,6 +1185,7 @@ public virtual ConcurrentDictionary Upgrade(ChocolateyCon if (performAction) { + localPackageListValid = false; NugetCommon.GetPackageDependencies(availablePackage.Identity, NuGetFramework.AnyFramework, sourceCacheContext, _nugetLogger, remoteEndpoints, sourcePackageDependencyInfos, sourceDependencyCache, config).GetAwaiter().GetResult();