Frage

Ich versuche, eine SpatiaLite von C # System.Data.SQLite Anbieter zuzugreifen. Wenn ich versuche, die SpatiaLite Erweiterung zu laden, habe ich immer das

System.Data.SQLite.SQLiteException: SQLite error
The specified module could not be found.

Fehler, auch wenn die DLL spatialite wird in das Verzeichnis ist kopiert. Ich habe sogar versucht, den absoluten Pfad zum DLL angibt, aber ohne Erfolg.

Hier ist der Code:

string connectionString = @"Data Source=D:\MyStuff\projects\OsmUtils\trunk\Data\Samples\DB\osm.sqlite";
using (SQLiteConnection connection = new SQLiteConnection (connectionString))
{
    connection.Open();

    using (SQLiteCommand command = connection.CreateCommand())
    {
        command.CommandText = @"SELECT load_extension('libspatialite-1.dll');";
        command.ExecuteScalar();
    }
    ...

Link ich den Eindruck, dies sollte funktionieren .

Vielen Dank im Voraus

War es hilfreich?

Lösung

Nun dank sqlite3.exe Kommandozeilen-Tool, habe ich herausgefunden habe, dass es einige zusätzliche DLLs für diese benötigt auszuführen:

  • libproj-0.dll
  • libgeos-3-1-1.dll
  • libgeos_c-1.dll

Sie können diese auf SpatiaLite Download-Seite . Kopieren Sie sie einfach in das Verzeichnis ist.

UPDATE: eine weitere DLL erforderlich ist libiconv2.dll

Andere Tipps

Ich hatte genau das gleiche Problem in Java . Ich rief System.load () für alle abhängigen DLLs und alles funktioniert wie ein Weltmeister!

  • libproj-0.dll
  • libgeos-3-1-1.dll
  • libgeos_c-1.dll
  • libiconv2.dll
  • libcharset1.dll
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top