2016-08-04 5 views
0

Я пытаюсь использовать SQLite в приложении MVVMCross UWP; Однако, как только я пытаюсь разрешить зарегистрированный экземпляр моего слоя доступа к данным, я получаю следующее сообщение об ошибке:Использование SQLite в UWP с MVVMCross

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 - получите последнюю версию под заголовком Universal Windows Platform.

Перезапустите Visual Studio, щелкните правой кнопкой мыши проект UWP в обозревателе решений, выберите Add - Reference. В диалоговом окне Добавить ссылку в окне слева выберите Universal Windows - Extensions и установите флажок для SQLite for Universal Windows Platform в списке расширений.

Это, надеюсь, поможет исправить вашу проблему.

+1

Я пробовал это и, изначально, это не имело значения. То, что я закончил, - это удаление ссылок Nuget и их повторное добавление; который действительно работал. Большое спасибо. –

Смежные вопросы