【问题标题】:Xamarin.Forms PCL assemly issueXamarin.Forms PCL 程序集问题
【发布时间】: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


【解决方案1】:

安装 sqlite-net-pcl 版本 1.3.3(以前的版本不是当前版本)

当前版本1.4.118.0有这个问题

【讨论】:

    【解决方案2】:

    不同的 PCL 版本之间似乎有很多混淆......

    我设法让它工作了following tutorial

    要记住的关键点:

    1. 为所有项目安装SQLite.NET.Async-PCL v3.1.1(一次通过管理 NuGet 包以获取解决方案),

    2. 为所有项目安装SQLite.NET-PCL v3.1.1(必须通过 NuGet 控制台单独安装) - 注意:确保它为正确的项目安装(如果没有,它会抱怨包已经存在) ,

    3. 对于 UWP,还需要添加 Visual Studio extension for UWP 并通过 References->Add 手动添加对其的引用。

    所以这一切终于奏效了——所以不匹配出现在 1. 和 2. 的包之间(更新 1. 意味着还应该更新 2. 中的单个包)...

    希望这将帮助任何对 SQlite 包感到困惑的人(并且,请参阅有问题的警告 - NuGet 库页面上项目页面的链接不正确!!!)

    【讨论】:

      【解决方案3】:

      将此作为问题提交到Github

      应该在1.5.166-beta解决

      【讨论】:

      • 1.5.166-beta 仍未修复。
      • 我尝试了 1.5.166-beta,它适用于 UWT 但不适用于 Android :(
      【解决方案4】:

      已修复,当我遇到与“sqlite-net-pcl -Version 1.4.118”相同的问题时,由于 .net v4.5 而无法降级

      升级到测试版sqlite-net-pcl -Version 1.5.166-beta,它可以工作了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-09
        • 1970-01-01
        • 2017-10-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多