GAC似乎包含两个具有相同名称,版本和公钥令牌的程序集

sha*_*oth 5 .net gac .net-assembly

我目前正盯着这个声称在典型的Azure VM上列出GAC内容的页面.请注意,以下程序集和许多其他程序集列出两次.

AuditPolicyGPManagedStubs.Interop, Version=6.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 TWICE
CustomMarshalers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a TWICE
CustomMarshalers, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a TWICE
ISymWrapper, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a TWICE
ISymWrapper, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a TWICE
Microsoft.GroupPolicy.AdmTmplEditor, Version=6.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 TWICE
Run Code Online (Sandbox Code Playgroud)

对于这些程序集,似乎有两个不同的程序集具有相同的三元组"name + version + token".

怎么可能?这可能是网页中的错误还是可能的?取决于那些程序集的软件将如何选择它想要的那个?

Joã*_*elo 6

它归功于处理器架构(最有可能是x86或x64).该页面未列出与每个程序集关联的处理器体系结构,但这也是GAC的一个因素.

您可以使与特定处理器体系结构或平台无关的程序集.如果您C:\Windows\assembly通过资源管理器自定义处理该文件夹来检查本地GAC的内容,则可以查看程序集列表和相关的处理器体系结构.