Uruchamianie aplikacji .NET jako 32-bitowej w 64-bitowym systemie

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 tutaj a instrukcja jej użycia tutaj.
  • 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-systems
http://stackoverflow.com/questions/242304/where-should-i-download-corflags-exe-from

Leave a Reply

Your email address will not be published. Required fields are marked *