共用方式為


StrongNameSignatureGenerationEx 函式

更新:2010 年 7 月

根據指定的旗標,為指定的組件產生強式名稱簽章。

這個函式在 .NET Framework 4 版 中已被取代。 改用 ICLRStrongName::StrongNameSignatureGenerationEx 方法。

BOOLEAN 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] 位置的指標,Common Language Runtime 會將簽章傳回至該位置。 如果 ppbSignatureBlob 為 null,則執行階段會將簽章存放在 wszFilePath 指定的檔案中。

    如果 ppbSignatureBlob 不是 null,則 Common Language Runtime 會配置要在其中傳回簽章的空間。 呼叫端必須使用 StrongNameFreeBuffer 函式來釋放此空間。

  • pcbSignatureBlob
    [out] 傳回的簽章大小 (以位元組為單位)。

  • dwFlags
    [in] 下列其中一或多個值:

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

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

傳回值

如果成功完成則為 true,否則為 false。

備註

對 wszFilePath 指定 null,在未建立簽章的情況下計算簽章的大小。

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

如果指定 SN_SIGN_ALL_FILES 但是未包含公開金鑰 (pbKeyBlob 和 wszFilePath 都是 null),將會重新計算已連結之模組的雜湊,但是不會重新簽署組件。

如果指定 SN_TEST_SIGN,將不會修改 Common Language Runtime 標頭以指出組件是用強式名稱簽署。

如果 StrongNameSignatureGenerationEx 函式未順利完成,請呼叫 StrongNameErrorInfo 函式來擷取最後產生的錯誤。

需求

**平台:**請參閱 .NET Framework 系統需求

**旗頭:**StrongName.h

程式庫:包含做為 MsCorEE.dll 中的資源

**.NET Framework 版本:**4、3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

請參閱

參考

ICLRStrongName 介面

其他資源

ICLRStrongName::StrongNameSignatureGenerationEx 方法

ICLRStrongName::StrongNameSignatureGeneration 方法

變更記錄

日期

記錄

原因

2010 年 7 月

加入建議替代方案的連結。

資訊加強。