共用方式為


使用 Publicize 建立私用存取子

命令列工具 publicize.exe 會產生包含公用型別的組件。 這些公用型別會將所有私用型別包裝在第二個組件中。 您可以使用 publicize 以協助建立以私用型別為目標的單元測試。

產生的組件也稱為「私用存取子」(Private Accessor)。 您也可以從 IDE 產生私用存取子,但可能會在 Automation、指令碼和建置情節中改用 publicize.exe。

注意事項注意事項

存取子的用法在 Visual Studio 2010 中已被取代,可能不會包含在未來的 Visual Studio 版本。

Publicize 不支援委派或事件

您在測試的組件可能包含各種私用或內部型別。 執行 publicize.exe 並傳遞該組件名稱時,會產生該組件的私用存取子。 產生的私用存取子所包含的程式碼,可以讓您測試用於存取組件中私用型別的程式碼。 然而,卻不會提供對任何私用或內部委派 (Delegate) 或事件的存取。

使用 Publicize.exe 工具

若要使用 publicize.exe,先開啟 Visual Studio 2010 命令提示字元。 若要這麼做,請依序按一下 [開始]、[所有程式],依序指向 [Microsoft Visual Studio 10.0]、[Visual Studio Tools],再按一下 [Visual Studio 2010 命令提示字元]。 使用下列語法搭配 publicize.exe:

Publicize.exe [options] input-assembly

這個命令會將所有現存的私用型別包裝在 input-assembly 組件中。

選項

這個命令有 /target、/delaysign 以及 /keyfile 選項。 下列章節將會說明這些選項。

/target

語法:Publicize.exe /target:[value] input-assembly

/target 選項會讓產生的組件建置為在特定平台上執行。 /target 的可能值如下:

  • Desktop:產生標準的 CLR 私用存取子。 Desktop 是 target: 選項的預設值。

  • WebSite:產生與網站相容的私用存取子。

    注意事項注意事項

    只有在 Visual Studio 中,經由選取 [檔案] 功能表上的 [網站] 所建立的網站,其測試程式碼才能夠使用 WebSite 選項。

/delaysign

語法:Publicize.exe /delaysign input-assembly

請使用 /delaysign 選項表示您不想在此時簽署組件。 在輸出組件中會保留空白,以便稍後能夠加入數位簽章。

您可以藉由使用 /delaysign,在執行 publicize.exe 後繼續測試。 此時會使用暫時的公開金鑰語彙基元,您就可以稍後再簽署組件。

如果您使用 /delaysign 選項,也就必須使用 /keyfile 選項。 您使用 /keyfile 選項指定的檔案必須包含公開金鑰,或者也可以包含私密金鑰。

/delaysign 也是 .NET 編譯器選項。 如需詳細資訊,請參閱建立和使用強式名稱的組件延遲簽署組件

/keyfile

語法:Publicize.exe /keyfile<key file> input-assembly

當您執行 publicize.exe 時,請使用 /keyfile 選項簽署組件。 請使用 <key file> 詞彙指定現有檔案的名稱,此檔案包含了密碼編譯金鑰。 <key file> 詞彙可以包含金鑰檔的絕對或相對路徑。

如果您使用 /keyfile 選項,您也可以選擇使用 /delaysign 選項。 如果您使用 /keyfile 而不同時使用 /delaysign,則以 /keyfile 選項指定的檔案必須同時包含公開金鑰與私密金鑰。

/keyfile 也是 .NET 編譯器選項。 如需詳細資訊,請參閱建立和使用強式名稱的組件

範例

下列命令會為 Myassembly.dll 產生標準的桌面私用存取子:

Publicize.exe myassembly.dll

下列命令會為網站 MyWebSite 產生私用存取子:

Publicize.exe /target:WebSite myassemby.dll

下列命令會產生強式名稱組件 (Myassembly.dll) 的標準桌面私用存取子,但是會延遲簽署的時間:

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

請參閱

概念

Private、Internal 和 Friend 方法的單元測試