Frage

Ich versuche, Daten aus DBF-Dateien in mein Programm mit C # zu ziehen. Ich bin mit dem Visual FoxPro OLE DB Provider. Es funktioniert auf meinem lokalen Rechner, aber ich möchte mein Programm in dll verpacken, die Kunden nutzen können. Das Problem ist, wenn sie das Programm von ihrem Computer ausgeführt werden, sagt es, dass der Visual FoxPro OLE DB Provider nicht auf ihrem Computer registriert ist. Gibt es eine Möglichkeit, dies zu nutzen, ohne den Client auf ihrem Computer des Visual FoxPro OLE DB Provider installieren zu müssen?

War es hilfreich?

Lösung

Die kurze Antwort ist nein ... die lange Antwort lautet:

Ich glaube nicht, dass Sie tun können, dass ohne auf jedem Zielcomputer das Visual FoxPro OLE DB Provider zu installieren. Auch wenn Sie COM zu verwenden versucht Interop würden Sie noch die ursprüngliche DLL installieren und registrieren - VFPOLEDB.dll

Bei weitem der einfachste Weg, um dieses Problem zu lösen, ist die FoxPro OLEDB-Treiber-Paket von Microsoft installieren und an die Benutzer verteilen.

Wenn Sie möchten, dass Ihr eigenes MSI-Paket für Ihre Bibliothek Installation rollen können Sie manuell installieren und die fehlenden dll registrieren.

manuell einen .dll mit regsvr32.exe in einem MSI-Paket registrieren:

Öffnen Sie zunächst Ihr WSI Projekt und gehen Sie auf die MSI-Skript.

Fügen Sie eine 'Execute Program von Destination' benutzerdefinierte Aktion nach InstallFinalize in der Execute Immediate Tab.

Wenn das 'Programm ausführen Von Destination' erscheint Dialog eingeben:

Custom Action Name: <registerdll>
Working Directory: SystemFolder
EXE and Command Line: Enter the full path to regsvr32.exe 
and the full path to .DLL.

(usually ..\Program Files\Common Files\System\Ole DB\vfpoledb.dll)

Wenn Sie die Option / s auf die Befehlszeile hinzufügen, wie [Systemfolder] regsvr32.exe / s die Registrierung der DLL ohne Eingreifen des Benutzers geschehen soll.

Andere Tipps

Ich lief in ein ähnliches Problem, wenn ich so auf meinem 64-Bit-Vista-Rechner zu entwickeln. Ich fand heraus, dass, um die Microsoft Jet OLEDB oder FoxPro OLE DB-Provider verwenden ich die Eigenschaften meines .NET-Projekt gesetzt hatte speziell 32-Bit-Prozessoren zum Ziel, da es keine 64-Bit-Version dieser Anbieter ist.

Wie auch immer, nicht sicher, ob dies ein Teil des Problems mit den Zielmaschinen mit Ihrem libary ist aber dachte, ich würde es darbringen.

Brian

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top