2016-07-12 17 views
1

Ich habe alle anderen Fragen in Bezug auf diesen Fehler überprüft und keine Übereinstimmung gefunden.Mögliche Auflösung für "'Microsoft.ACE.OLEDB.12.0' Provider ist nicht auf dem lokalen Computer registriert"?

Ich habe eine Visual Studio Windows-Anwendung. Es liest eine Excel-Datei und verarbeitet die Informationen. Funktioniert gut auf meinem Computer und den meisten anderen, aber nicht auf dem neuen Computer (64-Bit-Windows 7). Meine Maschine ist 64-Bit, aber weil ich der Entwickler bin, habe ich eine ziemlich umfangreiche Bibliotheken zum Nachschlagen. Andere Arbeitscomputer sind alle 32-Bit, denke ich. Hier

ist die Codierung, die uns Probleme schenkt - es war ursprünglich ein Jet 4.0 Fehler, dann habe ich die neuere Access-Laufzeit installiert, in der Hoffnung, dass das Problem für die Maschine 64-Bit war -

  Dim m_sConn2 As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 
      "Data Source=" & OpenFileDialog1.FileName.ToString() & ";" & _ 
      "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;"";" 

     Dim conn1 As New System.Data.OleDb.OleDbConnection(m_sConn2) 

     Try 
      conn1.Open() 
     Catch ex As Exception 
      MsgBox(ex.ToString) 
     End Try 

I Die 64-Bit-Version von ACE.OLEDB kann nicht installiert werden, da 32-Bit-Anwendungen vorhanden sind. Es tritt der Fehler "nicht auf der lokalen Maschine registriert" für diese Maschine auf. Wenn ich die Ziel-CPU auf "x86" ändere, können wir auf diese Verbindung zugreifen und die Excel-Datei öffnen, aber dann erhalten wir einen Crystal Reports-Fehler, dass das System die log4net.dll-Datei nicht finden kann, weil 32- Bit-Anwendungen können nicht darauf zugreifen.

1) Gibt es eine Referenz, die ich hinzufügen könnte, würde die "beliebige CPU" oder 64-Bit-Modus die ACE.OLEDB erkennen?

2) Kann ich die 32-Bit-Version von Crystal Reports Runtime auf einer 64-Bit-Maschine installieren, ohne dass es zu einem Durcheinander kommt?

+1

müssen Sie möglicherweise Microsoft Access Datenbankmodul 2010 Redistributable – ElenaDBA

+0

Vielen Dank. Ich habe es versucht. Sieht aus wie die Lösung war, die CRRuntime zu deinstallieren und 32-Bit-Version zu installieren. – PoloHoleSet

Antwort

1

Ich weiß, dass ich meine eigene Frage beantworte, aber für diese Catch-22-Situation konnte ich die 64-Bit-Laufzeitumgebung von Crystal Reports deinstallieren, die 32-Bit-Laufzeitumgebung installieren und meine Anwendung auf x86 ausrichten und alles scheint gut zu spielen.