Обновление System.Data.SQLite

В .NET для работы с SQLite в качестве одного из решений используется библиотека System.Data.SQLite, которая выступает в роли ADO.NET адаптера и обеспечивает поддержку всех новомодных штук (Entity Framework, например). Первоначально разрабатывалась она вот этой вот фирмой и выросла до версии 1.0.66.0. Затем, разработка перетекла вот сюда и последняя версия на данный момент 1.0.77.0.

Однако, в последней версии установщик не добавляет SQLite Data Provider в общий список, что в частности делает невозможным автоматическую генерацию модели для Entity Framework. По каким причинам данную функциональность решено убрать я не знаю, но это неудобство нам надо как-то исправить. Остаться на версии 1.0.66.0 тоже возможности нет, т.к. она несколько устарела.

Конечно, можно попробовать поколдовать с SQLite.Designer и installer из исходников, но я предпочёл решение топорней.

Все манипуляции проводятся на .NET Framework 4.0 и MSVS 2010.

1. Установить версию 1.0.66.0;
2. Установить версию 1.0.77.0. Я советую использовать sqlite-netFx40-setup-bundle-x86-2010-1.0.77.0.exe Если установщик не работает, то скачайте sqlite-netFx40-binary-bundle-Win32-2010-1.0.77.0.zip и установите библиотеки в GAC вручную;
3. Создайте новое приложение;
4. Добавьте в проект файл App.Config следующего содержания:

1
2
3
4
5
6
7
8
9
<?xml version="1.0"?>
<configuration>
  <system.data>
    <DbProviderFactories>
      <remove invariant="System.Data.SQLite" />
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.77.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
  </system.data>
</configuration>

5. Добавьте в References проекта System.Data.SQLite.Linq.dll.