Kolejna zabawna sytuacja - pewna aplikacja dotNET’owa działała dziwnie na 64-bitowym systemie, a tymczasem na 32-bitowej maszynie ta sama aplikacja działała bez problemów. Jedyna różnica to inne wersje klientów ODBC na tych systemach, które po kilku testach okazały się być przyczyną całego zła.
Pojawił się pomysł by odpalić aplikacje na 64 bitowym systemie ale w trybie 32 bit - poniżej krótkie HOWTO jak to osiągnąć:

  • potrzebujemy narzędzia corflags.exe które pozwoli oznaczyć nam binarkę jako 32-bitową, do pobrania tutajexternal link a instrukcja jej użycia tutajexternal link .
  • Instalujemy Windows SDK i zaznaczamy wyłącznie .NET Development Tools w kategorii Developer Tools / Windows Development Tools
  • Odpalamy CMD i w nim CorFlags z lokalizacji: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin (przynajmniej u mnie):
cd C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\
CorFlags.exe c:\sciezka\do\pliku.exe /32BIT+

Tyle - aplikacja uruchomiła się bez problemu jako 32 bitowa i korzystała z 32 bitowego ODBC.

Źródła

http://stackoverflow.com/questions/10945664/run-anycpu-as-32-bit-on-64-bit-systemsexternal link
http://stackoverflow.com/questions/242304/where-should-i-download-corflags-exe-fromexternal link