Skip to content

Assembly(Definition|Reference).GetAssemblyName() do not match handling of neutral culture of AssemblyName.GetAssemblyName() #28153

@nguerrera

Description

@nguerrera
using System;
using System.IO;
using System.Reflection;
using System.Reflection.Metadata;
using System.Reflection.PortableExecutable;

class Program
{
    static void Main()
    {
        var coreAssemblyPath = typeof(object).Assembly.Location;

        Console.WriteLine(AssemblyName.GetAssemblyName(coreAssemblyPath));

        using (var peReader = new PEReader(File.OpenRead(coreAssemblyPath)))
        {
            var mdReader = peReader.GetMetadataReader();
            Console.WriteLine(mdReader.GetAssemblyDefinition().GetAssemblyName());
        }
    }
}
System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e
System.Private.CoreLib, Version=4.0.0.0, PublicKeyToken=7cec85d7bea7798e

Notice culture=neutral vs culture omitted.

Metadata

Metadata

Assignees

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions