Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GAC seems to contain two assemblies with identical name, version and public key token

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?

like image 257
sharptooth Avatar asked Aug 16 '12 11:08

sharptooth


1 Answers

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.

like image 51
João Angelo Avatar answered Oct 21 '22 11:10

João Angelo