问题
I'm currently staring into this page that claims to list the contents of GAC on a typical Azure VM. Note that the following assemblies and many others are listed twice.
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
For these assemblies there seems to be two distinct assemblies that have the same triple "name+version+token".
How is that possible? Is that likely a bug in the web page or is it likely okay? How will the software depending on those assemblies choose the one it wants?
回答1:
Its due to the processor architecture (x86 or x64 most likely). The page does not list the processor architecture associated with each assembly, but that is also a factor for the GAC.
You can have assemblies associated with a specific processor architecture or platform independent. If you check the contents of your local GAC at C:\Windows\assembly
the custom treatment of that folder by explorer will allow you to see the list of assemblies and the associated processor architecture.
来源:https://stackoverflow.com/questions/11985847/gac-seems-to-contain-two-assemblies-with-identical-name-version-and-public-key