次の方法で共有


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

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

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

注意

Visual Studio 2010 ではアクセサーが使用されていないため、Visual Studio の今後のバージョンには含められない可能性があります。

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

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

Publicize.exe ツールの使用

publicize.exe を使用するには、まず Visual Studio 2010 コマンド プロンプトを開きます。 これを行うには、[スタート] ボタンをクリックし、[すべてのプログラム] をポイントします。次に [Microsoft Visual Studio 10.0] をポイントし、[Visual Studio Tools] をポイントして、[Visual Studio 2010 コマンド プロンプト] をクリックします。 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 サイトと互換性があるプライベート アクセサーを生成します。

    注意

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

/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

参照

概念

プライベート メソッド、内部メソッド、およびフレンド メソッドの単体テスト