使用 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