我正在使用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时,一切都恢复正常。
答案 0 :(得分:2)
是的,我也遇到了这个问题的时间最长。不幸的是,Azure MobileServices和Akavache之间的包依赖关系在Sqlite上发生冲突。当我为移动服务安装NuGet包时,它会安装上面列出的库的不同版本:
安装在我的项目中
问题是Akavache安装了其他软件包并升级了一些SQLite软件包。其他人使用Azure Mobile App with Akavache报告了问题。
如果您只需要存储包含数据的用户帐户,我建议您尝试使用其他内容作为持久性密钥存储区,例如SecureStorage Xamarin插件组件或Xamarin.Auth。
答案 1 :(得分:2)
您需要将SQLiteRaw更新为v1.1.2 - 这是Eric Sink实施的修复程序。适用于Azure移动应用程序的最新.NET Client SDK使用正确的版本。不幸的是,Akavache也需要使用这个版本,所以我们现在有一个部分答案。