diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs index f4b87ea047..ff35fcf17f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs @@ -46,7 +46,7 @@ public class PackageVersionCheckerService : ITransientDependency { var versionList = await GetPackageVersionListAsync(packageId, false); - if (versionList == null) + if (!versionList.Any()) { return false; } @@ -121,10 +121,10 @@ public class PackageVersionCheckerService : ITransientDependency } var searchUrl = CliUrls.GetNuGetPackageSearchUrl(_apiKeyResult.ApiKey, packageId); - return await HasAnyPackageAsync(searchUrl); + return await HasAnyPackageAsync(searchUrl, packageId); } - private async Task HasAnyPackageAsync(string url) + private async Task HasAnyPackageAsync(string url, string packageId) { try { @@ -139,8 +139,9 @@ public class PackageVersionCheckerService : ITransientDependency await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); var responseContent = await responseMessage.Content.ReadAsStringAsync(); - - return JsonSerializer.Deserialize(responseContent).TotalHits > 0; + var nugetSearchResult = JsonSerializer.Deserialize(responseContent); + + return nugetSearchResult.TotalHits > 0 && nugetSearchResult.Packages.Any(package => package.Id.ToLowerInvariant() == packageId.ToLowerInvariant()); } } catch (Exception) @@ -182,7 +183,7 @@ public class PackageVersionCheckerService : ITransientDependency if (responseMessage.StatusCode == HttpStatusCode.NotFound) { //the package doesn't exist... - return null; + return new List(); } await RemoteServiceExceptionHandler.EnsureSuccessfulHttpResponseAsync(responseMessage); @@ -193,7 +194,7 @@ public class PackageVersionCheckerService : ITransientDependency } catch (Exception) { - return null; + return new List(); } } @@ -238,6 +239,18 @@ public class PackageVersionCheckerService : ITransientDependency { [JsonProperty("totalHits")] public int TotalHits { get; set; } + + [JsonProperty("data")] + public NuGetSearchResultPackagesDto[] Packages { get; set; } + } + + public class NuGetSearchResultPackagesDto + { + [JsonProperty("id")] + public string Id { get; set; } + + [JsonProperty("version")] + public string Version { get; set; } } public class NuGetVersionResultDto