sqlite.cs не может найти sqlite3 и сообщество

Я занимаюсь разработкой приложения WP8 для VS 2012 Express. Установлен SQLite для Windows Phone и Sqlite-net. И импортированный SQLite для Windows Phone в качестве ссылок.

Однако когда я пытался построить проект, он говорит:

Ошибка 1 Не удалось найти тип или имя пространства имен "Сообщество" (отсутствует директива using или ссылка на сборку?)

А также

Ошибка 4 Не удалось найти тип или имя пространства имен 'Sqlite3' (отсутствует директива using или ссылка на сборку?)

Что я упустил?

5 ответов

Я думаю, что вы забыли добавить USE_WP8_NATIVE_SQLITE к вашему условному символу компиляции.

#if USE_CSHARP_SQLITE
using Sqlite3 = Community.CsharpSqlite.Sqlite3;
using Sqlite3DatabaseHandle = Community.CsharpSqlite.Sqlite3.sqlite3;
using Sqlite3Statement = Community.CsharpSqlite.Sqlite3.Vdbe;
#elif USE_WP8_NATIVE_SQLITE
using Sqlite3 = Sqlite.Sqlite3;
using Sqlite3DatabaseHandle = Sqlite.Database;
using Sqlite3Statement = Sqlite.Statement;

Я проверил это, кажется, небольшая проблема с Windows Phone 8 и Sqlite.

Первое, что нужно решить, - добавить ссылку "Community.Csharpsqlite.WP" в приложение. Для этого откройте диспетчер пакетов Nuget, введите "csharpsqlite" и установите получившийся пакет Nuget в свое приложение. Это решает обе вышеупомянутые проблемы, которые вы упомянули в своем вопросе. но Agian, поднимает еще одну проблему. Между "Community.Csharpsqlite.WP" и файлом SQLite.cs из "sqlite-net" есть несколько несовместимых методов. Одним из решений этого является ручное изменение методов в SQLite.cs для устранения несовместимостей.

В качестве альтернативы, если вышеописанный процесс не работает для вас, тогда используйте процесс WP7 sqlite, как упомянуто в ссылке dotnetslackers. Проверьте это в отдельном проекте, и, надеюсь, это должно сработать.

Я получил это работает на Windows Phone 8 без csharpsqlite.

Peterhuene создал оболочку для SQLite, которую вы можете получить из GitHub. Больше не нужно csharpsqlite. Раздел readme содержит всю необходимую информацию.

Подробное описание того, как его настроить, также можно найти здесь, на CodeProject.

В SQLite.cs есть несколько мест, где вы увидите такие строки

#if USE_CSHARP_SQLITE
...
...
#elif USE_WP8_NATIVE_SQLITE
...
...

Просто замените коды внутри #if USE_CSHARP_SQLITE на коды внутри #elif USE_WP8_NATIVE_SQLITE, и все готово. Или есть также короткий метод. Зайдите в свойства-> построить и после; добавьте "USE_WP8_NATIVE_SQLITE" и перестройте решение. Это сработало для меня

Я предполагаю, что вы следовали инструкции в этом посте

В посте есть инструкция, что вы добавляете проект C++ в свое решение с именем Sqlite. Вы получаете это из GitHub. По общему признанию это очень хорошо скрыто в почте и легко пропустить.

После включения проекта C++ в ваше решение вы должны добавить ссылку на него из вашего проекта C#.

Добавить ссылку -> решение -> выбрать проект C++ "Sqlite" в качестве ссылки

После этого и добавив константу сборки USE_WP8_NATIVE_SQLITE, она должна работать.

Другие вопросы по тегам