Getting Public Key Token of Assembly Within Visual Studio

I am in training this week with Andrew Connell (by far the best SharePoint training I have ever attended), learning about SharePoint development.  As I get started with my deep dive into learning SharePoint, something that comes up a lot is the need to find the public key token of the current .NET assembly.  He just showed a great shortcut.

In Visual Studio, go to the Tools menu and choose External Tools.

image

That brings up a new dialog window.  Click the Add button and add the following:

Title: Get &PublicKeyToken

Command: C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\sn.exe

Arguments: -Tp $(TargetPath)

Check the Use Output Window checkbox.  The final looks like this:

image

Create a project and sign it using a strong name key.  Then choose Tools / Get PublicKeyToken, and in the output window you will see something like the following:

 Microsoft (R) .NET Framework Strong Name Utility  Version 3.5.21022.8
Copyright (c) Microsoft Corporation.  All rights reserved.

Public key is
0024000004800000940000000602000000240000525341310004000001000100d59451ff2ed310
447372c4d689f24dcece5aaaef6dddaffc3e43c36a9235586b33ec9e3121ad844ee521bd76fbc0
9a9a357bfeec32d87d8cd1278cd7697667263724e6ff1712e5ee3054542cfbb11b9241da118fbd
c1df7439ba13db77b63f8bf557c7f081946c02e32884c82806e0e95667e879d15b9a2912012398
76e0efa7

Public key token is 9589fa1be527eb6c

Just copy the last value and put it into your assembly's 5-part name.

Funny, I just got in the habit a long, long time ago of loading ildasm, copying the public key token, and then manually removing the spaces from that value.  Or, more recently, loading up Reflector and loading the assembly just to get the public key token.  Never even thought of this time saver, just using sn.exe from Visual Studio as an external tool.