2017-01-19 23 views
2

我使用Azure的移动服务进行离线同步建立xamarin形式的应用程序 - 版本:Azure的MobileServices和Akavache

  • 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时,一切都恢复正常。

回答

2

是的,我最长的时间也面临这个问题。不幸的是,Azure MobileServices和Akavache在Sqlite上的包依赖性冲突。当我安装的移动业务的NuGet包,它会安装不同的版本你有上面列出的库:

安装在我的项目

  • SQLitePCLRaw.bundle_green”版本=‘1.0.0’
  • SQLitePCLRaw.core版本=“1.0.0

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

我会建议尝试其他的东西作为你的持久性关键存储如SecureStorage Xamarin插件组件或Xamarin.Auth如果你只需要存储一个用户帐户的数据。

+0

感谢您的回复 - 我开始认为这是这样的 – markpirvine

+0

是啊,这是一个无赖 – BrewMate

2

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

+0

阿德里安再次拯救!那么,部分救援。 – winnicki