The output MSIL code is identical whether you select MSIL (AnyCpu), x86 or x64 output. The only difference is a flag in the header stating which platform it was compiled for. EXE files (I'm not sure about DLLs) carry a PE64 header indicating it can only be run on the 64-bit OS. The actual processor-specific code is compiled at runtime by the JIT compiler. A class library marked MSIL (AnyCpu) can be loaded into a 32-bit or a 64-bit process. The only reason to mark it as one of the others is if you've written any code which assumes the size of a pointer, or uses any APIs that are different between the two platforms. The only difference between the two versions of csc.exe is that the version in Framework64 is itself a 64-bit executable. Either version can produce code marked with any of the three platform types.
DoEvents: Generating unexpected recursion since 1991