What are .NET strong-named assemblies?
Posted: (EET/GMT+2)
If an assembly in .NET world is intended to be shared between multiple applications, it should have a strong name. A strong name uniquely identifies a .NET assembly using its name, version, culture, and public key.
A key pair can be created using the sn command:
sn -k MyKey.snk
The key is then used during compilation to sign the assembly.
Strong names allow multiple versions of the same assembly to exist on one computer without conflicts. Assemblies installed into the Global Assembly Cache (GAC) must have strong names. (I blogged about GAC in August.)
This helps address the "DLL Hell" problems common with shared COM components. Keep this in mind when deploying reusable libraries across multiple applications.