/CLRUNMANAGEDCODECHECK (Quitar SuppressUnmanagedCodeSecurityAttribute)

/CLRUNMANAGEDCODECHECK especifica que el enlazador no se aplica SuppressUnmanagedCodeSecurityAttribute a las llamadas generadas por PInvoke el enlazador desde código administrado a archivos DLL nativos.

Sintaxis

/CLRUNMANAGEDCODECHECK
/CLRUNMANAGEDCODECHECK:NO

Comentarios

De forma predeterminada, el enlazador aplica el SuppressUnmanagedCodeSecurityAttribute atributo a las llamadas generadas por PInvoke el enlazador. Cuando /CLRUNMANAGEDCODECHECK está en vigor, SuppressUnmanagedCodeSecurityAttribute se quita. Para aplicar explícitamente el SuppressUnmanagedCodeSecurityAttribute atributo a las llamadas generadas por PInvoke el enlazador, puede usar /CLRUNMANAGEDCODECHECK:NO.

El enlazador solo agrega el atributo a los objetos compilados mediante /clr o /clr:pure. Sin embargo, la /clr:pure opción del compilador está en desuso en Visual Studio 2015 y no se admite en Visual Studio 2017 y versiones posteriores.

El PInvoke enlazador genera una llamada cuando el enlazador no encuentra un símbolo administrado para satisfacer una referencia de un autor de llamada administrado, pero puede encontrar un símbolo nativo para satisfacer esa referencia. Para más información, sobre PInvoke, vea Llamar a funciones nativas desde código administrado.

Si usa AllowPartiallyTrustedCallersAttribute en el código, debe establecer /CLRUNMANAGEDCODECHECK explícitamente para quitar el SuppressUnmanagedCodeSecurity atributo . Es una posible vulnerabilidad de seguridad si una imagen contiene los SuppressUnmanagedCodeSecurity atributos y AllowPartiallyTrustedCallers .

Para obtener más información sobre las implicaciones de usar SuppressUnmanagedCodeSecurityAttribute, vea Directrices de codificación segura para código no administrado.

Para establecer esta opción del vinculador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento de las propiedades del compilador y la compilación.

  2. Seleccione la página de propiedades Propiedades de configuración>Enlazador>Avanzado.

  3. Modifique la propiedad Comprobación de código no administrado CLR.

Para establecer esta opción del vinculador mediante programación

  1. Vea CLRUnmanagedCodeCheck.

Consulte también

Referencia del enlazador MSVC
Opciones del enlazador MSVC