共用方式為


<useLegacyJit> 要素

判斷通用語言執行時是否使用舊有的 64 位元 JIT 編譯器進行即時編譯。

<組態>
   <運行時間>
     <useLegacyJit>

語法

<useLegacyJit enabled=0|1 />

元素名稱 useLegacyJit 是區分大小寫的。

屬性和元素

下列章節說明屬性、子元素和父元素。

Attributes

Attribute Description
enabled 必要屬性。

指定執行時是否使用舊有的 64 位元 JIT 編譯器。

啟用屬性

價值觀 Description
0 通用語言執行環境使用.NET Framework 4.6及更新版本中包含的新64位元JIT編譯器。
1 通用語言執行時使用較舊的 64 位元 JIT 編譯器。

子專案

None

父元素

元素 Description
configuration 通用語言執行平台和 .NET Framework 應用程式所使用之每個組態檔中的根項目。
runtime 包含有關執行階段初始化選項的資訊。

備註

從 .NET Framework 4.6 開始,通用語言執行環境預設使用新的 64 位元編譯器進行 Just-In-Time(JIT)編譯。 在某些情況下,這可能導致與先前版本 64 位元 JIT 編譯器 JIT 編譯的應用程式程式碼在行為上有所不同。 透過將元素屬性<useLegacyJit>enabled1,你可以停用新的 64 位元 JIT 編譯器,改用舊有的 64 位元 JIT 編譯器編譯你的應用程式。

備註

<useLegacyJit> 元素僅影響 64 位元 JIT 編譯。 使用 32 位元 JIT 編譯器編譯則不受影響。

你可以用兩種方式啟用舊有的 64 位元 JIT 編譯器,而非使用設定檔設定:

  • 設定環境變數

    將環境變數設定 COMPLUS_useLegacyJit0 (使用新的 64 位元 JIT 編譯器)或 1 (使用舊的 64 位元 JIT 編譯器):

    COMPLUS_useLegacyJit=0|1
    

    環境變數具有 全域範圍,意即影響機器上所有執行的應用程式。 若設定為此,該應用程式的設定檔設定可覆蓋此功能。 環境變數名稱不區分大小寫。

  • 新增登錄檔鍵

    你可以透過在登錄檔中的 or HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFrameworkHKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework 鍵中加入REG_DWORD值來啟用舊有的 64 位元 JIT 編譯器。 該值被命名為 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>

另請參閱