我正在使用Xamarin.Forms和sqlite-pcl包开发一个多平台的PCL应用程序,如此示例所示。
警告 PCL库的NuGet网站在左侧包含错误的链接,当您进入“项目网站”时,它会指向SQLite-net网站...所以我甚至不知道正确的Sqlite-PCL链接是什么...
在今天早上之前,它运行得非常正常,当我尝试安装其他软件包时(请注意,一开始我没有触及sqlite软件包),突然间我的应用程序在第一次访问数据库时崩溃了,说:
System.IO.FileLoadException: '无法加载文件或程序集“SQLite-net,Version=1.4.118.0,Culture=neutral,PublicKeyToken=null”。所定位的程序集清单定义与程序集引用不匹配。(HRESULT 异常:0x80131040)'好的,我开始在论坛上搜索,试图找出可能是问题来源的部分 - 什么都没帮助 - 卸载和重新安装包,重启,手动删除找到的所有对该dll的引用并重新编译、重新部署... 我实际上被卡住了,我尝试使用Fuslogvw但没有成功... 我对此非常绝望 - 有什么建议可以帮我找到问题的根源吗?
技术细节: - VS Community 2017 - 构建配置:Debug - Any CPU - UWP on locale maching - 还有其他相关数据吗?
好的,在经过几个小时的搜索后,感谢@yuri-s的帮助,我重新安装了SQLite.Net.Async-PCL包。我不得不更新一些using子句,但最终,我似乎已经解决了问题。
然而,我卡在了最后一个点上:我需要在这个特定的库中使用特定平台的程序集创建DB连接 - 但我找不到建议的方法here(最后一篇帖子)中的代码。但我无法弄清楚每个操作系统的依赖接口应该获取什么代码(
SQLite.Net.Platform
似乎不存在于该包中)。总的来说,SQLite-PCL包非常令人困惑 - 我认为社区会从它们的明确区分中受益...!