GeekZilla
Adding a Strong Name to an existing DLL that you don't have the source to
There are times when you need a DLL to have a strong name; putting it in the GAC for example. With 3rd party DLL's this could be a pain. This is how you do it:
From a VS.NET command prompt, enter the following:
1. Generate a KeyFile
sn -k keyPair.snk
2. Get the MSIL for the assembly
ildasm SomeAssembly.dll /out:SomeAssembly.il
3. Rename the original assembly, just in case
ren SomeAssembly.dll SomeAssembly.dll.orig
4. Build a new assembly from the MSIL output and your KeyFile
ilasm SomeAssembly.il /dll /key= keyPair.snk
Where do these tools live
If you've not got your framework and sdk paths properly mapped... In framework 2 this is where the command line utilities live:
- C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ilasm.exe
- C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\ildasm.exe
- C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe
Paul is the COO of kwiboo ltd and has more than 20 years IT consultancy experience. He has consulted for a number of blue chip companies and has been exposed to the folowing sectors: Utilities, Telecommunications, Insurance, Media, Investment Banking, Leisure, Legal, CRM, Pharmaceuticals, Interactive Gaming, Mobile Communications, Online Services.
Paul is the COO and co-founder of kwiboo (http://www.kwiboo.com/) and is also the creator of GeekZilla.
Comments
Lex Li
said:
What about resources files generated by ildasm? How can I embed them to the signed assembly? It seems that ilasm only accepts one /res.
Dast
said:
Very, very helpful.
Nagamohan kumar
said:
Hai Paul ,
This is Pretty Cool Thanks
Ralphy P
said:
Genius, saved my bacon that one. Thanks.
Magaly Vargas
said:
Thank you very much
Runil
said:
THANKS A LOT MAN!!! THIS SAVED MY LIFE!!!
Wayne
said:
Great stuff - really helped me out!!
Dili
said:
That saved my day. Awesome posting buddy.
Karthi
said:
Great Thanks for your valuable information
Sunikumar
said:
Thanks Saved My time
Bhavesh
said:
`How Can DO it in ubuntu?
AndreOliveira
said:
I'm having some problems with the last step...
I'm getting this error:
"Assembling 'keyPair.snk' to EXE --> 'Interop.SourceSafeTypeLib.exe'
Source file is ANSI
keyPair.snk(1) : error : Syntax error at token '' in :
*** FAILURE ***"
How can I manage this???
Thanks in advance...
Romy
said:
You made my day
Vadim
said:
I'm trying to add one of the OpenOffice 3 DLLs to the GAC, and when was using your method I've got "FAILURE" result because of compile errors like:
cli_uno.il(20302) : error -- Cannot compile native/unmanaged method
cli_uno.il(20309) : error -- Local (embedded native) PInvoke method, the resulting PE file is unusable
May be there are some dependencies in that dll.
How can I solve this ?
sandip
said:
Thanks man
U saved me
soadante
said:
Really helpful, thanks man!
riva
said:
Thank you!
LuizAntonio
said:
SomeAssembly.dll This would be the third assembly and SomeAssembly.dll.orig the name of my assembly as Strong Name
I'm waiting and I thank you
vijay
said:
I have one dll in C:, when i was excute the 2 point, i got the error "unable ot open classlibrary1.dll
I am trying to excute in vs cmd prompt
ildasm C:\classlibrary1.dll out\:classlibrary1.il
please assist me ASAP
Prabhat
said:
Thanks, Very Helpful
Prabhat
said:
Hi,
Facing problem when run .EXE that use.tlb file on other system on which .Net framework is not installed.
I would like to ask that to run an application that use .tlb file,we always have .Net Framework on targeted machine.
How to run that application on tageted machine without .Net Framework.
Please suggest.
Atul Goswami
said:
Thanx Man .. It saved my lots of Efforts!!
W@rfi
said:
Thanks for the post. It was very helpful and saved a lot of my time ....
saritha
said:
very helpfull
HR
said:
Thanks.
Ben
said:
You, my friend, are a legend.
Sadegh
said:
Very Very helpful
Thanks.
Sangeet Ahuja
said:
Awesome. Thanks,
Billy Westbury
said:
Thanks
Chris
said:
Nice post. Very useful.