/CLRUNMANAGEDCODECHECK
(SuppressUnmanagedCodeSecurityAttribute 제거)
/CLRUNMANAGEDCODECHECK
는 링커가 관리 코드에서 네이티브 DLL로의 링커 생성 PInvoke
호출에 적용되지 SuppressUnmanagedCodeSecurityAttribute 않도록 지정합니다.
구문
/CLRUNMANAGEDCODECHECK
/CLRUNMANAGEDCODECHECK:NO
설명
기본적으로 링커는 링커 생성 PInvoke
호출에 특성을 적용 SuppressUnmanagedCodeSecurityAttribute
합니다. /CLRUNMANAGEDCODECHECK
적용 SuppressUnmanagedCodeSecurityAttribute
중인 경우 제거됩니다. 링커 생성 PInvoke
호출/CLRUNMANAGEDCODECHECK:NO
에 SuppressUnmanagedCodeSecurityAttribute
특성을 명시적으로 적용하려면 .
링커는 사용하거나 /clr:pure
.를 사용하여 /clr
컴파일된 개체에만 특성을 추가합니다. 그러나 /clr:pure
컴파일러 옵션은 Visual Studio 2015에서 더 이상 사용되지 않으며 Visual Studio 2017 이상에서는 지원되지 않습니다.
PInvoke
링커가 관리되는 호출자의 참조를 충족하는 관리되는 기호를 찾을 수 없지만 해당 참조를 충족하는 네이티브 기호를 찾을 수 있는 경우 링커에서 호출이 생성됩니다. PInvoke
에 대한 자세한 내용은 관리 코드에서 네이티브 함수 호출을 참조하세요.
코드에서 사용하는 AllowPartiallyTrustedCallersAttribute 경우 특성을 제거 SuppressUnmanagedCodeSecurity
하도록 명시적으로 설정 /CLRUNMANAGEDCODECHECK
해야 합니다. 이미지에 특성과 AllowPartiallyTrustedCallers
특성이 모두 포함된 경우 잠재적인 보안 취약성입니다SuppressUnmanagedCodeSecurity
.
사용 SuppressUnmanagedCodeSecurityAttribute
의 의미에 대한 자세한 내용은 관리되지 않는 코드에 대한 보안 코딩 지침을 참조 하세요.
Visual Studio 개발 환경에서 이 링커 옵션을 설정하려면
프로젝트에 대한 속성 페이지 대화 상자를 엽니다. 자세한 내용은 컴파일러 및 빌드 속성 설정을 참조 하세요.
구성 속성>링커>고급 속성 페이지를 선택합니다.
CLR 비관리 코드 검사 속성을 수정합니다.
프로그래밍 방식으로 이 링커 옵션을 설정하려면
- CLRUnmanagedCodeCheck을(를) 참조하세요.