2017/04/07

Console Application在64bit機器上卻以32bit執行?

可能有人有疑問, 我建置時我明明"方案平台"選擇的是"Any CPU", 但為什麼在64bit的機器上, 卻沒有 預設走64bit呢?

以下程式為例:

using System;

namespace TestConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            if (IntPtr.Size == 4)
            {
                Console.WriteLine("現在跑在x86機器上");
            }
            else if (IntPtr.Size == 8)
            {
                Console.WriteLine("現在跑在x64機器上");
            }

            Console.Read();
        }
    }
}

印出的結果:
現在跑在x86機器上

但是我明明是64位元的機器啊~~

原來, Visual Studio的組態設定上, 預設會將"建議使用32位元" 打勾, 建置時就變成以32位元執行了, 所以, 如果日後有新增新的 組態設定 (e.g. QA, Prod環境), 記得也要檢查這部份哦

軟體工程的重要的指標