The executable may be compiled with flags indicating it may only run in a certain "bitness". You can change these flags using the coreflags.exe utility that is available in every .Net SDK.
The sdk for .net 2.0 can be found here.
There are 3 mainstream modes to configure a DLL or executable:
- AnyCPU (will jit to whatever is available, preferring 64bit): /32BIT+ /ILONLY+
- x86: (disables 64bit compilation) /32BIT+ /ILONLY-
- x64: (disables 32bit compilation) /32BIT- /ILONLY-
Usually AnyCPU is the best choice, unless you are doing COM interop or in another way calling native code, in which case the bitness should be the same as what the native code has been compiled for.
Probably you should not try changing the bitness of a 3rd party DLL, since if it isn't the default "AnyCPU", there probably is a good reason (usually native satellite DLL's that may do anything, for example generate PDF files or use other native 3rd party libraries).
Edit:
Following IBM's advice to disable the 64bit runtime is quite an overkill, you can do the same for only this application by using the coreflags utiluity while leaving the rest of the framework and all depending applications intact.
Revert the change by running:
C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Ldr64.exe Set64