/CLRUNMANAGEDCODECHECK (Remover SuppressUnmanagedCodeSecurityAttribute)

/CLRUNMANAGEDCODECHECK especifica que o vinculador não se aplica SuppressUnmanagedCodeSecurityAttribute a chamadas geradas PInvoke pelo vinculador de código gerenciado em DLLs nativas.

Sintaxe

/CLRUNMANAGEDCODECHECK
/CLRUNMANAGEDCODECHECK:NO

Comentários

Por padrão, o vinculador aplica o SuppressUnmanagedCodeSecurityAttribute atributo às chamadas geradas PInvoke pelo vinculador. Quando /CLRUNMANAGEDCODECHECK estiver em vigor, SuppressUnmanagedCodeSecurityAttribute é removido. Para aplicar explicitamente o atributo às chamadas geradas PInvoke pelo vinculador, você pode usar /CLRUNMANAGEDCODECHECK:NOo SuppressUnmanagedCodeSecurityAttribute .

O vinculador só adiciona o atributo a objetos que são compilados usando /clr ou /clr:pure. No entanto, a opção de /clr:pure compilador foi preterida no Visual Studio 2015 e não tem suporte no Visual Studio 2017 e posterior.

Uma PInvoke chamada é gerada pelo vinculador quando o vinculador não consegue encontrar um símbolo gerenciado para satisfazer uma referência de um chamador gerenciado, mas pode encontrar um símbolo nativo para satisfazer essa referência. Para obter mais informações sobre PInvoke, confira Como chamar funções nativas do código gerenciado.

Se você usar AllowPartiallyTrustedCallersAttribute em seu código, você deve definir /CLRUNMANAGEDCODECHECK explicitamente para remover o SuppressUnmanagedCodeSecurity atributo. É uma vulnerabilidade de segurança potencial se uma imagem contiver os SuppressUnmanagedCodeSecurity atributos e AllowPartiallyTrustedCallers .

Para obter mais informações sobre as implicações do uso SuppressUnmanagedCodeSecurityAttributedo , consulte Diretrizes de codificação segura para código não gerenciado.

Para definir esta opção do vinculador no ambiente de desenvolvimento do Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para mais informações, consulte Definir propriedades de build e do compilador.

  2. Selecione a página de propriedades Propriedades da Configuração>Vinculador>Avançado.

  3. Modifique a propriedade Verificação de Código não Gerenciado CLR.

Para definir esta opção do vinculador por meio de programação

  1. Consulte CLRUnmanagedCodeCheck.

Confira também

Referência de vinculador MSVC
Opções do vinculador MSVC