如何从用于运行后台任务的Windows运行时组件连接到sqlite数据库

时间:2013-02-11 12:38:08

标签: c# xaml windows-8 background-process

我无法从用于运行后台任务的Windows运行时组件连接到sqlite数据库。 我包含所有的dll所需的方式与我为主项目添加的方式相同。 但它不起作用.. 显示大约200个错误.. 我关注了这篇文章:https://github.com/praeclarum/sqlite-net/issues/104
但我仍然得到错误.. 2这样的错误是:

错误2 Windows运行时类'SQLite.SQLiteException'具有无效的基类型'System.Exception'。不允许导出自定义异常类型。 D:\ MCM-22-Jan-2013 \ CCM \ TileBackground \ SQLite.cs 46 15 TileBackground

错误92类型“SQLite.TableMapping.Column”是嵌套类型。嵌套类型无法导出到Windows运行时。 D:\ MCM-22-Jan-2013 \ CCM \ TileBackground \ SQLite.cs 1390 16 TileBackground

2 个答案:

答案 0 :(得分:4)

我今天遇到了这个问题,在https://github.com/praeclarum/sqlite-net/issues/104的帮助下,我能够解决它。在设置nuget的sqlite-net之后,你基本上要做两件事。

  1. 您需要将所有public类定义(第5列)更改为internal,对于SQLite.cs和SQLiteAsync.cs
  2. 您需要将名称空间SQLite更改为您的C#项目正在使用的任何名称空间。
  3. 这样,这个包装器就成了C#组件/ Windows运行时组件的一部分,而且它不会被导出。

答案 1 :(得分:-1)

我在后台任务中成功使用了Sqlite。我在常规的Windows Store dll中有sqlite-net源文件。我的主应用程序和后台任务项目都需要访问相同的sqlite db,因此它们都引用了这个dll。

似乎通过这种方式构建源代码,我(无意中)避免了您所看到的问题。请注意,我不必调整Sqlite-net源文件来解决此问题。