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 en0
(use el nuevo compilador JIT de 64 bits) o1
(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 claveHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
o en el RegistroHKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework
. El valor se denominauseLegacyJit
. 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 claveHKEY_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>