Introduction
When we talk about the Assembly then the first thing that comes into our mind is the security for high-level development. Delayed signing is the terminology when we are certifying the assembly which will prevent hi-jacking of that assembly.
Delayed signing refers to a technique of partially signing assemblies while they are in the development phase. So, signing an assembly basically certifies that assembly by the manufacturer and prevents tampering and hi-jacking of that assembly. This is achievable by using public key/private key encoding of parts of the assembly. The public key is embedded in the assembly and will be used by third parties who want to reference the assembly. There are many more benefits to signing an assembly, but the main purpose of delayed signing is to allow a company to protect and control its private key and only use it during the packaging process. A delayed signed assembly can still be used like a signed assembly, you just can't package and ship it.
Steps to certify the Assembly
Delays sign a .NET app:
sn -k keypair.snk
- sn -p keypair.snk public.snk
- Build assembly with:
[assembly: AssemblyDelaySign("false")]
[assembly: AssemblyKeyFile("..\\..\\keypair.snk")] - sn -Vr AssemblyName.dll
- This step is critical and is not mentioned anywhere. Exit and restart every instance of VisualStudio running. Until you do this Visual Studio will not know of the sn -Vr from step 4 and you will get
"COM Interop registration failed. The check of the signature failed for assembly AssemblyName.dll"

JohnPosted Apr 2, 2009, 5:28 AM
In the article u have mentoned [assembly: AssemblyDelaySign("false")] but, When you only have access to the key file that contains just the public key, you must enable delay signing of the assembly. Therefore, instead of the above attributes, you need to specify the following attributes. [assembly: AssemblyDelaySign(true)]
shams venkittaPosted Nov 24, 2007, 7:49 AM
Dear Sushmita, Let me take a copy form your example.. sn -p keypair.snk public.snk Build assembly with: [assembly: AssemblyDelaySign("false")] [assembly: AssemblyKeyFile("..\\..\\keypair.snk")] But where the generated public key file (public.snk) is used. To my understanding first we can sign the assembly with the public.snk [assembly: AssemblyDelaySign("false")] [assembly: AssemblyKeyFile("..\\..\\public.snk")] Then we can skip the signature verification using sn -Vr AssemblyName.dll Then during deployment, we can sign the assembly with the original key file ie, keypair.snk Pls give your valuable inputs
basam sreenivasPosted Nov 1, 2007, 1:32 AM
ver very good
Bharath Reddy VasiReddyeditedPosted Jun 14, 2007, 5:59 AMEdited Jun 14, 2007, 6:00 AM
Very good stuff Bharath Reddy VasiReddy
venkatesaPosted Feb 21, 2006, 11:30 AM
Hi very nice your article PrasathVV
Faniel JosephPosted Jan 20, 2006, 7:35 AM
HI Is there is any tool to moniter .net threading.