2016-08-04 3 views
0

MVVMCross UWP 응용 프로그램에서 SQLite를 사용하려고합니다. 그러나, 곧 내가 내 데이터 액세스 레이어의 등록 된 인스턴스를 해결하려고, 나는 다음과 같은 오류 얻을 :MVVMCross가있는 UWP에서 SQLite 사용

여기

Exception thrown: 'System.IO.FileLoadException' in MyApp.Core.dll

Additional information: Could not load file or assembly 'SQLite.Net, Version=3.1.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

는이 충돌 :

private void AddProduct() 
 { 
    ICrudEntityDataAccess da = Mvx.Resolve<ICrudEntityDataAccess>(); 
     da.Create<Product>(Product); // Runtime error 
 } 

UWP 앱이 Nuget를 참조를 패키지 :

SQLite.Net.Platform.WinRT

그리고 핵심 응용 프로그램 참조 :

SQLite.Net.Core-PCL

그리고

Sqlite.Net-PCL

은 여기에 등록 :

protected override void InitializeFirstChance() 
{ 
    base.InitializeFirstChance(); 

    MvxSimpleIoCContainer.Instance.RegisterSingleton<IPlatformSpecific>(
        new PlatformSpecific() 
        { 
            LocalFolderPath =  
                Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, 
                "db.sqlite") 
        }); 

    MvxSimpleIoCContainer.Instance.RegisterSingleton<ISQLitePlatform>(
     new SQLitePlatformWinRT()); 

은 분명히 나는 ​​NuGet 패키지가있는 프로젝트에 필요한이의 핵심 부분 (나는 관계로 추측하고있어보고 싶었어. 누군가 제게 올바른 방향으로 나를 가르쳐 줄 수 있습니까?

답변

4

SQLite는 iOS 및 Android와 달리 기본적으로 제공되지 않으므로 SQLite for Universal Windows Platform 패키지에 대한 참조를 수동으로 설치하고 추가해야합니다. 당신이 항상 최신의 최고의 버전을 가질 수 있기 때문에 이것은 실제로 큰 일입니다!

here에서 확장 프로그램을 다운로드하여 설치하십시오. 유니버설 Windows 플랫폼의 제목 아래에서 최신 버전을 다운로드하십시오.

Visual Studio를 다시 시작하고 솔루션 탐색기에서 UWP 프로젝트를 마우스 오른쪽 단추로 클릭하고 Add - Reference을 선택하십시오. 참조 추가 대화 상자 창에서 왼쪽 사이드 바에 Universal Windows - Extensions을 선택하고 내선 목록에서 SQLite for Universal Windows Platform의 확인란을 선택합니다.

이렇게하면 문제를 해결하는 데 도움이됩니다.

+1

나는 이것을 시도하고, 처음에는 차이가 없었다. 내가 끝낸 것은 Nuget 참조를 제거하고 다시 추가하는 것이 었습니다. 그것은 효과가있었습니다. 많은 감사합니다. –