【发布时间】:2018-01-07 04:33:40
【问题描述】:
我正在使用 this sqlite-pcl package 使用 Xamarin.Forms 开发一个多平台 PCL 应用程序,如显示 in this sample。
警告
PCL library 的 nuget 站点在左侧包含错误链接,当您转到 Project Site 时 - 它指向 SQLite-net 站点...所以我什至不知道正确的 Sqlite-PCL 链接会是什么成为...
直到今天早上,当我尝试安装其他一些软件包时,它一直运行良好(请注意,我一开始并没有接触 sqlite 软件包)。突然之间,我的应用程序在第一次访问数据库时崩溃了,说
System.IO.FileLoadException: '无法加载文件或程序集 'SQLite-net,版本 = 1.4.118.0,文化 = 中性,PublicKeyToken = null'。 找到的程序集的清单定义与程序集不匹配 参考。 (HRESULT 异常:0x80131040)
好吧,好吧,我开始搜索论坛,试图找到问题的根源 - 没有任何帮助 - 卸载并重新安装软件包,重新启动,手动删除对我找到的那个 dll 的所有引用并重新编译,重新部署...我实际上被卡住了,我尝试了Fuslogvw但没有成功...我对此感到非常绝望-关于如何找到问题根源的任何建议?
技术细节: - VS 社区 2017 - 构建配置:调试 - 任何 CPU - 区域设置上的 UWP - 还有其他相关数据吗?
好的,经过数小时的搜索,感谢@yuri-s,我重新安装了SQLite.Net.Async-PCL 软件包。我不得不更新一些 using 子句,但最终,我似乎到达了那里。
但是,我坚持最后一点:我需要在这个特定库中使用特定于平台的程序集创建数据库连接 - 但我找不到该方法中的代码建议 here(最后一篇文章) .但我无法弄清楚每个操作系统的依赖接口应该包含哪些代码(SQLite.Net.Platform 似乎不存在于该包中)。
总而言之,SQLite-PCL 包非常令人困惑 - 我认为社区将从它们的明确区分中受益......!
【问题讨论】:
-
[抱歉英语不好] 检查这些其他软件包是否与您的 sqlite-net 版本有一些共享依赖关系。也许它已经更新了这种依赖关系,它把一切都搞砸了。
-
我今天更新 NuGet 包后也发生了同样的事情。您的回答清除了一切 - 谢谢。
标签: sqlite xamarin.forms visual-studio-2017