<Elemento useLegacyJit>

Determina se o Common Language Runtime usa o compilador JIT de 64 bits herdado para uma compilação just-in-time.

<configuration>
  <runtime>
    <useLegacyJit>

Syntax

<useLegacyJit enabled=0|1 />

O nome do elemento useLegacyJit diferencia maiúsculas de minúsculas.

Atributos e elementos

As seções a seguir descrevem atributos, elementos filho e elementos pai.

Atributos

Atributo Descrição
enabled Atributo obrigatório.

Especifica se o tempo de execução usa o compilador JIT de 64 bits herdado.

atributo habilitado

Valor Descrição
0 O Common Language Runtime usa o novo compilador JIT de 64 bits incluído no .NET Framework 4.6 e versões posteriores.
1 O Common Language Runtime usa o compilador JIT de 64 bits mais antigo.

Elementos filho

Nenhum

Elementos pai

Elemento Descrição
configuration O elemento raiz em cada arquivo de configuração usado pelos aplicativos do Common Language Runtime e .NET Framework.
runtime Contém informações sobre opções de inicialização do runtime.

Comentários

Começando com .NET Framework 4.6, o Common Language Runtime usa um novo compilador de 64 bits para compilação JIT (Just-In-Time) por padrão. Em alguns casos, isso pode resultar em uma diferença no comportamento do código do aplicativo que foi compilado pelo JIT pela versão anterior do compilador JIT de 64 bits. Ao definir o atributo enabled do elemento <useLegacyJit> como 1, você pode desabilitar o novo compilador JIT de 64 bits e, em vez disso, compilar seu aplicativo usando o compilador JIT herdado de 64 bits.

Observação

O elemento <useLegacyJit> afeta somente a compilação JIT de 64 bits. A compilação com o compilador JIT de 32 bits não é afetada.

Em vez de usar uma configuração de arquivo de configuração, você pode habilitar o compilador JIT herdado de 64 bits de duas outras maneiras:

  • Configurar uma variável de ambiente

    Defina a variável de ambiente COMPLUS_useLegacyJit como 0 (use o novo compilador JIT de 64 bits) ou 1 (use o compilador JIT de 64 bits mais antigo):

    COMPLUS_useLegacyJit=0|1  
    

    A variável de ambiente tem escopo global, o que significa que afeta todos os aplicativos executados no computador. Se definido, ele pode ser substituído pela configuração do arquivo de configuração do aplicativo. O nome da variável de ambiente não diferencia maiúsculas de minúsculas.

  • Adicionando uma chave do Registro

    Você pode habilitar o compilador JIT herdado de 64 bits adicionando um valor REG_DWORD à chave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework ou HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework no Registro. O valor é chamado useLegacyJit. Se o valor for 0, o novo compilador será usado. Se o valor for 1, o compilador JIT herdado de 64 bits estará habilitado. O nome do valor do Registro não diferencia maiúsculas de minúsculas.

    Adicionar o valor à chave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework afeta todos os aplicativos em execução no computador. Adicionar o valor à chave HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework afeta todos os aplicativos executados pelo usuário atual. Se um computador estiver configurado com várias contas de usuário, somente os aplicativos executados pelo usuário atual serão afetados, a menos que o valor seja adicionado às chaves do Registro para outros usuários também. Adicionar o elemento <useLegacyJit> a um arquivo de configuração substitui as configurações do Registro, se elas estiverem presentes.

Exemplo

O arquivo de configuração a seguir desabilita a compilação com o novo compilador JIT de 64 bits e, em vez disso, usa o compilador JIT de 64 bits herdado.

<?xml version ="1.0"?>  
<configuration>  
  <runtime>  
    <useLegacyJit enabled="1" />  
  </runtime>  
</configuration>  

Confira também