How to find public key token for a .NET DLL or assembly
Many times we need to get the Public key token for a strongly named assembly in .NET. FAQ on that “how to get the public key token?”. Answer is very simple use the .NET Framework tools sn.exe. So open the Visual Studio 2008 Command Prompt and then point to the dll’s folder you want to get the public key,
Use the following command,
sn –T myDLL.dll
This will give you the public key token. Remember one thing this only works if the assembly has to be strongly signed.
Example
C:\WINNT\Microsoft.NET\Framework\v3.5>sn -T EdmGen.exe
Microsoft (R) .NET Framework Strong Name Utility Version 3.5.21022.8
Copyright (c) Microsoft Corporation. All rights reserved.
Public key token is b77a5c561934e089
Namoskar!!!
Comments
Anonymous
May 11, 2009
That's not fonction with framwork 3.0Anonymous
June 25, 2009
Thank you! Why doesn't the MSDN documentation make this obvious?Anonymous
June 29, 2009
MSDN is Wiki now, so you can add your inputs there. Please feel free to add any document/notes for others.Anonymous
February 24, 2010
We can find the public token key in GACAnonymous
March 02, 2010
The comment has been removedAnonymous
April 20, 2010
I couldn't find it at first and then realized the location depends on the version. Try opening a visual studio command prompt, as it should recognize the sn commandAnonymous
May 04, 2010
Thanks, this tip helped me out! FelipeAnonymous
November 01, 2010
Touche, very good when i needed to find the strongly typed keytoken....tyvm.Anonymous
March 10, 2011
Yes, Mark's suggestion worked for me. "Try opening a visual studio command prompt, as it should recognize the sn command" For me the executable is located in a totally different place from what you posted. For me, it's located in the following folder: C:Program FilesVISUALSTUDIO.2005.ENVC (VS2005) C:Program FilesMicrosoft Visual Studio 10.0VC> (VS2010) So using visual studio command prompt, which is not available in newer version will be your best bet.Anonymous
March 13, 2011
The location I have specified is for EdmGen.exe not for Command Prompt. You should open the command prompt from program menu if VSAnonymous
September 14, 2011
The comment has been removedAnonymous
November 26, 2011
WHERE WE USE THIS PUBLIC KEY TOKEN AND WHAT IS THE MAIN USE WITH IT?Anonymous
March 22, 2012
Hi I found a quite easy way to do so, even with unsigned assemblies. Open Immediate Window (Alt + Ctrl + I) and write the following command ?System.Reflection.Assembly.LoadFile(@"C:Pathsample.dll").FullName It will also provide you the version no, culture and public keyAnonymous
May 06, 2012
Inspired by @Amlan's comments, I am using powershell to list the info: ([system.reflection.assembly]::loadfile("c:program filesMicrosoft SQL Server100SDKAssembliesMicrosoft.sqlserver.smo.dll")).FullName This will gives out the following info Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91 Thanks @AmlanAnonymous
October 24, 2012
Thank You.Anonymous
November 18, 2012
Thank You!! Magical tip!!Anonymous
March 13, 2013
Thanks much for this post. Yes, 5 years later people are still reading it.Anonymous
April 06, 2013
@Chris F - Thanks a lot glad it helped. My intension is to help community.Anonymous
April 06, 2013
@Suja - Thanks a lot and glad!!!Anonymous
October 23, 2013
Fantastic - and yes I used the Visual Studio command prompt.Anonymous
May 08, 2014
There is no such thing as a VS 2008 command prompt.Anonymous
October 13, 2016
Excellent website үou hаve ɦere but Ι was wondering if youu кnew of any community forums tɦat cover thе same topics discussed ɦere?I'd гeally ⅼike to be a pɑrt of community where I can get opinions from other experienced people thzt hare tҺe same interest.If you hav any suggestions, pleaѕе let mе know.Τhank уou!Anonymous
March 31, 2017
If all you're interested in is adding an assembly for strong name verification skipping, just use this shell-extension - http://sbytestream.pythonanywhere.com/software/asmprops