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



我在从用于运行后台任务的Windows运行时组件连接到sqlite数据库时遇到问题。。我正在以与我为主要项目添加的相同方式包括所有所需的dll。。但它不起作用。。显示大约200个错误。。我关注了这篇帖子:https://github.com/praeclarum/sqlite-net/issues/104
但是我还是会出错。。2个这样的错误是:

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

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

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

  1. 对于SQLite.cs和SQLiteAsync.cs,您需要将类定义(第5列)的所有public更改为internal
  2. 您需要将名称空间SQLite更改为C#项目正在使用的任何名称空间

通过这种方式,这个包装器将成为C#组件/Windows运行时组件的一部分,并且不会导出。

我正在后台任务中成功使用Sqlite。我在一个常规的Windows应用商店dll中有sqlite网络源文件。我的主应用程序和后台任务项目都需要访问同一个sqlitedb,所以它们都引用了这个dll。

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

最新更新