How to fix .NET app using Microsoft.Jet.OLEDB.4.0 on Windows 7 64-bit

You are happy Windows 7 user and one day you install an application, which was just fine on Windows XP, Windows Vista, run it and get…

„Microsoft.Jet.OLEDB.4.0′ provider is not registered on the local machine”  (or „Dostawca ‚Microsoft.Jet.OLEDB.4.0′ nie jest zarejestrowany na lokalnym komputerze.” in Polish)

What’s wrong? Microsoft just „forgot” to implement Jet 4.0 in 64-bit mode.

How to fix it?

Run CorFlags.exe tool (available with Windows SDK package) to force app to be run in 32-bit mode (32-bit Jet 4.0 IS implemented)

CorFlags.exe <application exe file> /32BIT+

The side effect is that strong name signature is broken. If you have SNK key file with the private signing key you can re-sign the executable using SN.exe

SN.exe -R <application exe file> <snk file>

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s