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