簡體   English   中英

如果C#代碼是JIT編譯的,為什么我在構建時必須在Visual Studio中選擇目標平台?

[英]If C# code is JIT compiled why do I have to choose a target platform in Visual Studio when building?

我的假設可能是錯的,但我認為JIT編譯的主要優點是允許JIT編譯器為目標機器特定硬件編譯的單個可分發。

如果這是真的,那么為什么在編譯C#時可以指定目標平台?

謝謝。

很多時候你不需要,默認是可以的。 但是,在某些情況下,默認的Any CPU都可能導致問題。 例如,如果您依賴於32位非托管dll。 如果將它保留在Any CPU並嘗試在64位系統上運行它,JITter會將.Net代碼構建為64位可執行文件,然后無法成功加載32位依賴項。 還有其他情況,能夠指定平台是有利的。 另一個例子是當你構建一個你知道將用於將非常大的數據集加載到內存中的應用程序時。 如果這些數據集可能超過32位程序可用的虛擬地址空間,則可能需要指定您正在構建64位應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM