The GAC assemblies of the proper version of the
instruction-set architecture are referenced if you add a reference is a correct way, via the tag ".NET" of the "Add Reference" Window. You should never try to "find" it and add reference by the file name of the assemblies executable module (PE file). The referenced to GAC assemblies are based on
strong names, not locations of the file.
Please see:
http://en.wikipedia.org/wiki/Global_Assembly_Cache[
^],
http://en.wikipedia.org/wiki/Strong_key[
^],
http://msdn.microsoft.com/en-us/library/wd40t7ad.aspx[
^],
http://msdn.microsoft.com/en-us/library/yf1d93sz.aspx[
^].
All 64-bit versions of Windows can also host x86 (32-bit applications), via WoW64:
http://en.wikipedia.org/wiki/WOW64[
^].
You can always build an x86 version of your software which will run on "real" x86 or via WoW64. All you need to do is to set target CPU version to "x86" explicitly for the entry-point assembly (*.EXE, usually), leaving all other assemblies to be compiled to "AnyCPU" target. All you need to know is: you should never allow mixing assemblies compiled to different instruction-set architectures in one process. It will never work.
See also:
http://en.wikipedia.org/wiki/Instruction_set[
^].
—SA