Partilhar via


/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 a chamadas geradas pelo PInvoke vinculador. Quando /CLRUNMANAGEDCODECHECK está em vigor, SuppressUnmanagedCodeSecurityAttribute é removido. Para aplicar explicitamente o SuppressUnmanagedCodeSecurityAttribute atributo a chamadas geradas PInvoke pelo vinculador, você pode usar /CLRUNMANAGEDCODECHECK:NOo .

O vinculador adiciona apenas o atributo a objetos compilados usando /clr ou /clr:pure. No entanto, a opção do compilador foi preterida /clr:pure 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 atender a uma referência de um chamador gerenciado, mas pode encontrar um símbolo nativo para atender a 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, deverá 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 de vinculador MSVC