What is Delay signing?

Delay signing is a technique used in the .NET framework to partially sign an assembly with a public key token during development, while deferring the full signing process until later stages. It allows developers to build and test assemblies without having access to the private key, which is required for full signing.

When an assembly is delay signed, it is given a unique public key token but lacks the corresponding digital signature from the private key. This allows the assembly to be used in development and testing environments without the need for the private key, while ensuring that the assembly's identity and integrity can still be verified.

Delay signing

Delay signing is particularly useful in scenarios where multiple developers are working on different parts of an application, and they need to share and test each other's assemblies. It enables developers to distribute their partially signed assemblies without exposing the private key, preventing unauthorized modifications to the assembly.

To complete the signing process and generate the full digital signature, the assembly needs to be re-signed with the private key using tools such as the Strong Name Tool (sn.exe) or the Assembly Linker (al.exe). This final signing step typically occurs during the deployment or release process.

Conclusion

Delay signing helps in maintaining the security and integrity of assemblies during development and testing, while still allowing for collaboration and interoperability among developers.