Satellite assemblies and strong names
Here's what I learned:
- Satellite assemblies for strong named assemblies must be strong named.
OK, not that surprising. - Satellite assemblies for strong named assemblies must be signed with the same key as the main assembly.
This is actually a bit of a pain for my company, because we use localization partners that in the past have been able to localize the product pretty much independently from us. With our .NET code, we'll have to sign the final satellite assemblies. Fortunately, the localizers can use delay signing with skip verification to do all of their development and testing, and we just need to do the final signing. - By default, satellite assemblies must have the same version number as the main assembly. You can use the SatelliteContractVersionAttribute to enable the main assembly to be versioned while still maintainng compatibility with existing satellite assemblies (thanks to Joe for pointing out this atttribute).