Elemento <useLegacyJit>

Determina si Common Language Runtime usa el compilador JIT de 64 bits heredado para la compilación Just-In-Time.

<configuration>
  <runtime>
    <useLegacyJit>

Syntax

<useLegacyJit enabled=0|1 />

El nombre del elemento useLegacyJit distingue mayúsculas de minúsculas.

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Atributo Descripción
enabled Atributo necesario.

Especifica si la ejecución usa el compilador JIT legacy de 64 bits.

Atributo habilitado

Valor Descripción
0 Common Language Runtime usa el nuevo compilador JIT de 64 bits incluido en .NET Framework 4.6 y versiones posteriores.
1 Common Language Runtime usa el compilador JIT de 64 bits anterior.

Elementos secundarios

Ninguno

Elementos primarios

Elemento Descripción
configuration Elemento raíz de cada archivo de configuración usado por las aplicaciones de Common Language Runtime y .NET Framework.
runtime Contiene información sobre las opciones de inicialización del motor en tiempo de ejecución.

Comentarios

A partir de .NET Framework 4.6, Common Language Runtime usa de forma predeterminada un nuevo compilador de 64 bits para la compilación Just-In-Time (JIT). En algunos casos, esto puede dar lugar a una diferencia en el comportamiento del código de aplicación compilado por JIT por la versión anterior del compilador JIT de 64 bits. Al establecer el atributo enabled del elemento <useLegacyJit>en 1, puede deshabilitar el nuevo compilador JIT de 64 bits y, en su lugar, compilar la aplicación mediante el compilador JIT de 64 bits heredado.

Nota

El elemento <useLegacyJit> solo afecta a la compilación JIT de 64 bits. La compilación con el compilador JIT de 32 bits no se ve afectada.

En lugar de usar una configuración de archivo de configuración, puede habilitar el compilador JIT de 64 bits heredado de otras dos maneras:

  • Configuración de una variable de entorno

    Establezca la variable COMPLUS_useLegacyJit de entorno en 0 (use el nuevo compilador JIT de 64 bits) o 1 (use el compilador JIT de 64 bits anterior):

    COMPLUS_useLegacyJit=0|1  
    

    La variable de entorno tiene ámbito global, lo que significa que afecta a todas las aplicaciones que se ejecutan en la máquina. Si se establece, la configuración del archivo de configuración de la aplicación puede invalidarla. El nombre de la variable de entorno no distingue mayúsculas de minúsculas.

  • Establecer una clave del registro

    Puede habilitar el compilador JIT de 64 bits heredado agregando un valor REG_DWORD a la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFrameworko en el Registro HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework. El valor se denomina useLegacyJit. Si el valor es 0, se usa el nuevo compilador. Si el valor es 1, el compilador JIT heredado de 64 bits está habilitado. El nombre del valor de registro no distingue mayúsculas de minúsculas.

    Agregar el valor a la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework afecta a todas las aplicaciones que se ejecutan en la máquina. Agregar el valor a la clave HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework afecta a todas las aplicaciones ejecutadas por el usuario actual. Si una máquina está configurada con varias cuentas de usuario, solo se ven afectadas las aplicaciones ejecutadas por el usuario actual, a menos que también se agregue el valor a las claves del Registro para otros usuarios. Al agregar el elemento <useLegacyJit> a un archivo de configuración, se invalida la configuración del Registro, si están presentes.

Ejemplo

El siguiente archivo de configuración deshabilita la compilación con el nuevo compilador JIT de 64 bits y en su lugar usa el compilador JIT de 64 bits hereado.

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

Consulte también