.NET Assembly Binding How/Why (1.1, 2.0, GAC, Policy Files and more...) -


I am working through many "strange" issues with many DLL versions, policy files and objects in GAC and I have not found a solid answer for my life, how / why the NAT frame chooses the assembly that does this when the binding project reference

  ApplicationAssembly.dll - .NET 1.1 code -  

.dll version 01.01.00.1234 ApplicationAssembly.dll - .NET 1.1 code -. Dll version 01.01.00.1244 ApplicationAssembly.dll - .NET 2.0 code -. Dll version 02.00.00.1111

Each of these assemblies is loaded in GAC, and 1.1 and 2.0 versions each have a policy file that specifies the most current version for the shipment Does.

We have a project that references the version 1.1.00.1234 of the ApplicationAssembly.dll file, however, the project was transferred and the signal path is no longer valid. However, the context is not dead, but it is showing for version 02.00.00.1111 and the intention of assembly is not 1.1 version.

How has this process been determined, and why it jumped off 2.0 framework? If we specify that this is a "specific edition" reference, even with a wrong signal, it will find the proper DLL, but due to the future threats, we can not turn that setting on.

The question that I think is why is it so? and how it determines where to go for the assembly.

Rule Fusion (Managed del loading functionality in the net) is quite wide for DLS detection (GAC / Strong name / due to something on the name of custom loading hook)

Official rules are presented in a broad stroke as your library is strong, more complex rules named will apply


Comments