views:

257

answers:

1

I just ran into a situation where I needed to patch a release with a new version of one of our assemblies. All my assemblies are strong names and this is a Windows Forms application. I edited my App.config to do the appropriate re-mappings and all went fine until we tested our software with our localized version. The problem we saw is that the existing satellite assembly didn't load and we didn't see the localized resources. The only solution I could find was to rebuild the satellite assemblies with the assembly linker using the base assembly as a template.

A couple of questions:

If my base assembly is strong named, must my satellite assembly also be strong named? In my case I'm not using the GAC.

Why doesn't my satellite assembly use the redirection specified in my App.config?

A: 

Yes, satellite assemblies must also be strong named, and need the same version and public key as the real assembly.

See this link: http://www.codeguru.com/csharp/.net/net_general/tipstricks/article.php/c11367/

I'm not sure why it is not loaded when you use the redirection. You replace assembly A version 1 with version 2. You redirect version 1 to version 2. You have satellite assemblies for assembly A still in version 1? Is this correct? This of course does not work. If you replace an assembly, you have to replace its satellites.

Stefan Steinegger