В VS2012 (и предыдущих версиях...) вы можете указать целевую платформу при создании проекта. Мое понимание, однако, в том, что С# получает "скомпилированный" для CIL и затем JIT компилируется при запуске в главной системе.
Означает ли это, что единственными причинами для указания целевой платформы являются намеренное ограничение пользователей на запуск программного обеспечения на определенных архитектурах или принудительное выполнение приложения на 32-разрядной машине на 64-битной машине? Я не вижу, что это будет связано с оптимизацией, так как я предполагаю, что это происходит на стадии CIL → Native, которая происходит по принципу "Just-In-Time" в архитектуре хоста?
Эта MS Link, похоже, не предлагает никаких альтернативных объяснений, и я не могу найти никакого предположения о том, что вы должны, например, освободить отдельные 32/64-разрядные версии одного и того же приложения - казалось бы логичным, что компиляция для "anycpu" должна работать так же хорошо, и, опять же, оптимизация будет применяться на этапе JIT.