/CLRUNMANAGEDCODECHECK (SuppressUnmanagedCodeSecurityAttribute 제거)

/CLRUNMANAGEDCODECHECK는 링커가 관리 코드에서 네이티브 DLL로의 링커 생성 PInvoke 호출에 적용되지 SuppressUnmanagedCodeSecurityAttribute 않도록 지정합니다.

구문

/CLRUNMANAGEDCODECHECK
/CLRUNMANAGEDCODECHECK:NO

설명

기본적으로 링커는 링커 생성 PInvoke 호출에 특성을 적용 SuppressUnmanagedCodeSecurityAttribute 합니다. /CLRUNMANAGEDCODECHECK 적용 SuppressUnmanagedCodeSecurityAttribute 중인 경우 제거됩니다. 링커 생성 PInvoke 호출/CLRUNMANAGEDCODECHECK:NOSuppressUnmanagedCodeSecurityAttribute 특성을 명시적으로 적용하려면 .

링커는 사용하거나 /clr:pure.를 사용하여 /clr 컴파일된 개체에만 특성을 추가합니다. 그러나 /clr:pure 컴파일러 옵션은 Visual Studio 2015에서 더 이상 사용되지 않으며 Visual Studio 2017 이상에서는 지원되지 않습니다.

PInvoke 링커가 관리되는 호출자의 참조를 충족하는 관리되는 기호를 찾을 수 없지만 해당 참조를 충족하는 네이티브 기호를 찾을 수 있는 경우 링커에서 호출이 생성됩니다. PInvoke에 대한 자세한 내용은 관리 코드에서 네이티브 함수 호출을 참조하세요.

코드에서 사용하는 AllowPartiallyTrustedCallersAttribute 경우 특성을 제거 SuppressUnmanagedCodeSecurity 하도록 명시적으로 설정 /CLRUNMANAGEDCODECHECK 해야 합니다. 이미지에 특성과 AllowPartiallyTrustedCallers 특성이 모두 포함된 경우 잠재적인 보안 취약성입니다SuppressUnmanagedCodeSecurity.

사용 SuppressUnmanagedCodeSecurityAttribute의 의미에 대한 자세한 내용은 관리되지 않는 코드에 대한 보안 코딩 지침을 참조 하세요.

Visual Studio 개발 환경에서 이 링커 옵션을 설정하려면

  1. 프로젝트에 대한 속성 페이지 대화 상자를 엽니다. 자세한 내용은 컴파일러 및 빌드 속성 설정을 참조 하세요.

  2. 구성 속성>링커>고급 속성 페이지를 선택합니다.

  3. CLR 비관리 코드 검사 속성을 수정합니다.

프로그래밍 방식으로 이 링커 옵션을 설정하려면

  1. CLRUnmanagedCodeCheck을(를) 참조하세요.

참고 항목

MSVC 링커 참조
MSVC 링커 옵션