There is no reason to set the Platform to a particular
instruction-set architecture it "Any CPU" works. .NET is based in JIT compilation, so the application will be executed on the platform determined during runtime. Please see:
http://en.wikipedia.org/wiki/Instruction_set[
^],
http://en.wikipedia.org/wiki/Just-in-time_compilation[
^].
You need to use other platforms only when you have at least one assembly or an unmanaged modules compiled to some particular architecture. But in this case, all target platforms should be consistent. For example, you could have all assemblies compiled to "Any CPU", and your entry-level assembly compiled to some particular architecture, because, for example. some unmanaged module is compiled to that. And any other assembly used in application should be compiled as "Any CPU" or to the same architecture. If you have any mismatch in the platforms, it won't work.
Also, you should understand that x86 will work on any of the 64-bit platforms, via WoW64:
http://en.wikipedia.org/wiki/WoW64[
^].
At the same time, the 64-bit platforms are incompatible with each other. There is no just "64-bit" platform, they are different and cannot be mixed up. Please see:
http://en.wikipedia.org/wiki/Itanium[
^],
http://en.wikipedia.org/wiki/X86-64[
^],
http://en.wikipedia.org/wiki/X86[
^].
If "Any CPU" works, use just it and consider your requirement met. :-)
—SA