【问题标题】:SQLite-Net Extensions Compatibility with SQLite-Net PCL (note no period)SQLite-Net 扩展与 SQLite-Net PCL 的兼容性(注意没有句点)
【发布时间】:2016-09-22 17:19:55
【问题描述】:

基本上我的问题归结为SQLite-Net Extensions (NuGet Link) 是否与 Frank A. Krueger 的SQLite-net PCL 兼容。据我了解,Oystein Krog 在过去的某个时候创建​​了一个分支来改进事物(可能在 Frank 更新事物之前?),所以 SQLite.Net PCL 应运而生。

现在有了 Frank 的“官方”PCL 版本,我想坚持使用它而不是 fork。但是,尚不清楚SQLite-Net Extensions 是否真的只支持分叉。该网站说它支持SQLite-net,但依赖项说SQLite.net。为了我(和未来的人)的缘故,任何澄清都将不胜感激!!!

编辑:我知道“SQLite-Net PCL”只是 NuGet 包的名称,实际上并不是独立的 PCL。我有这个(没有 SQLite-Net 扩展)在实际 PCL 中的代码中完全工作。

【问题讨论】:

    标签: xamarin portable-class-library sqlite-net-extensions


    【解决方案1】:

    SQLite.Net Extensions-PCL (2.0.0-alpha1) 已经有一个预发布版本(最后更新于 2016 年 8 月 13 日星期六),它依赖于 Frank 的 sqlite-net-pcl (>= 1.1.2) A.克鲁格

    https://www.nuget.org/packages/SQLiteNetExtensions/2.0.0-alpha1

    【讨论】:

      【解决方案2】:

      根据SQLite-Net Extensions documentation,有一种风格与 Frank A. Krueger 的库兼容,但没有依赖于 Frank A. Krueger's nuget package 的 nuget 包

      SQLite.Net Extensions-MvvmCross 包不依赖于 SQLite.Net PCL,但它依赖于 nuget 中未列出的 MvvmCross SQLite plugin

      SQLite-Net Extensions 提供三种不同的风格, 取决于您使用的 SQLite-Net 版本:

      • SQLite-Net PCL 版本(也作为 NuGet 包)
      • SQLite.Net.Async-PCL 版本(也作为 NuGet 包)
      • MvvmCross SQLite 社区版(也作为 NuGet 包)
      • SQLite-Net 标准版(也作为 NuGet 包)

      【讨论】:

      • 是的,问题是,第一个要点指向 SQLite.Net PCL 而不是 SQLite-Net PCL。然而,这些项目符号后面的句子指向可能将 NuGet 最初用于 SQLite.Net PCL 并只是引用它。这就是我想要澄清的原因。
      • @Steven_BDawg:看起来它支持 Frank A. Krueger 的版本,但没有 nuget 包。您可能应该自己重新编译它。
      • 好像...任何链接(无论是否在 SO 上)可以帮助我做到这一点?我仍在从 Android 过渡到 VS 和 C#,并且在此过程中我不得不学习这样的新东西,哈哈。
      • @Steven_BDawg:在本地克隆 repo 并像任何其他 VS 项目一样编译它。
      【解决方案3】:

      我认为这里有点混乱,因为 Frank Krueger nuget 包不是 PCL。您不能根据特定于平台的库来部署 PCL 库。因此,您不会找到使用该平台特定 SQLite.Net nuget 包的 SQLite-Net 扩展包。

      但是,您可以只 download the SQLite-Net Extension sources 并将源文件复制到您的项目中。如果你 take a look at the sources,你会看到,除非另有定义,否则它将使用 Frank 的 SQLite 包。

      #if USING_MVVMCROSS
      using SQLiteConnection = Cirrious.MvvmCross.Community.Plugins.Sqlite.ISQLiteConnection;
      #elif PCL
      using SQLite.Net;
      using SQLite.Net.Attributes;
      #else
      using SQLite;
      #endif
      

      我已经有一段时间没有测试过了,但它应该可以工作。

      不过,我建议您坚持使用 SQLite-Net PCL,因为它正在积极维护,并且目前正在发展更多功能(如异步操作)。

      【讨论】:

      • 我提供的链接 (nuget.org/packages/sqlite-net-pcl/1.1.1) 是 Frank 为 PCL 提供的 SQLite-Net nuget 包。它最后一次更新是在去年 1 月(2016 年)。要使用它,您需要在 PCL 以及特定于设备的项目上安装相同的 nuget。这个 nuget 本身在我当前的解决方案(PCL 和 Windows 项目)中运行良好。很快我将添加 Xamarin.Android,我相信它也可以在那里工作。但是,如果我可以添加 SQLite-Net 扩展,生活会更好。
      • 明确地说,我知道提供的链接本身并不是 PCL。相反,它只是您在管理器上拉出 NuGet 或访问网站时的实际名称。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2021-04-26
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      相关资源
      最近更新 更多