asp.net core 3.1 sqlite Указанный модуль не найден

У меня проблемы с загрузкой расширения mod_spatialite в sqlite в приложении ASP.NET Core 3.1. Когда я запускаю приведенный ниже код, я получаю следующую ошибку: Ошибка логики SQL. Указанный модуль не может быть найден.

string dbFile = "D:\\Temp\\spatialtest.db";
string connectString = $"Data Source={dbFile};Version=3;";

SQLiteConnection connection = new SQLiteConnection(connectString);
connection.Open();
connection.EnableExtensions(true);
connection.LoadExtension("mod_spatialite");

Я ссылаюсь на System.Data.Sqlite (https://www.nuget.org/packages/System.Data.SQLite/1.0.113.1) из NuGet. Пакеты, которые я использую для загрузки в Spaceite, находятся здесь http://www.gaia-gis.it/gaia-sins/. Я попробовал пакеты из текущей стабильной версии 4.3.0a и новой версии 5.0.0-RC1, бинарные файлы amd64 и x86.

Странно то, что когда я копирую код в приложение .NET Core Console или в библиотеку классов .NET Core (CL), а затем ссылаюсь на CL из консольного приложения, он действительно работает.

Я не понимаю, почему он работает в консольном приложении, а не в приложении ASP.NET. Я что-то упускаю? Любая помощь приветствуется!

РЕДАКТИРОВАТЬ: добавлен тестовый проект в Github: https://github.com/RogierB/SQLiteSpatialiteTest


person RogierBa    schedule 12.08.2020    source источник


Ответы (2)


Возможно, в консольном приложении вы используете EF? При установке EF для SQLite будут установлены все необходимые библиотеки.

Попробуйте добавить эту библиотеку

Install-Package SQLitePCLRaw.bundle_e_sqlite3 -Version 2.0.3
person Nick Rimmer    schedule 12.08.2020
comment
Я не использую EF ни в одном из проектов (ASP.NET, консоль, библиотека). Добавил оба пакета (EF и SQLitePCLRaw.bundle_e_sqlite3) сейчас в проект ASP.NET, но я все равно получаю ту же ошибку. - person RogierBa; 12.08.2020
comment
Я добавил в Github тестовый проект: github.com/RogierB/SQLiteSpatialiteTest - person RogierBa; 12.08.2020

Я нашел рабочее решение своей проблемы. Я создал новую папку и добавил все файлы из загрузки gaia (http://www.gaia-gis.it/gaia-sins/) в эту папку. Следующее, что я сделал, - это добавил вновь созданную папку в переменную окружения PATH для моей системы (Win 10). Перезапустил Visual Studio, и теперь он запускается, и мне даже больше не нужно иметь DLL в проекте / решении, потому что он будет принимать DLL из PATH

person RogierBa    schedule 13.08.2020