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

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

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

メモメモ

厳密な名前付きアセンブリのみ、他の厳密な名前付きアセンブリ内の型を参照できます。それ以外の場合は、厳密な名前付きアセンブリのセキュリティが確保されません。

厳密な名前付きアセンブリへのコンパイル時参照を作成するには、次のようにします。

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

    <compiler command> /reference:<assembly name>

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

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

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

厳密な名前付きアセンブリへの実行時参照を作成するには、次のようにします。

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

    <assembly name>, <version number>, <culture>, <public key token>

    次に例を示します。

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

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

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

Dim myDll As Assembly = _
    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");
Assembly^ myDll =
    Assembly::Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1");

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

sn -Tp <assembly>

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

sn -tp <assembly>

参照

概念

厳密な名前付きアセンブリの作成と使用