メモ: dllファイルのPublicKeyTokenの確認方法
dllファイルのPublicKeyTokenの確認方法が分からなくて調べたのでメモしておきます。
PublicKeyTokenは、.NET WebアプリケーションのWeb.configにコンパイルの設定値として書かれたアセンブリ名などで見かけます。こういうものです。
<configuration> <system.web> <compilation> <assemblies> <add assembly="System.Data, Version=1.0.2411.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> </assemblies> </compilation> </system.web> </configuration>
(http://msdn.microsoft.com/ja-jp/library/bfyb45k1(v=vs.100).aspx から引用)
PublicKeyTokenとは、PublicKeyに64bitハッシュをかけた値だそうです。(c.f. CLR via C#)
方法2
プロパティーを開いてもPublicKeyTokenが表示されない場合があります。そういうときは、.NET Framework String Name Utility(Sn.exe)を使います。
Sn.exeは、Windows SDKと一緒にインストールされるので、MicrosoftSDKsフォルダのサブフォルダの下にあります。手元のマシンでは、32bit版は C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ に、64bit版は C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\ にありました。
Sn.exeの実行は、コマンドプロンプトからではなく、Visual Studio コマンドプロンプトかWindows SDK コマンドプロンプトを使うことが推奨されています。
Sn.exeにTオプションをつけて次のように実行すると、PublicKeyTokenを確認できます。
sn -T アセンブリ名
オプションをつけずに、あるいはhオプションをつけて実行すると、他のオプション一覧が表示されます。
参考
- PublicKeyTokenを確認するには - uedakoの日記 http://d.hatena.ne.jp/uedako/20100115/1263532195
- Getting Public Key Token of Assembly Within Visual Studio http://blogs.msdn.com/b/kaevans/archive/2008/06/18/getting-public-key-token-of-assembly-within-visual-studio.aspx
- Sn.exe (厳密名ツール) http://msdn.microsoft.com/ja-jp/library/k5b5tt23(v=vs.110).aspx
- 解説 インサイド .NET Framework [改訂版]第2回 アセンブリのアイデンティティ http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_02/idnfw11_02_05.html