Azure 移动服务和 Akavache

Azure MobileServices and Akavache

我正在使用 Azure 移动服务构建一个 xamarin 表单应用程序以进行离线同步 - 版本是:

这工作正常,直到我将 akavache (5.0.0) 添加到我的项目中,在添加任何特定于 akavache 的代码之前,我 运行 该项目并找到

MobileServiceSQLiteStore store = new MobileServiceSQLiteStore(path);

正在抛出 TyleLoadException:

无法从程序集 'SQLitePCLRaw.provider.internal, Version=1.0.0.0, Culture=neutral, PublicKeyToken=89ae75803b2c608d' 加载类型 'SQLitePCL.SQLite3Provider_internal'。

有人遇到过这个吗?当我删除 akavache 时,一切 returns 恢复正常。

是的,我也是遇到这个问题时间最长的。不幸的是,Azure MobileServices 和 Akavache on Sqlite 之间的包依赖性发生冲突。当我为移动服务安装 NuGet 包时,它会安装上面列出的库的不同版本:

安装在我的项目中

  • SQLitePCLRaw.bundle_green" 版本="1.0.0"
  • SQLitePCLRaw.core 版本="1.0.0

问题是 Akavache 安装了额外的包并升级了一些 SQLite 包。其他人报告了使用 Azure Mobile App with Akavache.

的问题

我建议尝试其他方法,因为如果您只需要用数据存储用户帐户,SecureStorage Xamarin Plugin Component or maybe Xamarin.Auth 等持久性 Key-Store 就可以工作。

您需要将 SQLiteRaw 更新到 v1.1.2 - 这是由 Eric Sink 实施的修复。适用于 Azure 移动应用程序的最新 .NET 客户端 SDK 使用正确的版本。不幸的是,Akavache 也需要使用这个版本,所以我们现在有部分答案。