Сборку .net можно откомпилировать как x86, x64 и AnyCPU (Itanium я трогать не собираюсь).
Вот ни как не могу понять тайный смысл такого обширного выбора. Почему не оставить AnyCPU, ведь CLR ставится на определенную систему, разрядность которой ему известна. В результате при запуске сборки он может откомпилировать под текущую платформу. Зачем же разработчики предусмотрели возможность явно указывать определенную платформу? В каких случаях это реально полезно?