/CLRUNMANAGEDCODECHECK (Remove SuppressUnmanagedCodeSecurityAttribute)

/CLRUNMANAGEDCODECHECKGibt an, dass der Linker nicht für Linker generierte PInvoke Aufrufe aus verwaltetem Code in systemeigene DLLs giltSuppressUnmanagedCodeSecurityAttribute.

Syntax

/CLRUNMANAGEDCODECHECK
/CLRUNMANAGEDCODECHECK:NO

Hinweise

Standardmäßig wendet der Linker das SuppressUnmanagedCodeSecurityAttribute Attribut auf vom Linker generierte PInvoke Aufrufe an. Wenn /CLRUNMANAGEDCODECHECK dies wirksam ist, SuppressUnmanagedCodeSecurityAttribute wird sie entfernt. Um das SuppressUnmanagedCodeSecurityAttribute Attribut explizit auf linkergenerierte PInvoke Aufrufe anzuwenden, können Sie verwenden /CLRUNMANAGEDCODECHECK:NO.

Der Linker fügt nur das Attribut zu Objekten hinzu, die mithilfe /clr oder /clr:pure. Die /clr:pure Compileroption ist jedoch in Visual Studio 2015 veraltet und wird in Visual Studio 2017 und höher nicht unterstützt.

Ein PInvoke Aufruf wird vom Linker generiert, wenn der Linker kein verwaltetes Symbol finden kann, um einen Verweis von einem verwalteten Aufrufer zu erfüllen, aber ein systemeigenes Symbol finden kann, um diesen Verweis zu erfüllen. Weitere Informationen zu PInvoke finden Sie unter Aufrufen von nativen Funktionen aus verwaltetem Code.

Wenn Sie in Ihrem Code verwenden AllowPartiallyTrustedCallersAttribute , sollten Sie explizit festlegen /CLRUNMANAGEDCODECHECK , dass das SuppressUnmanagedCodeSecurity Attribut entfernt wird. Dies ist ein potenzieller Sicherheitsrisiko, wenn ein Bild sowohl die Attribute AllowPartiallyTrustedCallers als auch die SuppressUnmanagedCodeSecurity Attribute enthält.

Weitere Informationen zu den Auswirkungen der Verwendung SuppressUnmanagedCodeSecurityAttributefinden Sie unter Secure Coding Guidelines for Unmanaged Code.

So legen Sie diese Linkeroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten für das Projekt. Weitere Informationen finden Sie unter Festlegen von Compiler- und Buildeigenschaften.

  2. Wählen Sie die Seite "Konfigurationseigenschaften linker>>Advanced".

  3. Ändern Sie die Eigenschaft Überprüfung von nicht verwaltetem CLR-Code.

So legen Sie diese Linkeroption programmgesteuert fest

  1. Siehe CLRUnmanagedCodeCheck.

Siehe auch

MSVC-Linkerreferenz
Linkeroptionen