Ember fia ugyebár programozás közben számos szolgáltatást használ, ezek közül egyik a Microsoft.Jet.OLEDB.4.0 is. Régóta jól mûködik az OLEDB és ezen keresztül kezelünk számos dolgot (pl. XLS fájlokat is). A napokban egy .NET 2.0 alatt készült alkalmazásunkat akartam a Vista x64-n futtatni, és érdekes dologra lettem figyelmes, a gép a szokott fájlmegnyitás helyett egy szép nagy hibajelzést adott:
The ‘Microsoft.Jet.OLEDB.4.0’ provider is not registered on the local machine
Néztem ki a fejembõl bután, mi is történt. Némi utánolvasást követõen az alábbiakat találtam:
The ‘Microsoft.Jet.OLEDB.4.0’ provider is not registered on the local machine on my Vista 64 bit machine today. I made no code changes since I run it on a 32 bit OS.
Mit is kezdhetünk ezzel a problémával? A legegyszerûbb, ha a fordításkor fixen megmondjuk, hogy ez a program x86-os üzemmódban fusson. Miképp kell ezt megtennünk?
- Töltsük be Visual Studio-ba a projektünket
- Válasszuk ki a projekt fájl tulajdonságait
Ennek hatására az alábbi ablak jelenik meg:
- Válasszuk ki a Build fület
- Állítsuk be a Platform Target-et x86-ra
- Fordítsuk újra az alkalmazást
Ezt követõen a programunk szépen fog mûködni. A kérdés már csak az, hogy miért is nem lehet ezt x64 alatt simán futtatni? Miért nem tudja ezt a fõ zászlóshajók egyike sem (Vista x64, Windows2008 Server) futtatni?
Merõ luxus és felvágás csak ez az x64!
Lapzárta után érkezett:
Amúgy az MS KB-k között van egy cikk ami sokak szerint megoldás: http://support.microsoft.com/kb/278604