Прежде чем непосредственно приступить к использованию SQLite в своих проектах, необходимо выбрать и скачать с сайта необходимый дистрибутив провайдера ADO.NET. Разработчикам предлагается довольно большой набор вариантов дистрибутивов, разобраться в которых с наскока довольно непросто, но на самом деле все не так печально:
все дистрибутивы, не имеющие в своем названии слова «static» потребуют наличия Microsoft Visual C++ Runtime Library как на рабочей машине разработчика, так и у конечного пользователя.
дистрибутивы, выполненные в виде инсталлятора, предназначены для использования на машинах разработчика и только в случае необходимости установки компонент для Visual Studio, причем данные компоненты не поддерживаются для бесплатных версий Visual Studio Express.
дистрибутивы, имеющие в своем названии слова «bundle», должны использоваться только в тех случаях, когда по каким-либо причинам файлы библиотеки должны быть установлены в Global Assembly Cache.
хотя формально декларирована обратная совместимость между версиями .NET Framework, разработчики рекомендуют при выборе дистрибутива четко определиться с целевой версией .NET Framework, используемой при разработке своей продукта.
Для обеспечения совместимости между 32-х и 64-х битными средами выполнения приложения, в managed-библиотеке по умолчанию включен режим автоматической подгрузки native-библиотеки нужно битности. Для реализации такой схемы загрузки библиотеки структура файлового каталога конечного приложения должна удовлетворять следующей схеме:
- \App.exe (исполняемый файл вашего приложения)
- \System.Data.SQLite.dll (managed-библиотека провайдера ADO.NET)
- \System.Data.SQLite.Linq.dll (опциональная managed-библиотека провайдера ADO.NET)
- \System.Data.SQLite.EF6.dll (опциональная managed-библиотека провайдера ADO.NET)
- \x86\SQLite.Interop.dll (32-х битная native-библиотека SQLite)
- \x64\SQLite.Interop.dll (64-х битная native-библиотека SQLite)
Ваш мозг уже вспотел? Резюмируем наиболее распространенный сценарий использования библиотеки: выбираем версию .NET Framework, которая будет использована при разработке приложения, для выбранной версии .NET Framework скачиваем архивы версии static, но не bundle, для обоих вариантов битности. Например:
- sqlite-netFx40-static-binary-Win32-2010-1.0.92.0.zip
- sqlite-netFx40-static-binary-x64-2010-1.0.92.0.zip
Из любого из скачанных архивов берем файлы System.Data.SQLite.dll, System.Data.SQLite.Linq.dll, System.Data.SQLite.EF6.dll, а также связанные с ними файлы *.pdb, *.xml, *.config, и добавляем их в проект Visual Studio так, чтобы они попадали в те каталоги, где студия создает скомпилированные файлы проекта. Обычно это каталог \bin\debug или \bin\release. Так же добавляем подкаталоги с именами x86 и x64 и помещаем в них файлы SQLite.Interop.dll соответствующей битности. Добавляем ссылку на библиотеку System.Data.SQLite.dll в раздел References разрабатываемого проекта, а файлах с исходным кодом добавляем директиву using System.Data.SQLite.

продолжение в следующей статье...