Dot-Net
Target 4.5.1 和 Any CPU 在 x64 上以 32 位執行,4.5 以 64 位執行,為什麼?
Visual Studio 目標 4.5.1 和 Any CPU 在 x64 上作為 32 位執行,但是當目標是 4.5 和 Any CPU 時,它將在 x64 系統上作為 64 位執行。4.5.1 中發生了哪些變化以使其在 WOW 模式下執行?
希望這是有道理的…
.NET 4.5.1 中沒有任何改變會影響程序的位數。
一個非常常見的陷阱是程序員過於關注平台名稱。例如,突出顯示在 Build + Configuration Manager 對話框中。該名稱與託管項目無關。它只對根據平台選擇生成不同程式碼的項目類型很重要。C++ 項目。
更糟糕的是預設的平台名稱在不同的 VS 版本之間發生了變化。它一直是 AnyCPU。然後在VS2010中改為x86。這引起了巨大的混亂,所以它在 VS2012 中改回了 AnyCPU。
真正有效的設置是在 C# IDE 的 Project + Properties、Build 選項卡、Platform 目標設置中。對於 VS2012 及更高版本,還有“首選 32 位”複選框。僅對於EXE項目,它首先執行並鎖定位。如果您選擇 x86(或勾選該框),則指示 CLR 使用 x86 抖動而不是 x64 抖動。
預設情況下,新項目的“首選 32 位”複選框處於打開狀態。因此,您已經自動發現 AnyCPU 的平台名稱與正在執行的程序的實際位數不匹配。哦快樂。