Подтвердить что ты не робот

Развертывание SQLite для приложения .net

Я использовал SQLite для моего приложения .NET Framework 4.0 WPF, он отлично работает с средой разработки. Я просто скопировал файл system.data.sqlite.dll в мое установленное приложение, но он не работает должным образом.

Может ли кто-нибудь сказать мне, как развернуть SQLite для новой машины?

Не достаточно ли распространять только DLL? Я использую installshiled 2011 для создания установщика установки. Пожалуйста, поделитесь, если у кого-нибудь есть модуль слияния для SQLite.

Ранняя помощь будет принята с благодарностью.

Заранее спасибо

Vinay MS

4b9b3361

Ответ 1

Вы должны иметь возможность работать только с интерактивными и DLL файлами данных. Наш проект использует эти:
Note: we are using LINQ as well.

LINQ не нужен, если вы не используете LINQ.

Я переименовал каждую копию SQLite3.dll или SQLite3.exe на моем компьютере (были десятки), и приложение продолжает работать. Я проверял, чтобы мой ответ был правильным, и это то, что нам нужно сделать, чтобы убедиться, что наши установки тоже работают.

Ответ 2

Что говорит Tangurena, это правильно (что на самом деле помогло мне заставить его работать), но вам также необходимо включить настройку конфигурации, указанную в readme SQLite:

<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.80.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
    </DbProviderFactories>
</system.data>

Ответ 3

Собственно, вы должны просто скопировать System.Data.SQLite.dll из своего проекта. Обычно я устанавливаю свойство CopyLocal равным true, когда добавляю эту ссылку к моим проектам, а затем удостоверяюсь, что когда я создаю установщик, у меня есть эта DLL в том же месте, что и последний файл .exe. Я написал сообщение в блоге об этом в прошлом году, возможно, что-то в моем посте установит вас на правильный путь: Мой блог на SQLite и С#

Ответ 4

Как уже упоминалось ранее, вам нужно включить в конфигурацию вашего приложения:

<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.80.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" />
</DbProviderFactories>

Вы также должны добавить файлы DLL к ссылкам:

  • SQLite.Designer
  • System.Data.SQLite
  • System.Data.SQLite.Linq

И установите для свойства "Копировать локальное" значение true для каждого из них. Пожалуйста, посетите мой блог для более info