我正在 VS 2012 Express 上开发 WP8 应用程序。为 Windows Phone 和 Sqlite-net 安装了 SQLite。并导入 SQLite for Windows Phone 作为参考。
但是,当我尝试构建项目时,它说:
错误 1 找不到类型或命名空间名称“Community”(您是否缺少 using 指令或程序集引用?)
和
错误 4 找不到类型或命名空间名称“Sqlite3”(您是否缺少 using 指令或程序集引用?)
我错过了什么?
我正在 VS 2012 Express 上开发 WP8 应用程序。为 Windows Phone 和 Sqlite-net 安装了 SQLite。并导入 SQLite for Windows Phone 作为参考。
但是,当我尝试构建项目时,它说:
错误 1 找不到类型或命名空间名称“Community”(您是否缺少 using 指令或程序集引用?)
和
错误 4 找不到类型或命名空间名称“Sqlite3”(您是否缺少 using 指令或程序集引用?)
我错过了什么?
我认为您忘记将 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-net”中的 SQLite.cs 文件之间存在一些不兼容的方法。一种解决方案是手动修改 SQLite.cs 中的方法来解决不兼容问题。
或者,如果上述过程不适合您,请使用dotnetslackers 链接中提到的 WP7 sqlite 的过程。在一个单独的项目中测试它,希望这应该有效。
我让它在没有 csharpsqlite 的 Windows Phone 8 上工作。
Peterhuene 为 SQLite 创建了一个包装器,您可以从 GitHub 获得它。不再需要 csharpsqlite。自述文件部分包含所需的所有信息。
关于如何设置它的详细描述也可以在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 它应该可以工作。