【问题标题】:Azure MobileServices and AkavacheAzure 移动服务和 Akavache
【发布时间】:2017-06-04 01:50:34
【问题描述】:

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

  • Microsoft.Azure.Mobile.Client 3.1.0
  • Microsoft.Azure.Mobile.Client.SQLiteStiore 3.1.0
  • SQLitePCL 3.8.7.2
  • SQLitePCLRaw.bundle_green 1.1.2
  • SQLitePCLRaw.core 1.1.2

这工作正常,直到我将 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 后,一切恢复正常。

【问题讨论】:

    标签: sqlite xamarin.forms azure-mobile-services akavache


    【解决方案1】:

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

    安装在我的项目中

    • SQLitePCLRaw.bundle_green" version="1.0.0"
    • SQLitePCLRaw.core version="1.0.0

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

    如果您只需要存储用户帐户和数据,我建议您尝试使用其他东西作为您的持久密钥库,例如 SecureStorage Xamarin 插件组件或 Xamarin.Auth

    【讨论】:

    • 感谢您的回复 - 我开始认为是这样的
    • 是的,这很糟糕
    【解决方案2】:

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

    【讨论】:

    • 阿德里安又来救援了!好吧,部分救援。
    猜你喜欢
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多