/CLRUNMANAGEDCODECHECK (Remove SuppressUnmanagedCodeSecurityAttribute)

/CLRUNMANAGEDCODECHECK specifica che il linker non si applica SuppressUnmanagedCodeSecurityAttribute alle chiamate generate PInvoke dal linker dal codice gestito alle DLL native.

Sintassi

/CLRUNMANAGEDCODECHECK
/CLRUNMANAGEDCODECHECK:NO

Osservazioni:

Per impostazione predefinita, il linker applica l'attributo SuppressUnmanagedCodeSecurityAttribute alle chiamate generate dal PInvoke linker. Quando /CLRUNMANAGEDCODECHECK è attivo, SuppressUnmanagedCodeSecurityAttribute viene rimosso. Per applicare in modo esplicito l'attributo SuppressUnmanagedCodeSecurityAttribute alle chiamate generate dal PInvoke linker, è possibile usare /CLRUNMANAGEDCODECHECK:NO.

Il linker aggiunge solo l'attributo agli oggetti compilati usando /clr o /clr:pure. Tuttavia, l'opzione del /clr:pure compilatore è deprecata in Visual Studio 2015 e non supportata in Visual Studio 2017 e versioni successive.

Una PInvoke chiamata viene generata dal linker quando il linker non riesce a trovare un simbolo gestito per soddisfare un riferimento da un chiamante gestito, ma può trovare un simbolo nativo per soddisfare tale riferimento. Per altre informazioni su PInvoke, vedere Chiamata a funzioni native da codice gestito.

Se si usa AllowPartiallyTrustedCallersAttribute nel codice, è necessario impostare /CLRUNMANAGEDCODECHECK in modo esplicito per rimuovere l'attributo SuppressUnmanagedCodeSecurity . Si tratta di una potenziale vulnerabilità di sicurezza se un'immagine contiene entrambi gli SuppressUnmanagedCodeSecurity attributi e AllowPartiallyTrustedCallers .

Per altre informazioni sulle implicazioni dell'uso SuppressUnmanagedCodeSecurityAttributedi , vedere Linee guida per la codifica sicura per il codice non gestito.

Per impostare questa opzione del linker nell'ambiente di sviluppo di Visual Studio

  1. Aprire la finestra di dialogo Pagine delle proprietà per il progetto. Per altre informazioni, vedere Impostare le proprietà del compilatore e della compilazione.

  2. Selezionare la pagina delle>proprietà Proprietà di configurazione Linker>Avanzate.

  3. Modificare la proprietà Controllo codice non gestito CLR.

Per impostare l'opzione del linker a livello di codice

  1. Vedere CLRUnmanagedCodeCheck.

Vedi anche

Informazioni di riferimento sul linker MSVC
Opzioni del linker MSVC