In addition to the solution by Mehdi and important note by Simon:
You cannot mix up different
instruction-set architectures in one process. Supported are two 64-bit instruction-set architectures: Itaniun (IA-64,
http://en.wikipedia.org/wiki/Itanium[
^];) and x86-64 (
http://en.wikipedia.org/wiki/X86-64[
^]) as well as 32-bit (x86), which is provided on 64-bit versions of Windows via WoW64 (
http://en.wikipedia.org/wiki/WOW64[
^]). Both 64-bit architecture are incompatible to each other, but x86 on each of 64 versions of Windows is the same, so it's often uses as a common denominator.
If you break this rule, it's worse than just incompatibility: the solution can be built but will crash during run time.
If at least one of the referenced assemblies uses different instruction-set architecture, it will also crash. AnyCPU is interesting: when all assemblies are targeted to AnyCPU, actual instruction-set architecture will be selected by OS, but if an entry assembly is targeted to specific instruction-set architecture, it will make the choice. This is very important feature helping to run and, say, test library assemblies for different machines.
—SA