what is .NET delay signing?


Signing an assembly basically certifies that assembly by the manufacturer and prevents tampering and hi-jacking of that assembly.

The signing is accomplished by using public key/private key encoding of parts of the assembly.


Delay signing

Delayed signing refers to a technique of partially signing assemblies while they are in development (embedded the public key in the assembly but still secures the private key).



An organization can have a closely guarded key pair that developers do not have access to on a daily basis. The public key is often available, but access to the private key is restricted to only a few individuals.

When developing assemblies with strong names, each assembly that references the strong-named target assembly contains the token of the public key used to give the target assembly a strong name. This requires that the public key be available during the development process.

So, after delay signing, the public key is embedded in the assembly and will be used by third-parties who want to reference (you can place a shared assembly (as if strongly named) in the GAC by signing the assembly with just the public key).