L'Obtention De Microsoft.jet.oledb.4.0 ou microsoft.ace.oledb.12.0 à travailler sur une version 64 bits de Windows 7 machine
J'ai une application qui a été construit sur un Windows XP 32 bits de la machine. L' .fichier exe de l'application n'a pas de problème en cours d'exécution sur XP 32 Bits machines. Cependant, il ne fonctionnera pas sur un Windows 7 64 bits machine. Quand j'essaie de le lancer sous Windows 7, j'obtiens l'erreur suivante:
Microsoft.jet.oledb.4.0 fournisseur n'est pas enregistré sur l'ordinateur local.
J'ai lu quelque part que Microsoft.Jet.Oledb.4.0 ne peut pas être utilisé sur 32 bits machines. Donc, j'ai changé la chaîne de connexion dans mon fichier de config pour avoir le fournisseur de données mis à microsoft.ace.oledb.12.0. J'ai publié mon epe et essayé de l'exécuter sur la machine Windows 7. J'ai eu l'erreur suivante:
Microsoft.ace.oledb.12.0 n'est pas enregistré sur la machine locale.
Ma demande a été converti à partir de Visual Studio 2005 - 2010 et est programmé en c#.
Des suggestions?
Merci!
Vous devez vous connecter pour publier un commentaire.
100 % Solution de travail
Lorsque vous exécutez votre .NET Application – et je sais que c' – sur votre x64 boîte, c'est parce que Microsoft ne prend pas en charge le JET sur les versions 64 bits de Windows en dehors de Windows 2003.
Alors, que faire?
Simple, vous devez vous assurer que l'assemblage est écrit ciblage "x86", plutôt que "any CPU" ou " x64 " dans le Gestionnaire de Configuration, de reconstruire les assemblées et vous devriez être bon d'aller 🙂
Jet DB (MS Access, AKA
Microsoft.Jet.OLEDB.4.0
) est disponible uniquement en 32 bits. Il n'y a pas de version 64 bits. Vous avez pour objectif deWin32
plate-forme, ou de passer à une autre base de données.UPD. Semble être couverts par un précédent post: Microsoft.Jet.OLEDB.4.0' fournisseur n'est pas enregistré sur la machine locale
Comme pour "ACE" vous avez peut-être besoin d'un autre pilote à installer:
Win32
etx86
platfroms/cibles sont synonymes dans votre cas.Par défaut .NET applications sont configurés pour s'exécuter que soit 32 bits ou 64 bits, les applications, en fonction de l'architecture du système d'exploitation détecté lors de l'exécution.
Toutefois, Microsoft.Jet.OLEDB.4.0 n'est pas disponible en 64 bits, et ne sont pas accessibles par les applications 64 bits.
La solution, est de définir le type de plate-forme dans Visual Studio pour "x86" (32 bits) avant de compiler, de cette façon, il sera toujours courir comme une application 32 bits, même si elle est en cours d'exécution sur un système d'exploitation 64 bits.