<useLegacyJit> Элемент

Определяет, использует ли среда-компилятор устаревшей 64-разрядной JIT для JIT-компиляции.

<configuration>
  <runtime>
    <useLegacyJit>

Синтаксис

<useLegacyJit enabled=0|1 />

Имя элемента useLegacyJit учитывает регистр.

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Attributes

Свойство Description
enabled Обязательный атрибут.

Указывает, использует ли среда выполнения устаревший 64-разрядный компилятор JIT.

атрибут включено

Ценность Description
0 Среда использует новый 64-разрядный компилятор JIT, включенный в .NET Framework 4.6 и более поздних версий.
1 Среда использует более старый 64-разрядный компилятор JIT.

Дочерние элементы

None

Родительские элементы

Элемент Description
configuration Корневой элемент в любом файле конфигурации, используемом средой CLR и приложениями .NET Framework.
runtime Содержит сведения о параметрах инициализации среды выполнения.

Замечания

Начиная с .NET Framework 4.6 среда CLR использует новый 64-разрядный компилятор для компиляции JIT-In-Time по умолчанию. В некоторых случаях это может привести к разнице в поведении от кода приложения, который был скомпилирован в предыдущей версии 64-разрядного компилятора JIT. Задав enabled атрибут <useLegacyJit> элемента 1, можно отключить новый 64-разрядный компилятор JIT и скомпилировать приложение с помощью устаревшего 64-разрядного компилятора JIT.

Замечание

Элемент <useLegacyJit> влияет только на 64-разрядную компиляцию JIT. Компиляция с 32-разрядным компилятором JIT не влияет.

Вместо использования параметра файла конфигурации можно включить устаревший 64-разрядный компилятор JIT двумя другими способами:

  • Указание переменной среды

    Задайте для переменной COMPLUS_useLegacyJit0 среды значение (используйте новый 64-разрядный компилятор JIT) или 1 (используйте более старый 64-разрядный компилятор JIT):

    COMPLUS_useLegacyJit=0|1
    

    Переменная среды имеет глобальную область, что означает, что она влияет на все приложения, выполняемые на компьютере. Если задано, его можно переопределить параметром файла конфигурации приложения. Имя переменной среды не учитывает регистр.

  • Добавление раздела реестра

    Вы можете включить устаревший 64-разрядный компилятор JIT, добавив REG_DWORD значение HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework в реестр или HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework раздел. Значение называется useLegacyJit. Если значение равно 0, используется новый компилятор. Если значение равно 1, устаревший 64-разрядный компилятор JIT включен. Имя значения реестра не учитывает регистр.

    Добавление значения в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework ключ влияет на все приложения, работающие на компьютере. Добавление значения в HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework ключ влияет на все приложения, выполняемые текущим пользователем. Если компьютер настроен с несколькими учетными записями пользователей, затрагиваются только приложения, выполняемые текущим пользователем, если только значение не добавляется в разделы реестра для других пользователей. Добавление элемента в <useLegacyJit> файл конфигурации переопределяет параметры реестра, если они присутствуют.

Example

Следующий файл конфигурации отключает компиляцию с новым 64-разрядным компилятором JIT и вместо этого использует устаревший 64-разрядный JIT-компилятор.

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

См. также