diff --git a/src/libraries/System.Reflection.Metadata/src/System.Reflection.Metadata.csproj b/src/libraries/System.Reflection.Metadata/src/System.Reflection.Metadata.csproj index 35b4dc25f483a4..a29fda1bc8b330 100644 --- a/src/libraries/System.Reflection.Metadata/src/System.Reflection.Metadata.csproj +++ b/src/libraries/System.Reflection.Metadata/src/System.Reflection.Metadata.csproj @@ -1,4 +1,4 @@ - + $(NetCoreAppCurrent);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum) true @@ -9,8 +9,8 @@ The System.Reflection.Metadata library is built-in as part of the shared framework in .NET Runtime. The package can be installed when you need to use it in other target frameworks. README.md - 1 - false + 2 + true diff --git a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.netstandard.cs b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.netstandard.cs index 37c4c197a68e9a..49406b39dec156 100644 --- a/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.netstandard.cs +++ b/src/libraries/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.netstandard.cs @@ -85,12 +85,6 @@ public static unsafe AssemblyName GetAssemblyName(string assemblyFile) peReader = new PEReader((byte*)safeBuffer.DangerousGetHandle(), (int)safeBuffer.ByteLength); MetadataReader mdReader = peReader.GetMetadataReader(MetadataReaderOptions.None); AssemblyName assemblyName = mdReader.GetAssemblyDefinition().GetAssemblyName(); - - AssemblyFlags aFlags = mdReader.AssemblyTable.GetFlags(); -#pragma warning disable SYSLIB0037 // AssemblyName.ProcessorArchitecture is obsolete - assemblyName.ProcessorArchitecture = CalculateProcArch(peReader, aFlags); -#pragma warning restore SYSLIB0037 - return assemblyName; } finally @@ -107,42 +101,6 @@ public static unsafe AssemblyName GetAssemblyName(string assemblyFile) } } - private static ProcessorArchitecture CalculateProcArch(PEReader peReader, AssemblyFlags aFlags) - { - // 0x70 specifies "reference assembly". - // For these, CLR wants to return None as arch so they can be always loaded, regardless of process type. - if (((uint)aFlags & 0xF0) == 0x70) - return ProcessorArchitecture.None; - - PEHeaders peHeaders = peReader.PEHeaders; - switch (peHeaders.CoffHeader.Machine) - { - case Machine.IA64: - return ProcessorArchitecture.IA64; - case Machine.Arm: - return ProcessorArchitecture.Arm; - case Machine.Amd64: - return ProcessorArchitecture.Amd64; - case Machine.I386: - { - CorFlags flags = peHeaders.CorHeader!.Flags; - if ((flags & CorFlags.ILOnly) != 0 && - (flags & CorFlags.Requires32Bit) == 0) - { - // platform neutral. - return ProcessorArchitecture.MSIL; - } - - // requires x86 - return ProcessorArchitecture.X86; - } - } - - // ProcessorArchitecture is a legacy API and does not cover other Machine kinds. - // For example ARM64 is not expressible - return ProcessorArchitecture.None; - } - private static AssemblyNameFlags GetAssemblyNameFlags(AssemblyFlags flags) { AssemblyNameFlags assemblyNameFlags = AssemblyNameFlags.None; diff --git a/src/libraries/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs b/src/libraries/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs index 3b946e5a807795..dad27d509ac645 100644 --- a/src/libraries/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs +++ b/src/libraries/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs @@ -3090,13 +3090,8 @@ public void GetAssemblyName() if (PlatformDetection.HasAssemblyFiles) { - Assembly a = typeof(MetadataReader).Assembly; - AssemblyName name = MetadataReader.GetAssemblyName(AssemblyPathHelper.GetAssemblyLocation(a)); - Assert.Equal(new AssemblyName(a.FullName).ToString(), name.ToString()); - -#pragma warning disable SYSLIB0037 // AssemblyName.ProcessorArchitecture is obsolete - Assert.Equal(ProcessorArchitecture.MSIL, name.ProcessorArchitecture); -#pragma warning restore SYSLIB0037 + Assembly a = typeof(MetadataReaderTests).Assembly; + Assert.Equal(new AssemblyName(a.FullName).ToString(), MetadataReader.GetAssemblyName(AssemblyPathHelper.GetAssemblyLocation(a)).ToString()); } } }