/CLRUNMANAGEDCODECHECK
(Remove SuppressUnmanagedCodeSecurityAttribute)
/CLRUNMANAGEDCODECHECK
Gibt 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 SuppressUnmanagedCodeSecurityAttribute
finden Sie unter Secure Coding Guidelines for Unmanaged Code.
So legen Sie diese Linkeroption in der Visual Studio-Entwicklungsumgebung fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten für das Projekt. Weitere Informationen finden Sie unter Festlegen von Compiler- und Buildeigenschaften.
Wählen Sie die Seite "Konfigurationseigenschaften linker>>Advanced".
Ändern Sie die Eigenschaft Überprüfung von nicht verwaltetem CLR-Code.
So legen Sie diese Linkeroption programmgesteuert fest
- Siehe CLRUnmanagedCodeCheck.