/CLRIMAGETYPE (especificar tipo de imagem CLR)
/CLRIMAGETYPE:{IJW|PURE|SAFE|SAFE32BITPREFERRED}
Comentários
O vinculador aceita objetos nativos e também objetos MSIL que são compilados usando /clr, /clr:pure ou /clr:safe. Quando os objetos mistos na mesma compilação são passados, a capacidade de verificação do arquivo de saída resultante é, por padrão, igual ao nível mais baixo de capacidade de verificação dos módulos de entrada. Por exemplo, se você passa um módulo seguro e puro ao vinculador, o arquivo de saída será puro. Se você passar uma imagem nativa e uma imagem de modo misto (compiladas usando /clr), a imagem resultante será uma imagem de modo misto.
Você pode usar /CLRIMAGETYPE para especificar um nível inferior de verificabilidade, se isso é o que você precisa.
No .NET 4.5, /CLRIMAGETYPE oferece suporte a uma opção SAFE32BITPREFERRED. Isso define (no cabeçalho PE da imagem) sinalizadores que indicam que os objetos MSIL são seguros e podem ser executados em todas as plataformas, mas que ambientes de execução de 32 bits são preferidos. Essa opção permite que um aplicativo seja executado nas plataformas ARM e também especifica que ele deve ser executado em WOW64 de sistemas operacionais de 64 bits, em vez de usar o ambiente de execução de 64 bits.
Quando um .exe que foi compilado usando /clr ou /clr:pure é executado em um sistema operacional de 64 bits, o aplicativo é executado em WOW64, que permite que um aplicativo de 32 bits seja executado em um sistema operacional de 64 bits. Por padrão, um .exe que é compilado com /clr:safe é executado no suporte de 64 bits do sistema operacional. No entanto, é possível que seu aplicativo seguro carregue um componente de 32 bits. Nesse caso, uma execução segura de imagem no suporte de 64 bits do sistema operacional falhará quando carregar o aplicativo de 32 bits. Para garantir que uma imagem segura continue sendo executada quando é carregada em um componente de 32 bits em um sistema operacional de 64 bits, use a opção /CLRIMAGETYPE:SAFE32BITPREFERRED. Se seu código não precisar ser executado em plataformas ARM, você poderá especificar a opção /CLRIMAGETYPE:PURE para alterar os metadados (.corflags), marcando-a para ser executada em WOW64 (e substituindo seu próprio símbolo de entrada):
cl /clr:safe t.cpp /link /clrimagetype:pure /entry:?main@@$$HYMHXZ /subsystem:console
Para obter informações sobre como determinar o tipo de imagem de CLR de um arquivo, consulte /CLRHEADER.
Para definir esta opção do vinculador no ambiente de desenvolvimento do Visual Studio
Abra a caixa de diálogo Páginas de Propriedade do projeto. Para obter detalhes, consulte Como abrir páginas de propriedade do projeto.
Expanda o nó Propriedades de Configuração.
Expanda o nó Vinculador.
Selecione a página de propriedades Avançadas.
Altere a propriedade de Tipo de Imagem CLR.
Para definir essa opção de vinculador por meio de programação
- Consulte CLRImageType.