方法: 厳密な名前のアセンブリを参照する

通常、厳密な名前付きアセンブリ内にある型またはリソースを参照するプロセスは透過的です。 コンパイル時 (事前バインディング) または実行時に参照を作成できます。

コンパイル時の参照は、コンパイルするアセンブリが明示的に別のアセンブリを参照していることをコンパイラに対して指定するときに発生します。 コンパイル時参照を使用する場合、コンパイラは対象の厳密な名前付きアセンブリの公開キーを自動的に取得し、その公開キーをコンパイルされるアセンブリのアセンブリ参照内に自動的に配置します。

注意

厳密な名前のアセンブリは、他の厳密な名前のアセンブリでのタイプだけを使用できます。 それ以外の場合は、厳密な名前のアセンブリのセキュリティが損なわれます。

厳密な名前付きアセンブリへのコンパイル時参照を作成する

コマンド プロンプトに次のコマンドを入力します。

<コンパイラ コマンド>/reference:<アセンブリ名>

このコマンドで、compiler command は、使用している言語のコンパイラ コマンドです。assembly name は、参照される厳密な名前付きアセンブリの名前です。 ライブラリ アセンブリを作成するための /t:library オプションなどの他のコンパイラ オプションも使用できます。

myAssembly.cs というコード モジュールから厳密な名前付きアセンブリ myLibAssembly.dll を参照する myAssembly.dll というアセンブリを作成する例を次に示します。

csc /t:library myAssembly.cs /reference:myLibAssembly.dll  

厳密な名前付きアセンブリへの実行時参照を作成する

Assembly.Load メソッドまたは Assembly.GetType メソッドを使用するなどの方法で、実行時に厳密な名前付きアセンブリ参照を作成する場合は、参照される厳密な名前付きアセンブリの表示名を使用する必要があります。 表示名の構文は次のとおりです。

<アセンブリ名>,<バージョン番号>,<カルチャ>,<公開キー トークン>

次に例を示します。

myDll, Version=1.1.0.0, Culture=en, PublicKeyToken=03689116d3a4ae33

この例では、PublicKeyToken は 16 進形式の公開キートークンです。 カルチャの値がない場合は、Culture=neutral を使用します。

この情報を Assembly.Load メソッドで使用する方法を次の例に示します。

Assembly^ myDll =
    Assembly::Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1");
Assembly myDll =
    Assembly.Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1");
Dim myDll As Assembly = _
    Assembly.Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1")

特定のアセンブリの 16 進形式の公開キーと公開キー トークンは、次の厳密名 (Sn.exe) コマンドを使用して出力できます。

sn -Tp <アセンブリ>

公開キーファイルがある場合は、代わりに次のコマンドを使用できます (コマンド ライン オプションの大文字と小文字の違いに注意してください)。

sn -tp <公開キー ファイル>

関連項目