diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs index 37dbf769789..366c4cc6e8b 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs +++ b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishArtifactsInManifestBase.cs @@ -1167,7 +1167,7 @@ await PushNugetPackagesAsync(packagesToPublish, feedConfig, maxClients: MaxClien async (feed, httpClient, package, feedAccount, feedVisibility, feedName) => { string localPackagePath = - Path.Combine(PackageAssetsBasePath, $"{package.Id}.{package.Version}.nupkg"); + Path.Combine(PackageAssetsBasePath, package.NuPkgFilename); if (!File.Exists(localPackagePath)) { Log.LogError($"Could not locate '{package.Id}.{package.Version}' at '{localPackagePath}'"); @@ -1210,7 +1210,7 @@ await Task.WhenAll(packagesToPublish.Select(async package => try { await clientThrottle.WaitAsync(); - var packageFilename = $"{package.Id}.{package.Version}.nupkg"; + var packageFilename = package.NuPkgFilename; string temporaryPackageDirectory = Path.GetFullPath(Path.Combine(ArtifactsBasePath, Guid.NewGuid().ToString())); EnsureTemporaryDirectoryExists(temporaryPackageDirectory); diff --git a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishSignedAssets.cs b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishSignedAssets.cs index 8a15166f393..631a60cd24b 100644 --- a/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishSignedAssets.cs +++ b/src/Microsoft.DotNet.Build.Tasks.Feed/src/PublishSignedAssets.cs @@ -5,6 +5,7 @@ using Azure.Identity; using Microsoft.Build.Framework; using Microsoft.DotNet.Build.Tasks.Feed.Model; +using Microsoft.DotNet.VersionTools.BuildManifest.Model; using NuGet.Packaging; using NuGet.Packaging.Core; using System; @@ -94,7 +95,7 @@ private async Task PushPackagesToFeed(string assetsFolder, string feedUrl) await PushNugetPackagesAsync(packagesToPublish, targetFeedConfig, 5, async (feed, httpClient, package, feedAccount, feedVisibility, feedName) => { - string localPackagePath = Path.Combine(packagesFolder, $"{package.Id}.{package.Version}.nupkg"); + string localPackagePath = Path.Combine(packagesFolder, PackageArtifactModel.GetNuPkgFileName(package.Id, package.Version.ToString ())); if (!File.Exists(localPackagePath)) { diff --git a/src/VersionTools/Microsoft.DotNet.VersionTools/BuildManifest/Model/PackageArtifactModel.cs b/src/VersionTools/Microsoft.DotNet.VersionTools/BuildManifest/Model/PackageArtifactModel.cs index d135f054f26..88125c726d1 100644 --- a/src/VersionTools/Microsoft.DotNet.VersionTools/BuildManifest/Model/PackageArtifactModel.cs +++ b/src/VersionTools/Microsoft.DotNet.VersionTools/BuildManifest/Model/PackageArtifactModel.cs @@ -42,6 +42,19 @@ public string OriginBuildName set { Attributes[nameof(OriginBuildName)] = value; } } + public string NuPkgFilename + { + get => GetNuPkgFileName(Id, Version); + } + + public static string GetNuPkgFileName (string id, string version) + { + var metadataStart = version.IndexOf('+'); + if (metadataStart >= 0) + version = version.Substring(0, metadataStart); + return $"{id}.{version}.nupkg"; + } + public bool NonShipping { get