/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 SuppressUnmanagedCodeSecurityAttribute
di , 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
Aprire la finestra di dialogo Pagine delle proprietà per il progetto. Per altre informazioni, vedere Impostare le proprietà del compilatore e della compilazione.
Selezionare la pagina delle>proprietà Proprietà di configurazione Linker>Avanzate.
Modificare la proprietà Controllo codice non gestito CLR.
Per impostare l'opzione del linker a livello di codice
- Vedere CLRUnmanagedCodeCheck.
Vedi anche
Informazioni di riferimento sul linker MSVC
Opzioni del linker MSVC