Monday, September 19, 2011

Hot to Get Public Key Token of Assembly Within Visual Studio Solution( Components etc)

In Visual Studio, go to the Tools menu and choose External Tools.
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
The path of sn.exe could be change according to Visual studio version or windows version.
At my work computer i got at C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin and
C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\ directories
in windows XP operating system.
Arguments: -Tp $(TargetPath)
Check the Use Output Window checkbox.  The final looks like this:
Create a project and sign it using a strong name key by opening properties of the project and go to the Signing section and do as in the diagram.


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.
It could be achieved by  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.

1 comment :