diff --git a/src/Framework/test/SharedFxTests.cs b/src/Framework/test/SharedFxTests.cs index d3f1e4b6e548..1892275bddd2 100644 --- a/src/Framework/test/SharedFxTests.cs +++ b/src/Framework/test/SharedFxTests.cs @@ -159,32 +159,38 @@ public void SharedFrameworkContainsValidDepsJson() [Fact] public void SharedFrameworkAssembliesHaveExpectedAssemblyVersions() { - // Only test managed assemblies from dotnet/aspnetcore. + // Assemblies from this repo and dotnet/runtime don't always have identical assembly versions. var repoAssemblies = TestData.GetSharedFrameworkBinariesFromRepo() .Split(';', StringSplitOptions.RemoveEmptyEntries) .ToHashSet(); var versionStringWithoutPrereleaseTag = TestData.GetMicrosoftNETCoreAppPackageVersion().Split('-', 2)[0]; var version = Version.Parse(versionStringWithoutPrereleaseTag); + var aspnetcoreVersionString = TestData.GetSharedFxVersion().Split('-', 2)[0]; + var aspnetcoreVersion = Version.Parse(aspnetcoreVersionString); + var dlls = Directory.GetFiles(_sharedFxRoot, "*.dll", SearchOption.AllDirectories); Assert.NotEmpty(dlls); Assert.All(dlls, path => { - // Unlike dotnet/aspnetcore, dotnet/runtime varies the assembly version while in servicing. - if (!repoAssemblies.Contains(Path.GetFileNameWithoutExtension(path))) + var name = Path.GetFileNameWithoutExtension(path); + if (string.Equals(name, "aspnetcorev2_inprocess", StringComparison.Ordinal)) { + // Skip our native assembly. return; } + var expectedVersion = repoAssemblies.Contains(name) ? aspnetcoreVersion : version; + using var fileStream = File.OpenRead(path); using var peReader = new PEReader(fileStream, PEStreamOptions.Default); var reader = peReader.GetMetadataReader(MetadataReaderOptions.Default); var assemblyDefinition = reader.GetAssemblyDefinition(); // Assembly versions should all match Major.Minor.0.0 - Assert.Equal(version.Major, assemblyDefinition.Version.Major); - Assert.Equal(version.Minor, assemblyDefinition.Version.Minor); + Assert.Equal(expectedVersion.Major, assemblyDefinition.Version.Major); + Assert.Equal(expectedVersion.Minor, assemblyDefinition.Version.Minor); Assert.Equal(0, assemblyDefinition.Version.Build); Assert.Equal(0, assemblyDefinition.Version.Revision); }); diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs index 3fccd1febce3..76be10479af3 100644 --- a/src/Framework/test/TargetingPackTests.cs +++ b/src/Framework/test/TargetingPackTests.cs @@ -38,7 +38,7 @@ public void TargetingPackContainsListedAssemblies() var actualAssemblies = Directory.GetFiles(Path.Combine(_targetingPackRoot, "ref", _targetingPackTfm), "*.dll") .Select(Path.GetFileNameWithoutExtension) .ToHashSet(); - var listedTargetingPackAssemblies = TestData.ListedTargetingPackAssemblies.Keys.ToHashSet(); + var listedTargetingPackAssemblies = TestData.ListedTargetingPackAssemblies.ToHashSet(); _output.WriteLine("==== actual assemblies ===="); _output.WriteLine(string.Join('\n', actualAssemblies.OrderBy(i => i))); @@ -60,11 +60,25 @@ public void TargetingPackContainsListedAssemblies() [Fact] public void RefAssembliesHaveExpectedAssemblyVersions() { + // Assemblies from this repo and dotnet/runtime don't always have identical assembly versions. + var repoAssemblies = TestData.GetAspNetCoreTargetingPackDependencies() + .Split(';', StringSplitOptions.RemoveEmptyEntries) + .ToHashSet(); + + var versionStringWithoutPrereleaseTag = TestData.GetMicrosoftNETCoreAppPackageVersion().Split('-', 2)[0]; + var version = Version.Parse(versionStringWithoutPrereleaseTag); + var aspnetcoreVersionString = TestData.GetSharedFxVersion().Split('-', 2)[0]; + var aspnetcoreVersion = Version.Parse(aspnetcoreVersionString); + IEnumerable dlls = Directory.GetFiles(Path.Combine(_targetingPackRoot, "ref", _targetingPackTfm), "*.dll", SearchOption.AllDirectories); Assert.NotEmpty(dlls); Assert.All(dlls, path => { + var expectedVersion = repoAssemblies.Contains(Path.GetFileNameWithoutExtension(path)) ? + aspnetcoreVersion : + version; + var fileName = Path.GetFileNameWithoutExtension(path); var assemblyName = AssemblyName.GetAssemblyName(path); using var fileStream = File.OpenRead(path); @@ -72,8 +86,11 @@ public void RefAssembliesHaveExpectedAssemblyVersions() var reader = peReader.GetMetadataReader(MetadataReaderOptions.Default); var assemblyDefinition = reader.GetAssemblyDefinition(); - TestData.ListedTargetingPackAssemblies.TryGetValue(fileName, out var expectedVersion); - Assert.Equal(expectedVersion, assemblyDefinition.Version.ToString()); + // Assembly versions should all match Major.Minor.0.0 + Assert.Equal(expectedVersion.Major, assemblyDefinition.Version.Major); + Assert.Equal(expectedVersion.Minor, assemblyDefinition.Version.Minor); + Assert.Equal(0, assemblyDefinition.Version.Build); + Assert.Equal(0, assemblyDefinition.Version.Revision); }); } diff --git a/src/Framework/test/TestData.cs b/src/Framework/test/TestData.cs index 12423f63ceba..2763c05a5048 100644 --- a/src/Framework/test/TestData.cs +++ b/src/Framework/test/TestData.cs @@ -9,7 +9,7 @@ public static class TestData { public static List ListedSharedFxAssemblies; - public static SortedDictionary ListedTargetingPackAssemblies; + public static List ListedTargetingPackAssemblies; static TestData() { @@ -153,141 +153,141 @@ static TestData() "System.Threading.RateLimiting", }; - ListedTargetingPackAssemblies = new SortedDictionary + ListedTargetingPackAssemblies = new List { - { "Microsoft.AspNetCore", "7.0.0.0" }, - { "Microsoft.AspNetCore.Antiforgery", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authentication", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.Cookies", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.Core", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authentication.OAuth", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authorization", "7.0.0.0" }, - { "Microsoft.AspNetCore.Authorization.Policy", "7.0.0.0" }, - { "Microsoft.AspNetCore.Components", "7.0.0.0" }, - { "Microsoft.AspNetCore.Components.Authorization", "7.0.0.0" }, - { "Microsoft.AspNetCore.Components.Forms", "7.0.0.0" }, - { "Microsoft.AspNetCore.Components.Server", "7.0.0.0" }, - { "Microsoft.AspNetCore.Components.Web", "7.0.0.0" }, - { "Microsoft.AspNetCore.Connections.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.CookiePolicy", "7.0.0.0" }, - { "Microsoft.AspNetCore.Cors", "7.0.0.0" }, - { "Microsoft.AspNetCore.Cryptography.Internal", "7.0.0.0" }, - { "Microsoft.AspNetCore.Cryptography.KeyDerivation", "7.0.0.0" }, - { "Microsoft.AspNetCore.DataProtection", "7.0.0.0" }, - { "Microsoft.AspNetCore.DataProtection.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.DataProtection.Extensions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Diagnostics", "7.0.0.0" }, - { "Microsoft.AspNetCore.Diagnostics.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Diagnostics.HealthChecks", "7.0.0.0" }, - { "Microsoft.AspNetCore.HostFiltering", "7.0.0.0" }, - { "Microsoft.AspNetCore.Hosting", "7.0.0.0" }, - { "Microsoft.AspNetCore.Hosting.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Hosting.Server.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Html.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Connections", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Connections.Common", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Extensions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Features", "7.0.0.0" }, - { "Microsoft.AspNetCore.Http.Results", "7.0.0.0" }, - { "Microsoft.AspNetCore.HttpLogging", "7.0.0.0" }, - { "Microsoft.AspNetCore.HttpOverrides", "7.0.0.0" }, - { "Microsoft.AspNetCore.HttpsPolicy", "7.0.0.0" }, - { "Microsoft.AspNetCore.Identity", "7.0.0.0" }, - { "Microsoft.AspNetCore.Localization", "7.0.0.0" }, - { "Microsoft.AspNetCore.Localization.Routing", "7.0.0.0" }, - { "Microsoft.AspNetCore.Metadata", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.ApiExplorer", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Core", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Cors", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.DataAnnotations", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Formatters.Json", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Formatters.Xml", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Localization", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.Razor", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.RazorPages", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.TagHelpers", "7.0.0.0" }, - { "Microsoft.AspNetCore.Mvc.ViewFeatures", "7.0.0.0" }, - { "Microsoft.AspNetCore.OutputCaching", "7.0.0.0" }, - { "Microsoft.AspNetCore.RateLimiting", "7.0.0.0" }, - { "Microsoft.AspNetCore.Razor", "7.0.0.0" }, - { "Microsoft.AspNetCore.Razor.Runtime", "7.0.0.0" }, - { "Microsoft.AspNetCore.RequestDecompression", "7.0.0.0" }, - { "Microsoft.AspNetCore.ResponseCaching", "7.0.0.0" }, - { "Microsoft.AspNetCore.ResponseCaching.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.ResponseCompression", "7.0.0.0" }, - { "Microsoft.AspNetCore.Rewrite", "7.0.0.0" }, - { "Microsoft.AspNetCore.Routing", "7.0.0.0" }, - { "Microsoft.AspNetCore.Routing.Abstractions", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.HttpSys", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.IIS", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.IISIntegration", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel.Core", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel.Transport.Quic", "7.0.0.0" }, - { "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets", "7.0.0.0" }, - { "Microsoft.AspNetCore.Session", "7.0.0.0" }, - { "Microsoft.AspNetCore.SignalR", "7.0.0.0" }, - { "Microsoft.AspNetCore.SignalR.Common", "7.0.0.0" }, - { "Microsoft.AspNetCore.SignalR.Core", "7.0.0.0" }, - { "Microsoft.AspNetCore.SignalR.Protocols.Json", "7.0.0.0" }, - { "Microsoft.AspNetCore.StaticFiles", "7.0.0.0" }, - { "Microsoft.AspNetCore.WebSockets", "7.0.0.0" }, - { "Microsoft.AspNetCore.WebUtilities", "7.0.0.0" }, - { "Microsoft.Extensions.Caching.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Caching.Memory", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.Binder", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.CommandLine", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.EnvironmentVariables", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.FileExtensions", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.Ini", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.Json", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.KeyPerFile", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.UserSecrets", "7.0.0.0" }, - { "Microsoft.Extensions.Configuration.Xml", "7.0.0.0" }, - { "Microsoft.Extensions.DependencyInjection", "7.0.0.0" }, - { "Microsoft.Extensions.DependencyInjection.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Diagnostics.HealthChecks", "7.0.0.0" }, - { "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.FileProviders.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.FileProviders.Composite", "7.0.0.0" }, - { "Microsoft.Extensions.FileProviders.Embedded", "7.0.0.0" }, - { "Microsoft.Extensions.FileProviders.Physical", "7.0.0.0" }, - { "Microsoft.Extensions.FileSystemGlobbing", "7.0.0.0" }, - { "Microsoft.Extensions.Features", "7.0.0.0" }, - { "Microsoft.Extensions.Hosting", "7.0.0.0" }, - { "Microsoft.Extensions.Hosting.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Http", "7.0.0.0" }, - { "Microsoft.Extensions.Identity.Core", "7.0.0.0" }, - { "Microsoft.Extensions.Identity.Stores", "7.0.0.0" }, - { "Microsoft.Extensions.Localization", "7.0.0.0" }, - { "Microsoft.Extensions.Localization.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Logging", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.Abstractions", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.Configuration", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.Console", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.Debug", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.EventLog", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.EventSource", "7.0.0.0" }, - { "Microsoft.Extensions.Logging.TraceSource", "7.0.0.0" }, - { "Microsoft.Extensions.ObjectPool", "7.0.0.0" }, - { "Microsoft.Extensions.Options", "7.0.0.0" }, - { "Microsoft.Extensions.Options.ConfigurationExtensions", "7.0.0.0" }, - { "Microsoft.Extensions.Options.DataAnnotations", "7.0.0.0" }, - { "Microsoft.Extensions.Primitives", "7.0.0.0" }, - { "Microsoft.Extensions.WebEncoders", "7.0.0.0" }, - { "Microsoft.JSInterop", "7.0.0.0" }, - { "Microsoft.Net.Http.Headers", "7.0.0.0" }, - { "System.Diagnostics.EventLog", "7.0.0.0" }, - { "System.IO.Pipelines", "7.0.0.0" }, - { "System.Security.Cryptography.Xml", "7.0.0.0" }, - { "System.Threading.RateLimiting", "7.0.0.0" }, + { "Microsoft.AspNetCore.Antiforgery" }, + { "Microsoft.AspNetCore.Authentication.Abstractions" }, + { "Microsoft.AspNetCore.Authentication.Cookies" }, + { "Microsoft.AspNetCore.Authentication.Core" }, + { "Microsoft.AspNetCore.Authentication.OAuth" }, + { "Microsoft.AspNetCore.Authentication" }, + { "Microsoft.AspNetCore.Authorization.Policy" }, + { "Microsoft.AspNetCore.Authorization" }, + { "Microsoft.AspNetCore.Components.Authorization" }, + { "Microsoft.AspNetCore.Components.Forms" }, + { "Microsoft.AspNetCore.Components.Server" }, + { "Microsoft.AspNetCore.Components.Web" }, + { "Microsoft.AspNetCore.Components" }, + { "Microsoft.AspNetCore.Connections.Abstractions" }, + { "Microsoft.AspNetCore.CookiePolicy" }, + { "Microsoft.AspNetCore.Cors" }, + { "Microsoft.AspNetCore.Cryptography.Internal" }, + { "Microsoft.AspNetCore.Cryptography.KeyDerivation" }, + { "Microsoft.AspNetCore.DataProtection.Abstractions" }, + { "Microsoft.AspNetCore.DataProtection.Extensions" }, + { "Microsoft.AspNetCore.DataProtection" }, + { "Microsoft.AspNetCore.Diagnostics.Abstractions" }, + { "Microsoft.AspNetCore.Diagnostics.HealthChecks" }, + { "Microsoft.AspNetCore.Diagnostics" }, + { "Microsoft.AspNetCore.HostFiltering" }, + { "Microsoft.AspNetCore.Hosting.Abstractions" }, + { "Microsoft.AspNetCore.Hosting.Server.Abstractions" }, + { "Microsoft.AspNetCore.Hosting" }, + { "Microsoft.AspNetCore.Html.Abstractions" }, + { "Microsoft.AspNetCore.Http.Abstractions" }, + { "Microsoft.AspNetCore.Http.Connections.Common" }, + { "Microsoft.AspNetCore.Http.Connections" }, + { "Microsoft.AspNetCore.Http.Extensions" }, + { "Microsoft.AspNetCore.Http.Features" }, + { "Microsoft.AspNetCore.Http.Results" }, + { "Microsoft.AspNetCore.Http" }, + { "Microsoft.AspNetCore.HttpLogging" }, + { "Microsoft.AspNetCore.HttpOverrides" }, + { "Microsoft.AspNetCore.HttpsPolicy" }, + { "Microsoft.AspNetCore.Identity" }, + { "Microsoft.AspNetCore.Localization.Routing" }, + { "Microsoft.AspNetCore.Localization" }, + { "Microsoft.AspNetCore.Metadata" }, + { "Microsoft.AspNetCore.Mvc.Abstractions" }, + { "Microsoft.AspNetCore.Mvc.ApiExplorer" }, + { "Microsoft.AspNetCore.Mvc.Core" }, + { "Microsoft.AspNetCore.Mvc.Cors" }, + { "Microsoft.AspNetCore.Mvc.DataAnnotations" }, + { "Microsoft.AspNetCore.Mvc.Formatters.Json" }, + { "Microsoft.AspNetCore.Mvc.Formatters.Xml" }, + { "Microsoft.AspNetCore.Mvc.Localization" }, + { "Microsoft.AspNetCore.Mvc.Razor" }, + { "Microsoft.AspNetCore.Mvc.RazorPages" }, + { "Microsoft.AspNetCore.Mvc.TagHelpers" }, + { "Microsoft.AspNetCore.Mvc.ViewFeatures" }, + { "Microsoft.AspNetCore.Mvc" }, + { "Microsoft.AspNetCore.OutputCaching" }, + { "Microsoft.AspNetCore.RateLimiting" }, + { "Microsoft.AspNetCore.Razor.Runtime" }, + { "Microsoft.AspNetCore.Razor" }, + { "Microsoft.AspNetCore.RequestDecompression" }, + { "Microsoft.AspNetCore.ResponseCaching.Abstractions" }, + { "Microsoft.AspNetCore.ResponseCaching" }, + { "Microsoft.AspNetCore.ResponseCompression" }, + { "Microsoft.AspNetCore.Rewrite" }, + { "Microsoft.AspNetCore.Routing.Abstractions" }, + { "Microsoft.AspNetCore.Routing" }, + { "Microsoft.AspNetCore.Server.HttpSys" }, + { "Microsoft.AspNetCore.Server.IIS" }, + { "Microsoft.AspNetCore.Server.IISIntegration" }, + { "Microsoft.AspNetCore.Server.Kestrel.Core" }, + { "Microsoft.AspNetCore.Server.Kestrel.Transport.Quic" }, + { "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" }, + { "Microsoft.AspNetCore.Server.Kestrel" }, + { "Microsoft.AspNetCore.Session" }, + { "Microsoft.AspNetCore.SignalR.Common" }, + { "Microsoft.AspNetCore.SignalR.Core" }, + { "Microsoft.AspNetCore.SignalR.Protocols.Json" }, + { "Microsoft.AspNetCore.SignalR" }, + { "Microsoft.AspNetCore.StaticFiles" }, + { "Microsoft.AspNetCore.WebSockets" }, + { "Microsoft.AspNetCore.WebUtilities" }, + { "Microsoft.AspNetCore" }, + { "Microsoft.Extensions.Caching.Abstractions" }, + { "Microsoft.Extensions.Caching.Memory" }, + { "Microsoft.Extensions.Configuration.Abstractions" }, + { "Microsoft.Extensions.Configuration.Binder" }, + { "Microsoft.Extensions.Configuration.CommandLine" }, + { "Microsoft.Extensions.Configuration.EnvironmentVariables" }, + { "Microsoft.Extensions.Configuration.FileExtensions" }, + { "Microsoft.Extensions.Configuration.Ini" }, + { "Microsoft.Extensions.Configuration.Json" }, + { "Microsoft.Extensions.Configuration.KeyPerFile" }, + { "Microsoft.Extensions.Configuration.UserSecrets" }, + { "Microsoft.Extensions.Configuration.Xml" }, + { "Microsoft.Extensions.Configuration" }, + { "Microsoft.Extensions.DependencyInjection.Abstractions" }, + { "Microsoft.Extensions.DependencyInjection" }, + { "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" }, + { "Microsoft.Extensions.Diagnostics.HealthChecks" }, + { "Microsoft.Extensions.Features" }, + { "Microsoft.Extensions.FileProviders.Abstractions" }, + { "Microsoft.Extensions.FileProviders.Composite" }, + { "Microsoft.Extensions.FileProviders.Embedded" }, + { "Microsoft.Extensions.FileProviders.Physical" }, + { "Microsoft.Extensions.FileSystemGlobbing" }, + { "Microsoft.Extensions.Hosting.Abstractions" }, + { "Microsoft.Extensions.Hosting" }, + { "Microsoft.Extensions.Http" }, + { "Microsoft.Extensions.Identity.Core" }, + { "Microsoft.Extensions.Identity.Stores" }, + { "Microsoft.Extensions.Localization.Abstractions" }, + { "Microsoft.Extensions.Localization" }, + { "Microsoft.Extensions.Logging.Abstractions" }, + { "Microsoft.Extensions.Logging.Configuration" }, + { "Microsoft.Extensions.Logging.Console" }, + { "Microsoft.Extensions.Logging.Debug" }, + { "Microsoft.Extensions.Logging.EventLog" }, + { "Microsoft.Extensions.Logging.EventSource" }, + { "Microsoft.Extensions.Logging.TraceSource" }, + { "Microsoft.Extensions.Logging" }, + { "Microsoft.Extensions.ObjectPool" }, + { "Microsoft.Extensions.Options.ConfigurationExtensions" }, + { "Microsoft.Extensions.Options.DataAnnotations" }, + { "Microsoft.Extensions.Options" }, + { "Microsoft.Extensions.Primitives" }, + { "Microsoft.Extensions.WebEncoders" }, + { "Microsoft.JSInterop" }, + { "Microsoft.Net.Http.Headers" }, + { "System.Diagnostics.EventLog" }, + { "System.IO.Pipelines" }, + { "System.Security.Cryptography.Xml" }, + { "System.Threading.RateLimiting" }, }; if (!VerifyAncmBinary())