Развертывание SQLite для приложения .net
Я использовал SQLite для моего приложения .NET Framework 4.0 WPF, он отлично работает с средой разработки. Я просто скопировал файл system.data.sqlite.dll в мое установленное приложение, но он не работает должным образом.
Может ли кто-нибудь сказать мне, как развернуть SQLite для новой машины?
Не достаточно ли распространять только DLL? Я использую installshiled 2011 для создания установщика установки. Пожалуйста, поделитесь, если у кого-нибудь есть модуль слияния для SQLite.
Ранняя помощь будет принята с благодарностью.
Заранее спасибо
Vinay MS
Ответы
Ответ 1
Вы должны иметь возможность работать только с интерактивными и DLL файлами данных. Наш проект использует эти:
.
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