Мы изменили с sqlite-net на sqlite.net выпуск PCL. Наш проект отлично работал со старым - с выпуском PCL, теперь нам нужно явно объявить нашу платформу, используя.sqlite.net PCL выбрасывает TypeInitalizationException
var conn = new SQLiteConnection(new SQLitePlatformWin32(), Path.Combine(folderPath, dbName));
Но теперь, когда я называю эту линию, мы получаем
первого шанса исключение в типа 'System.TypeInitializationException' произошло в SQLite.Net.Platform.Win32.dll
Дополнительная информация: Инициализатор типа для «SQLite.Net.Platform.Win32.SQLiteApiWin32Internal» сделал исключение.
Внутренний Исключение говорит нам
{ "Не удалось загрузить нативную библиотеку SQLite"}
StackTrace:
на SQLite.Net.Platform.Win32. SQLiteApiWin32Internal.sqlite3_open_v2 (Byte [] filename, IntPtr & db, Int32 flags, IntPtr zvfs)
на SQLite.Net.Platform.Win32.SQLiteApiWin32.Open (Byte [] имя файла, IDbHandle & дБ, Int32 флаги, IntPtr zvfs)
в SQLite.Net.SQLiteConnection..ctor (ISQLitePlatform sqlitePlatform, Струнный DataBasePath , SQLiteOpenFlags openFlags, булевы storeDateTimeAsTicks, IBlobSerializer сериализатору, IDictionary
2 tableMappings, IDictionary
2 extraTypeMappings, IContractResolver распознаватель)на SQLite.Net.SQLiteConnection..ctor (ISQLitePlatform sqlitePlatform, струнного DatabasePath, булевы storeDateTimeAsTicks, IBlobSerializer сериализатором, IDictionary
2 tableMappings, IDictionary
2 extraTypeMappings, IContractResolver резольвер)
Однако sqlite3.dll в папке с приложениями и работает с некруглой версией. Я играл с компиляцией для x86 и x64 и загружал последнюю версию sqlite3.dll для Win32, но все без успеха. Что нам не хватает?
Это было решение - это были файлы dll interop, которые отсутствовали, и после добавления основного пакета в мой проект он также добавил эти файлы. Интересно, что мне не приходилось добавлять файлы в качестве прямой зависимости в моем проекте класса lib (где у меня были файлы pcl sqlite), но в моем проекте gui, который зависит от класса lib, чтобы заставить его работать. – Marwie
Убедитесь, что вы выбрали правильный пакет .Core (x86/x64), а не пакет MSIL .Core. –
В чем разница между SQLitePlatformWin32 и SQLitePlatformGeneric? – batmaci