ユーザ用ツール

サイト用ツール


strong_name

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
strong_name [2009/02/03 07:47]
admin 削除
— (現在)
ライン 1: ライン 1:
-====== Strong Name ====== 
  
- 
-Strong Name(SN)はアセンブリの一意性と信頼性を保証する仕組みです。 
- 
-Win32のライブラリabc.dllを配布する場合に、このファイルをそのまま配布したとすると、使う側はLoadLibraryなどを使って実行します。この場合abc.dllが本物のdllである保証はありません。他の人が作った物である可能性もあります。 
- 
-COMを使ってabc.dllを配布する場合、インストールプロセスに於いて、abc.dllのRegsterServerを実行し、 abc.dllがもつGUIDをレジストリに登録します。使う側はCoCreateInstanceなどを使ってそのGUIDを指定し利用します。しかしそのGUIDはオープンであって他の人が同じGUIDを使ってそのライブラリに偽装することを防ぐことはできません。 
- 
-SNは上記の問題を解決するためのしくみです。abc.dllのハッシュを秘密鍵で暗号化し、abc.dllの内部に公開鍵と電子署名(暗号化したハッシュ)を持たせます。そしてabc.dllを使うアプリapp.exeをビルドする際、abc.dllから公開鍵と電子署名を得てその情報を app.exeに埋め込みます。 
- 
-===== VC2005でアセンブリにStrong Nameを施す ===== 
- 
- 
-Strong Nameを施すためにはまずキーファイルを作成しなければなりません。このファイルに秘密鍵と公開鍵が格納されています。キーファイルの作成は以下の方法で行います。 
- 
-  - スタートメニューから「Visual Studio 2005 コマンド プロンプト」を開く 
-  - コマンドプロンプトで"​sn -k MyKey.key"​を入力するとMyKey.keyが作成されます。このファイルをプロジェクトフォルダに置きます。 
-  - VC2005を開き、プロジェクトのプロパティを開きます。その中のリンクノード下の詳細ノードを開きます。その中の「キーファイル」に先ほど作成したファイルを指定します。 
- 
-これでリンクすると、Strong Nameのついたアセンブリができます。 
- 
-===== その他 ===== 
- 
-  * Strong NameのついたアセンブリはStrong Nameのついたアセンブリしか参照できません。 
-  * Strong NameのついたアセンブリはGACとよばれるシステム共通アセンブリにすることができます。 
-  * GACにはside-by-side技術を使って異なるヴァージョンのアセンブリを置くことができます。 



/var/www/html/virtual/cppcli/data/attic/strong_name.1233614850.txt.gz · 最終更新: 2013/12/23 09:07 (外部編集)