С учетом следующего кода:
var n1 = new AssemblyName ("TestDll, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=b77a5c561934e089");
var n2 = new AssemblyName ("TestDll, Version=2.0.0.2001, Culture=en-US, PublicKeyToken=ab7a5c561934e089");
Console.WriteLine (AssemblyName.ReferenceMatchesDefinition (n1, n2));
Console.WriteLine (AssemblyName.ReferenceMatchesDefinition (n2, n1));
Почему обе эти проверки выводят «True»? Я бы подумал, что AssemblyName.ReferenceMatchesDefinition должен учитывать различия в атрибутах токенов версии, культуры и открытого ключа имени сборки, не так ли?
Если нет, то что делает ReferenceMatchesDefinition, а сравнение простых имен - нет?