publicize を使用したプライベート アクセサの作成

更新 : 2007 年 11 月

コマンド ライン ツールである publicize.exe は、パブリック型を含むアセンブリを生成します。これらのパブリック型は、2 つ目のアセンブリの中にすべてのプライベート型をラップします。publicize を使用して、プライベート型を対象とする単体テストを作成できます。

生成されるアセンブリは、プライベート アクセサとも呼ばれます。プライベート アクセサは IDE からも生成できますが、自動化、スクリプト記述、およびビルドのシナリオでは publicize.exe を代わりに使用できます。

publicize はデリゲートとイベントをサポートしない

テストするアセンブリが、さまざまな種類のプライベート型または内部型を含んでいることがあります。publicize.exe を実行し、アセンブリの名前を渡すと、そのアセンブリのプライベート アクセサが生成されます。生成されるプライベート アクセサには、テスト コードがアセンブリ内のプライベート型にアクセスできるようにするコードが含まれます。ただし、プライベートまたは内部のデリゲートまたはイベントへのアクセスは提供されません。

Publicize.exe ツールの使用

publicize.exe を使用するには、まず Visual Studio 2008 コマンド プロンプトを開きます。これを行うには、[スタート] ボタンをクリックし、[すべてのプログラム] をポイントします。次に [Microsoft Visual Studio 9.0] をポイントし、[Visual Studio Tools] をポイントして、[Visual Studio 2008 コマンド プロンプト] をクリックします。publicize.exe では、次の構文を使用します。

Publicize.exe [オプション] input-assembly

このコマンドは、input-assembly アセンブリ内のすべてのプライベート型をラップします。

オプション

このコマンドには、/target、/delaysign、および /keyfile というオプションがあります。ここでは、これらのオプションについて説明します。

/target

構文 : Publicize.exe /target:[値] input-assembly

/target オプションを指定すると、特定のプラットフォームで実行されるアセンブリが構築され、生成されます。/target には、次の値を指定できます。

  • Desktop : 標準的な CLR プライベート アクセサを生成します。Desktop は、target オプションの既定値です。

  • WebSite : Web サイトと互換性があるプライベート アクセサを生成します。

    Bb514191.alert_note(ja-jp,VS.90).gifメモ :

    WebSite オプションは、Visual Studio で [ファイル] メニューの [Web サイト] をクリックして作成した Web サイトのコードをテストする場合にのみ使用します。

  • Device : スマート デバイスと互換性があるプライベート アクセサを生成します。

/delaysign

構文 : Publicize.exe /delaysign input-assembly

現時点でアセンブリに署名しない場合は、/delaysign オプションを使用します。デジタル署名を後で追加できるように、出力アセンブリに署名用のスペースが予約されます。

/delaysign を使用すると、publicize.exe の実行後に独自のテストを引き続き実行できます。一時的な公開キー トークンが使用され、後でアセンブリに署名できます。

/delaysign オプションを使用する場合は、/keyfile オプションも使用する必要があります。/keyfile オプションで指定したファイルには、公開キーが格納されている必要があります。また、必要に応じて秘密キーを格納することもできます。

/delaysign は、.NET コンパイラのオプションでもあります。詳細については、「厳密な名前付きアセンブリの作成と使用」および「アセンブリへの遅延署名」を参照してください。

/keyfile

Syntax: Publicize.exe /keyfile<キー ファイル> input-assembly

publicize.exe の実行時にアセンブリに署名する場合は、/keyfile オプションを使用します。<キー ファイル> には、暗号化キーが格納されている既存のファイルの名前を指定します。<キー ファイル> に指定できるのは、キー ファイルの絶対パスまたは相対パスです。

/keyfile オプションを使用する場合は、/delaysign オプションも使用できます。/keyfile オプションを使用して /delaysign オプションを使用しない場合は、/keyfile オプションで指定したファイルに公開キーと秘密キーの両方が含まれている必要があります。

/keyfile は、.NET コンパイラのオプションでもあります。詳細については、「厳密な名前付きアセンブリの作成と使用」を参照してください。

次のコマンドは、Myassembly.dll 用の標準的なデスクトップ プライベート アクセサを生成します。

Publicize.exe myassembly.dll

次のコマンドは、Web サイト MyWebSite 用のプライベート アクセサを生成します。

Publicize.exe /target:WebSite myassemby.dll

次のコマンドは、Myassembly.dll という厳密な名前のアセンブリの標準的なデスクトップ プライベート アクセサを生成し、署名を後で行うように指定します。

Publicize.exe /delaysign /keyfile<FileWithPublicKey.snk> myassembly.dll

次のコマンドは、スマート デバイスで実行するように構築されたアプリケーションのテスト時に使用するプライベート アクセサを生成します。

Publicize.exe /target:device /keyfile<FileWithKeys.snk> myassembly.dll

参照

処理手順

方法 : プライベート メソッドをテストする

概念

プライベート アクセサの使用