diff --git a/src/Compatibility/ApiCompat/Microsoft.DotNet.PackageValidation/Package.cs b/src/Compatibility/ApiCompat/Microsoft.DotNet.PackageValidation/Package.cs index 4546f3678647..6144f9707270 100644 --- a/src/Compatibility/ApiCompat/Microsoft.DotNet.PackageValidation/Package.cs +++ b/src/Compatibility/ApiCompat/Microsoft.DotNet.PackageValidation/Package.cs @@ -94,11 +94,11 @@ public Package(string packagePath, _contentItemCollection = new ContentItemCollection(); _contentItemCollection.Load(packageAssets); - PackageAssets = _contentItemCollection.FindItems(_conventions.Patterns.AnyTargettedFile); - RefAssets = _contentItemCollection.FindItems(_conventions.Patterns.CompileRefAssemblies); - LibAssets = _contentItemCollection.FindItems(_conventions.Patterns.CompileLibAssemblies); + PackageAssets = GetContentItemsFromPattern(_conventions.Patterns.AnyTargettedFile); + RefAssets = GetContentItemsFromPattern(_conventions.Patterns.CompileRefAssemblies); + LibAssets = GetContentItemsFromPattern(_conventions.Patterns.CompileLibAssemblies); CompileAssets = RefAssets.Any() ? RefAssets : LibAssets; - RuntimeAssets = _contentItemCollection.FindItems(_conventions.Patterns.RuntimeAssemblies); + RuntimeAssets = GetContentItemsFromPattern(_conventions.Patterns.RuntimeAssemblies); RuntimeSpecificAssets = RuntimeAssets.Where(t => t.Path.StartsWith("runtimes")).ToArray(); Rids = RuntimeSpecificAssets.Select(t => (string)t.Properties["rid"]) .Distinct() @@ -108,6 +108,13 @@ public Package(string packagePath, .Distinct() .ToArray(); AssemblyReferences = assemblyReferences; + + IEnumerable GetContentItemsFromPattern(PatternSet pattern) + { + List itemGroups = new(); + _contentItemCollection.PopulateItemGroups(pattern, itemGroups); + return itemGroups.SelectMany(i => i.Items).ToArray(); + } } public static void InitializeRuntimeGraph(string runtimeGraph)