2017-01-19 6 views
2

나는 오프라인 동기화에 푸른 모바일 서비스를 사용하여 자 마린 형태의 응용 프로그램을 구축 해요 - 버전은 다음과 같습니다푸른 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 추가하기 전에, 나는

MobileServiceSQLiteStore store = new MobileServiceSQLiteStore(path); 

TyleLoadException 던지고 프로젝트를 실행하고 발견, 내 프로젝트에 akavache (5.0.0)을 추가 할 때까지 잘 작동했다 :

을 어셈블리 'SQLitePCL.SQLite3Provider_internal'을 'SQLitePCLRaw.provider.internal, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 89ae75803b2c608d' '형식에서로드 할 수 없습니다.

이전에이 문제가 발생 했습니까? akavache를 제거하면 모든 것이 정상으로 돌아갑니다.

답변

2

그래, 나는이 문제를 가장 오랫동안 보았습니다. 아쉽게도 Sqlite에서 Azure MobileServices와 Akavache 간의 패키지 종속성이 충돌합니다.

  • SQLitePCLRaw.bundle_green "버전 ="1.0.0 "
  • 내 프로젝트에 설치 : 나는 모바일 서비스에 대한 NuGet 패키지를 설치하면, 당신이 위에 열거 한 라이브러리의 다른 버전을 설치합니다
  • SQLitePCLRaw.core 버전 = "1.0.0

문제는 Akavache 추가 패키지를 설치하고 SQLite는 패키지의 일부를 업그레이드한다는 것입니다. 다른 사람들이 Azure Mobile App with Akavache을 사용하여 문제를 신고했습니다.

SecureStorage Xamarin Plugin Component와 같은 영구 키 저장소로 다른 것을 시도해 보거나 데이터가있는 사용자 계정 만 저장해야하는 경우 Xamarin.Auth이 작동하는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다. -이게 이런 것 같다고 생각하기 시작했습니다. – markpirvine

+0

예. 이상합니다. – BrewMate

2

SQLiteRaw를 v1.1.2로 업데이트해야합니다.이 수정 프로그램은 Eric Sink에서 수정되었습니다. Azure 모바일 애플리케이션 용 최신 .NET 클라이언트 SDK는 올바른 버전을 사용합니다. 아쉽게도 Akavache는이 버전을 사용해야하므로 지금은 부분적으로 대답하고 있습니다.

+0

다시 구출하는 애드리안! 음, 부분 구조. – winnicki