共用方式為


ICLRStrongName::StrongNameSignatureGenerationEx 方法

此方法會根據指定的旗標為指定組件產生強式名稱簽章。

語法

HRESULT StrongNameSignatureGenerationEx (  
    [in]  LPCWSTR   wszFilePath,  
    [in]  LPCWSTR   wszKeyContainer,  
    [in]  BYTE      *pbKeyBlob,  
    [in]  ULONG     cbKeyBlob,  
    [out] BYTE      **ppbSignatureBlob,  
    [out] ULONG     *pcbSignatureBlob,  
    [in]  DWORD     dwFlags  
);  

參數

wszFilePath
[in] 檔案的路徑,其中包含將產生強式名稱簽章之組件的資訊清單。

wszKeyContainer
[in] 包含公開/私密金鑰組的金鑰容器名稱。

如果 pbKeyBlob 為 null,則 wszKeyContainer 必須在密碼編譯服務提供者 (CSP) 內指定有效的容器。 在此情況下,儲存在容器中的金鑰組會用來簽署檔案。

如果 pbKeyBlob 不是 null,則會假設金鑰組包含在金鑰二進位大型物件中 (BLOB)。

pbKeyBlob
[in] 公開/私密金鑰組的指標。 此金鑰組的格式由 Win32 CryptExportKey 函式建立。 如果 pbKeyBlob 為 null,可假設 wszKeyContainer 指定的金鑰容器包含金鑰組。

cbKeyBlob
[in] pbKeyBlob 的大小,單位是位元組。

ppbSignatureBlob
[out] 通用語言執行平台傳回簽章所在位置的指標。 如果 ppbSignatureBlob 為 null,則執行階段會將簽章儲存在 wszFilePath 所指定的檔案中。

如果 ppbSignatureBlob 不是 null,通用語言執行平台會配置空間來放置傳回的簽章。 呼叫者必須使用 ICLRStrongName::StrongNameFreeBuffer 方法來釋放此空間。

pcbSignatureBlob
[out] 傳回簽章的大小,單位是位元組。

dwFlags
[in] 指定下列一或多個值:

  • SN_SIGN_ALL_FILES (0x00000001):重新計算連結模組的所有雜湊。

  • SN_TEST_SIGN (0x00000002):測試簽署組件。

傳回值

如果方法順利完成,則為 S_OK;否則,為表示失敗的 HRESULT 值 (請參閱清單的一般 HRESULT 值)。

備註

針對 wszFilePath 指定 null 來計算簽章的大小,而不需建立簽章。

簽章可以直接儲存在檔案中,或傳回給呼叫端。

如果 SN_SIGN_ALL_FILES 已指定,但未同時包含公開金鑰 (pbKeyBlobwszFilePath 為 null),則會重新計算連結模組的雜湊,但組件不會重新簽署。

如果已指定 SN_TEST_SIGN,系統不會經由修改通用語言執行平台標頭,來表示系統使用強式名稱簽署組件。

規格需求

平台:請參閱系統需求

標頭:MetaHost.h

程式庫:包含作為 MSCorEE.dll 中的資源

.NET Framework版本:自 4 起可用

另請參閱