/CLRUNMANAGEDCODECHECK
(Remove SuppressUnmanagedCodeSecurityAttribute)
/CLRUNMANAGEDCODECHECK
указывает, что компоновщик не применяется SuppressUnmanagedCodeSecurityAttribute к вызовам, созданным PInvoke
компоновщиком из управляемого кода, в собственные библиотеки DLL.
Синтаксис
/CLRUNMANAGEDCODECHECK
/CLRUNMANAGEDCODECHECK:NO
Замечания
По умолчанию компоновщик применяет SuppressUnmanagedCodeSecurityAttribute
атрибут к вызовам, созданным компоновщиком PInvoke
. При /CLRUNMANAGEDCODECHECK
действии SuppressUnmanagedCodeSecurityAttribute
удаляется. Чтобы явно применить SuppressUnmanagedCodeSecurityAttribute
атрибут к вызовам, созданным PInvoke
компоновщиком, можно использовать /CLRUNMANAGEDCODECHECK:NO
.
Компоновщик добавляет атрибут только в объекты, скомпилированные с помощью /clr
или /clr:pure
. /clr:pure
Однако параметр компилятора устарел в Visual Studio 2015 и не поддерживается в Visual Studio 2017 и более поздних версиях.
PInvoke
Вызов создается компоновщиком, когда компоновщик не может найти управляемый символ для удовлетворения ссылки от управляемого вызывающего объекта, но может найти собственный символ для удовлетворения этой ссылки. Дополнительные сведения о PInvoke
см. в статье Вызов встроенных функций из управляемого кода.
Если вы используете AllowPartiallyTrustedCallersAttribute в коде, необходимо явно задать /CLRUNMANAGEDCODECHECK
для удаления атрибута SuppressUnmanagedCodeSecurity
. Это потенциальная уязвимость безопасности, если изображение содержит как SuppressUnmanagedCodeSecurity
атрибуты, так и AllowPartiallyTrustedCallers
атрибуты.
Дополнительные сведения о последствиях использования SuppressUnmanagedCodeSecurityAttribute
см. в руководстве по безопасному коду для неуправляемого кода.
Задание данного параметра компоновщика в среде разработки Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Дополнительные сведения см. в разделе Set компилятора и свойств сборки.
Выберите страницу свойств>компоновщика>конфигурации Advanced.
Измените значение свойства Проверка CLR на неуправляемый код.
Задание данного параметра компоновщика программным способом
- См. раздел CLRUnmanagedCodeCheck.