Develop project to the "AnyCPU" target, this is the best. Then it will work on any CPU architecture.
Strictly speaking, there is no such thing as "32-bit project" or "64-bit project" (and especially 64-bit, because x86-64 and IE64 are two different incompatible architectures, so there is even just 64-bit target).
The only reason to specify platform-specific target (not "AnyCPU") could be the use of some native (non-managed) module used in you assembly. And even if you use such module, in many cases working around the problem without breaking "AnyCPU" can be possible. You can have this module in version for different platform and not use it directly. Instead, you can P/Invoke cross-platform
LoadLibrary
and
GetProcAddress
and dynamically load appropriate version of the module, depending on the CPU architecture detected during runtime. This technique is pretty advanced, so I don't want to waste time for detailed explanation, unless you have some qualified follow-up questions on the topic.
It's also good to be aware of WoW64, which allows using x86 modules (32-bit) for different versions of OS on 64-bit CPU:
WoW64 — Wikipedia, the free encyclopedia[
^].
—SA