<useLegacyJit> 元素

決定通用語言執行平台是否針對 Just-In-Time 編譯使用舊版 64 位元 JIT 編譯器。

<設定>
  <執行階段>
    <useLegacyJit>

Syntax

<useLegacyJit enabled=0|1 />

專案名稱 useLegacyJit 會區分大小寫。

屬性和元素

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

屬性

屬性 描述
enabled 必要屬性。

指定執行階段是否使用舊版 64 位元 JIT 編譯器。

已啟用的屬性

描述
0 Common Language Runtime 使用包含在 .NET Framework 4.6 和更新版本中的新 64 位 JIT 編譯程式。
1 通用語言執行平台使用較舊的 64 位元 JIT 編譯器。

子元素

父元素

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

備註

從 .NET Framework 4.6 開始,Common Language Runtime 預設會針對 Just-In-Time (JIT) 編譯使用新的 64 位編譯器。 在某些情況下,這可能會導致與舊版 64 位元 JIT 編譯器所編譯的應用程式程式碼行為有所差異。 藉由將 <useLegacyJit> 元素的 enabled 屬性設定為 1,您可以停用新的 64 位元 JIT 編譯器,改用舊版 64 位元 JIT 編譯器編譯您的應用程式。

注意

<useLegacyJit> 元素只會影響 64 位元 JIT 編譯。 使用 32 位元 JIT 編譯器的編譯不會受到影響。

除了使用組態檔設定,您可以使用其他兩種方式來啟用舊版 64 位元 JIT 編譯器:

  • 設定環境變數

    COMPLUS_useLegacyJit 環境變數設定為 0 (使用新的 64 位元 JIT 編譯器) 或 1 (使用較舊的 64 位元 JIT 編譯器):

    COMPLUS_useLegacyJit=0|1  
    

    環境變數具有「全域範圍」,這表示它會影響電腦執行的所有應用程式。 透過設定可以由應用程式組態檔設定覆寫。 環境變數名稱不區分大小寫。

  • 新增登錄機碼

    您可以將新增一個 REG_DWORD 值至登錄的 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFrameworkHKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework 機碼,以啟用舊版 64 位元 JIT 編譯器。 值的名稱為 useLegacyJit。 如果值為 0,則會使用新的編譯器。 如果值為 1,則會啟用舊版 64 位元 JIT 編譯器。 登錄值名稱不區分大小寫。

    將值新增至 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework 索引碼會影響電腦執行的所有應用程式。 將值新增至 HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework 索引碼會影響目前使用者執行的所有應用程式。 如果電腦已設定多個使用者帳戶,則僅有目前使用者執行的應用程式會受到影響,除非此值也會新增至其他使用者的登錄機碼。 將 <useLegacyJit> 元素新增至組態檔會覆寫登錄設定,如果登錄設定存在的話。

範例

下列程式碼會停止以新版 64 位元 JIT 編譯器進行編譯,改用舊版 64 位元 JIT 編譯器。

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

另請參閱