다음을 통해 공유


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(Binary Large Object)에 포함된 것으로 간주됩니다.

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) - 어셈블리를 테스트 서명합니다.

Return Value

메서드가 성공적으로 완료된 경우 S_OK, 그렇지 않으면 실패를 나타내는 HRESULT 값입니다(목록은 일반 HRESULT 값 참조).

설명

서명을 만들지 않고 서명의 크기를 계산하려면 wszFilePath에 null을 지정합니다.

서명은 파일에 직접 저장하거나 호출자에게 반환할 수 있습니다.

SN_SIGN_ALL_FILES가 지정되었지만 공개 키가 포함되지 않은 경우(pbKeyBlobwszFilePath 모두 null임) 연결된 모듈의 해시는 다시 계산되지만 어셈블리는 다시 서명되지 않습니다.

SN_TEST_SIGN이 지정되면 어셈블리가 강력한 이름으로 서명되었음을 나타내도록 공용 언어 런타임 헤더가 수정되지 않습니다.

요구 사항

플랫폼:시스템 요구 사항을 참조하세요.

헤더: MetaHost.h

라이브러리: 리소스로 MSCorEE.dll에 포함됩니다.

.NET Framework 버전: 4부터 사용 가능

참고 항목