.NET › Assemblies & NuGet
What is strong naming of assemblies, and why is it much less commonly required in modern .NET?
IntermediateAnswer
Strong naming signs an assembly with a public/private key pair, giving it a unique identity (name, version, culture, public key token) primarily used historically for GAC installation and preventing assembly substitution/tampering in .NET Framework. Modern .NET's side-by-side, per-application deployment model and absence of a GAC removes most of the original motivations for strong naming, though it's still occasionally required for specific interop scenarios or organizational policy.
<PropertyGroup>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>MyKey.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>Real-world example A library targeting both legacy Framework consumers (who still expect strong-named assemblies for GAC compatibility) and modern .NET consumers maintains strong naming primarily for backward compatibility rather than any modern security need.