Ответы пользователя по тегу Базы данных
  • Портирование на Linux с помощью MonoDevelop. Проблемма с NuGet пакетом System.Data.SQLite... в Mono не находит SQLite.Interop.dll. Что делать?

    @tsul
    System.Data.SQLite.dll под Linux должен использовать не SQLite.Interop.dll, а libsqlite3.so
    Т.е.
    1. либо нужен предустановленный пакет sqlite3 (libsqlite3, sqlite3-dev), чтобы библиотека libsqlite3.so была в системных,
    2. либо компилировать исходники sqlite3 на конкретной системе и класть libsqlite3.so.0 рядом с System.Data.SQLite.dll вместо SQLite.Interop.dll.

    В первом случае версия системной библиотеки может быть старее, чем нужна для System.Data.SQLite, могут быть проблемы с новыми фичами. Я делал по второму варианту. Пришлось еще перекомпилировать сам System.Data.SQLite:
    SET MSBUILD_ARGS=/property:UseInteropDll=false /property:UseSqliteStandard=true
    set NETFX35ONLY=1
    call build.bat ReleaseManagedOnly

    хотя наверное можно было использовать Mono dllmap.
    Ответ написан
    Комментировать