'Microsoft.Ass.OLEDB.12.0' - provider ist nicht angemeldet, aber es ist
Kurz und bündig:
- app funktioniert auf x86-Maschine, aber nicht auf x64 (habe versucht, auf einen Server 2008 und einen Windows 8)
- Microsoft Access Database Engine 2010 bereits installiert (auch Microsoft Office 2007 Access Database Engine installiert ist)
- MS Office nicht installiert
- bestätigt die Existenz von C:\Program Files (x86)\Common Files\microsoft shared\OFFICE12\ACEOLEDB.DLL
Code:
string conn = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=Northwind;Integrated Security=SSPI;";
OleDbConnection _connOle = new OleDbConnection(conn);
Irgendwelche Ideen, was ich tun sollte, um diese app zu arbeiten, auf die x64-Maschinen? Danke!
Haben Sie die 32-bit-2007-und die 64-bit-Jahr 2010? Denn das ist, was Sie brauchen.
Interessant. Ich erkannte, dass ich nicht die Einstellung der Zielplattform auf x86, also einmal hab ich das richtig der Fehler ging Weg. Ich aber halte Ihre Antwort in den Sinn.
Interessant. Ich erkannte, dass ich nicht die Einstellung der Zielplattform auf x86, also einmal hab ich das richtig der Fehler ging Weg. Ich aber halte Ihre Antwort in den Sinn.
InformationsquelleAutor Mossi | 2013-03-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denken kann von zwei Szenarien, die erklären könnten, Ihr Problem ist:
Ihrem C# - Projekt zum Ziel, die 64-bit-und 32-bit Plattformen und die 64-bit-Maschine hat nur die 32-bit version der Access-Database-Engine installiert. Der Verweis fehl, weil das Programm läuft als 64-bit aber die Maschine fehlt
C:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL
Ihrem C# - Projekt-Ziel 32-bit-Plattformen (nur x86) und 64-bit-Maschine hat nur die 64-bit version der Access-Database-Engine installiert. Der Verweis fehl, weil das Programm läuft als 32-bit-aber die Maschine fehlt
C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\ACEOLEDB.DLL
Beachten Sie, dass der installer für die 64-bit version der Access-Database-Engine installiert nur die 64-bit-version, nicht beide.
InformationsquelleAutor Gord Thompson
Obwohl die Frage bereits beantwortet wurde, hier ist, was die Dinge fixiert, die für mich nach verbringen viele Stunden an dem problem.
Ich verwendet, Process Monitor, um herauszufinden, welche registry-Schlüssel wurde gesucht.
Es war
HKEY_CLASSES_ROOT\Microsoft.ACE.OLEBD.12.0
.In meinem Fall war dieser Schlüssel fehlt, trotz "Microsoft Access database engine 2010" werden aufgelistet in " Programme und Funktionen.
Zusätzlich die Datei
ACEOLEDB.DLL
bereits inC:\Program Files\Common Files\Microsoft Shared\OFFICE14\
.Neuinstallation von "Microsoft Access Database Engine 2010 Redistributable" beenden ohne Anzeige-Fehler, aber Windows-Ereignisprotokoll angezeigt ein problem, und sucht bei der Installation der Protokoll-Datei, es scheint, dass es eine version mismatch ("eine Weitere version dieses Produkts ist bereits installiert").
Also, ich deinstalliert "Microsoft Access database engine 2010" von "Programme und Funktionen", und dann neu installiert. Jetzt ist es installiert "ok".
Dies führte in der registry Schlüssel
HKEY_CLASSES_ROOT\Microsoft.ACE.OLEBD.12.0
Hinzugefügt werden soll, und mein Exemplar vonACEOLDBD.DLL
ersetzt, die mit einer früheren version (14.0.7011.1000 von 14.0.7159.5000).InformationsquelleAutor mearle