diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs index 587492804b..cb3ccfdef5 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/VoloNugetPackagesVersionUpdater.cs @@ -42,8 +42,9 @@ namespace Volo.Abp.Cli.ProjectModification protected virtual async Task UpdateInternalAsync(string projectPath, bool includePreviews = false, bool switchToStable = false) { var fileContent = File.ReadAllText(projectPath); + var updatedContent = await UpdateVoloPackagesAsync(fileContent, includePreviews, switchToStable); - File.WriteAllText(projectPath, await UpdateVoloPackagesAsync(fileContent, includePreviews, switchToStable)); + File.WriteAllText(projectPath, updatedContent); } private async Task UpdateVoloPackagesAsync(string content, bool includePreviews = false, bool switchToStable = false) @@ -74,16 +75,13 @@ namespace Volo.Abp.Cli.ProjectModification var versionAttribute = package.Attributes["Version"]; var currentVersion = versionAttribute.Value; - var packageVersion = SemanticVersion.Parse(currentVersion); - - Logger.LogDebug("Checking package: \"{0}\" - Current version: {1}", packageId, packageVersion); + var currentSemanticVersion = SemanticVersion.Parse(currentVersion); + Logger.LogDebug("Checking package: \"{0}\" - Current version: {1}", packageId, currentSemanticVersion); if (includePreviews || (currentVersion.Contains("-preview") && !switchToStable)) { - var latestVersion = (await _myGetPackageListFinder.GetPackages()).Packages - .FirstOrDefault(p => p.Id == packageId) - ?.Versions.LastOrDefault(); + var latestVersion = await GetLatestVersionFromMyGet(packageId); if (currentVersion != latestVersion) { @@ -99,14 +97,14 @@ namespace Volo.Abp.Cli.ProjectModification { var latestVersion = await _nuGetService.GetLatestVersionOrNullAsync(packageId); - if (latestVersion != null && (currentVersion.Contains("-preview") || packageVersion < latestVersion)) + if (latestVersion != null && (currentVersion.Contains("-preview") || currentSemanticVersion < latestVersion)) { - Logger.LogInformation("Updating package \"{0}\" from v{1} to v{2}.", packageId, packageVersion.ToString(), latestVersion.ToString()); + Logger.LogInformation("Updating package \"{0}\" from v{1} to v{2}.", packageId, currentSemanticVersion.ToString(), latestVersion.ToString()); versionAttribute.Value = latestVersion.ToString(); } else { - Logger.LogInformation("Package: \"{0}-v{1}\" is up to date.", packageId, packageVersion); + Logger.LogInformation("Package: \"{0}-v{1}\" is up to date.", packageId, currentSemanticVersion); } } } @@ -116,11 +114,18 @@ namespace Volo.Abp.Cli.ProjectModification } catch (Exception ex) { - Logger.LogError("Cannot update volo packages! An error occured while updating the package \"{0}\". Error: {1}", packageId, ex.Message); + Logger.LogError("Cannot update Volo.* packages! An error occured while updating the package \"{0}\". Error: {1}", packageId, ex.Message); Logger.LogException(ex); } return await Task.FromResult(content); } + + private async Task GetLatestVersionFromMyGet(string packageId) + { + var myGetPack = await _myGetPackageListFinder.GetPackages(); + + return myGetPack.Packages.FirstOrDefault(p => p.Id == packageId)?.Versions.LastOrDefault(); + } } }