I have created a common library at work, and it is installed in the GAC on our test server. I\'ve recently updated it and I want all of our applications to be using the upda
Ok...at a stab...
1 - have you tried using the Assembly Binding Log Viewer (Fuslogvw.exe) to see what assembly binding is taking place?
You can find it in:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\FUSLOGVW.exe (with VS2008 installed).
2 - "I have the common assembly (there are actually five, but lets keep it simple) on a network drive," - Are both assemblies resident on the network drive?
Update: Ok...if the new assembly is on a network drive there are probably some trust issues. Can you deploy the new assemblies to a local drive on the server then re-install to the GAC?
Update2: I know..stupid stuff....you have definitely got the publicKeyToken and version number correct? i.e. Your AssemblyVersion attribute for the new assembly is definitely 1.1.0.0 and the public key token is identical (in the GAC)?
Have you tried removing the culture attribue?
Update3: Hi Max....Can you paste the exact publisher policy file you used? Also...remember that if you are redirecting from a 1.0 to a higher versioned assembly, the publisher policy name must be named using the major.minor version of the assembly you're redirecting from. So in your case the publisher policy should be named 'policy.1.0.Leggett.Common.dll'. I notice you've named it 'policy.1.1.Leggett.Common.dll' which may be the reason it's not working.
And finally you must make sure you sign the publisher policy with the same key as used by the 1.0 and 1.1 assemblies.
I built a couple of DLL's and dropped them in the GAC then used a console app in VS to test and it does work :)
Update4: Hi Max, something I never thought about. When you created the publisher policy file, did you specify the platform? Try building it with:
al /link:1.1.Leggett.Common.policy /out:policy.1.0.Leggett.Common.dll /keyfile: /version:1.0.0.0
Leave out the /platform switch and explicitly specify the version number.
Cheers
Kev
You're identifying the assembly correctly, but for anyone else who's reading, reference the assembly by its root in the assemblyIdentity element without the file extension (e.g., "Fubar" and not "Fubar.dll").
Microsoft's documentation neglects to mention that... #$%#!(!@!