2017-01-19 58 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