Ни один из пакетов SQLite .NET не работает в FSI, даже если ссылается на модуль в проекте fs. Я пробовал System.Data.SQLite, SQLitePCL.raw и Microsoft.Data.Sqlite.SQLite не может выполнить из F # FSI
Если исполняемый файл, который запускает процесс полностью состоит из управляемого кода, он будет работать с родной архитектурой процессора машины, которая будет 64 на 64 в машине. Позже это вызовет сборку, содержащую любой собственный код, скомпилированный для x86 (например, сборку смешанного режима «System.Data.SQLite.dll», сборку встроенного взаимодействия «SQLite.Interop.dll» или «sqlite3.dll», родной библиотеки), чтобы не загружаться, что обычно приводит к выбросу BadImageFormatException.
ошибка брошена обычно выглядит
System.DllNotFoundException: Unable to load DLL 'sqlite3': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
at Microsoft.Data.Sqlite.Interop.NativeMethods.sqlite3_open_v2(IntPtr filename, Sqlite3Handle& ppDb, Int32 flags, IntPtr vfs)
at Microsoft.Data.Sqlite.Interop.NativeMethods.sqlite3_open_v2(String filename, Sqlite3Handle& ppDb, Int32 flags, String vfs)
at Microsoft.Data.Sqlite.SqliteConnection.Open()
at <StartupCode$FSI_0009>[email protected]() in E:\BitSync\NonGitProjects\SQLiteSandbox\Microsoft.DataSandbox\Scripts\Script1.fsx:line 7
Кто-нибудь нашел решение этой проблемы? SQLite отлично работает в компилируемых программах F # и в режиме отладки.
32bit или 64-битной FSI? –
Не знаю, пробовали ли вы это, или если это поможет, но не может навредить упоминанию об этом. Смотрите: [Загрузка собственных DLL-файлов в F # Interactive] (http://christoph.ruegg.name/blog/loading-native-dlls-in-fsharp-interactive.html) –
@GuyCoder Именно это помогло мне заставить его работать несколько недель назад. – TeaDrivenDev