diff --git a/src/SourceBuild/content/eng/build.targets b/src/SourceBuild/content/eng/build.targets index fdb8c629a..406c4778e 100644 --- a/src/SourceBuild/content/eng/build.targets +++ b/src/SourceBuild/content/eng/build.targets @@ -8,6 +8,9 @@ DependsOnTargets="DetermineSourceBuiltSdkVersion" Condition="'$(ShortStack)' != 'true'" > + + p.Split('.').Skip(1))) + { + if (!int.TryParse(item, out _)) + throw new ArgumentException($"Invalid Rid '{Rid}' in archive file name '{filename}'. Expected RID with '.' to be part of a version. This likely means the file is an archive of a different file type."); + } return (Version, Rid, extension); } } diff --git a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.SdkArchiveDiff/GetValidArchiveItems.cs b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.SdkArchiveDiff/GetValidArchiveItems.cs index 3ebcc571a..bd27213b8 100644 --- a/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.SdkArchiveDiff/GetValidArchiveItems.cs +++ b/src/SourceBuild/content/eng/tools/tasks/Microsoft.DotNet.SourceBuild.Tasks.SdkArchiveDiff/GetValidArchiveItems.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.IO; using Microsoft.Build.Framework; public class GetValidArchiveItems : Microsoft.Build.Utilities.Task @@ -21,15 +22,16 @@ public class GetValidArchiveItems : Microsoft.Build.Utilities.Task List archiveItems = new(); foreach (var item in ArchiveItems) { + var filename = Path.GetFileName(item.ItemSpec); try { // Ensure the version and RID info can be parsed from the item - _ = Archive.GetInfoFromFileName(item.ItemSpec, ArchiveName); + _ = Archive.GetInfoFromFileName(filename, ArchiveName); archiveItems.Add(item); } catch (ArgumentException e) { - Log.LogMessage(MessageImportance.High, e.Message); + Log.LogMessage($"'{item.ItemSpec}' is not a valid archive name: '{e.Message}'"); continue; } }