Ermitteln des Fehlers "Der Anbieter 'VFPOLEDB.1' ist selbst nach der Installation und Registrierung des Providers nicht auf dem lokalen Computer registriert"

7

Alles klar, also habe ich einen Windows-Dienst mit einem FileSystemWatcher , der einen Ausgabeordner für einige Visual FoxPro-Datenbankdateien überwacht. Und es nutzt den VFPOLEDB.1 -Provider, um diese Dateien zu lesen. Ich kann diesen Anbieter nicht verlassen, da er in der Produktion verwendet wird.

Allerdings musste ich diese Anwendung nie zuvor unterstützen, deshalb ist meine Entwicklungsumgebung nicht dafür eingerichtet. Hier ist meine Umgebung:

  • Windows 7 x64
  • Visual Studio 2005
  • .NET 2.0 Windows-Dienst

Also, als ich anfing, den Fehler zu bekommen, dachte ich mir, dass ich den Anbieter überhaupt nicht hatte, und ich hatte Recht. Also, ich heruntergeladen und installiert von hier .

Ich fuhr dann fort, die Dateien im Ordner wieder zu löschen, aber ich habe den gleichen Fehler.

Ich dachte, weil es ein x64 Rechner ist, könnte es Probleme mit der Registrierung geben, da es wahrscheinlich in SysWOW64 abgelegt wurde, und es war wie erwartet, also habe ich diesen Befehl ausgeführt:

%Vor%

und es wurde gesagt, dass es erfolgreich registriert wurde (was bedeutet nichts über LOL), aber ich habe die Dateien wieder eingefügt - selbe Fehler.

Ich habe meinen Rechner noch nicht neu gestartet, und ich kann, wenn jemand einen zwingenden Grund hat, das Problem ist, aber im Allgemeinen wenn die Assembly ordnungsgemäß mit regsvr32 registriert ist, ist das nicht notwendig. Ich habe mit einer Tonne von COM-Objekten gearbeitet und muss nie neu starten, um zu dem Objekt zu gelangen, solange ich es registriert habe.

Weiß jemand einen anderen Schritt, den ich ausführen muss, um dieses Ding registriert zu bekommen?

    
Mike Perrenoud 28.03.2013, 14:33
quelle

2 Antworten

25

Es ist so registriert, wie es sollte. Es ist Ihre Anwendung, die für AnyCPU-Plattform kompiliert wird.
Im x64-Betriebssystem erzeugt dies 64-Bit-Code und 64-Bit-Code konnte nicht auf 32-Bit-Treiber zugreifen.

Ändere deine Platform auf x86 und es wird dir gut gehen.

BEARBEITEN
Zwei Jahre später gibt es zu dieser Antwort noch etwas hinzuzufügen. Jetzt mit Visual Studio 2013 die Käse wurde verschoben . Der verlinkte Artikel erklärt ausführlich, wie die Standardeinstellungen des Compilers geändert wurden. Die AnyCPU -Ziel-CPU mit Prefer 32 bit bedeutet, dass Ihre Anwendung als 32bit-App auch in x64bit-Betriebssystemen funktioniert und praktisch keine Räume für x64-Anwendungen übrig lässt, sofern nicht ausdrücklich erforderlich.

Mit dieser neuen Konfiguration wird es auch wichtig, sich daran zu erinnern, was in den Kommentaren von Mark Berry gepostet wird. Wenn Ihre App (jetzt 32bit) in einer IIS 64bit-Umgebung arbeiten soll, müssen Sie Application Pool mit Enable 32 bit Applications

festlegen     
Steve 28.03.2013, 14:41
quelle
3

Ich habe eine Desktop-App (Win7 x64 VS 2015) - und bekam immer den gleichen Fehler. Ich änderte platform Ziel zu x86, installierte MSI als admin etc - tat alles, was ich googlen konnte - und kein Glück. Was mir geholfen hat, ist die Installation von MSI für Jeder anstelle von Nur ich - einer der letzten Assistenten im Setup.

    
avs099 19.04.2016 21:48
quelle