在带有MVVMCross的UWP中使用SQLite

本文关键字:SQLite UWP MVVMCross | 更新日期: 2023-09-27 18:00:11

我正试图在MVVMCross UWP应用程序中使用SQLite;然而,当我试图解决我的数据访问层的注册实例时,我会得到以下错误:

引发异常:"系统。MyApp中的IO.FileLoadException。Core.dll

附加信息:无法加载文件或程序集"SQLite"。网Version=3.1.0.0,Culture=neutral,PublicKeyToken=null'或其一个依赖关系。找到的程序集的清单定义不匹配程序集引用。(HRESULT异常:0x80131040)

以下是它崩溃的地方:

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

UWP应用程序引用Nuget包:

SQLite。网站台WinRT

核心应用程序参考:

SQLite。网核心PCL

Sqlite。净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包。请有人给我指明正确的方向?

在带有MVVMCross的UWP中使用SQLite

由于与iOS和Android相比,默认情况下不提供SQLite,因此需要手动安装并添加对SQLite for Universal Windows Platform包的引用。这其实是一件很棒的事情,因为你总是可以拥有最新、最棒的版本!

从这里下载并安装扩展-在通用Windows平台标题下获取最新版本。

重新启动Visual Studio,在解决方案资源管理器中右键单击您的UWP项目,选择Add - Reference。在添加引用对话框窗口中,选择左侧边栏中的Universal Windows - Extensions,并在扩展列表中选中SQLite for Universal Windows Platform复选框。

这将有望帮助解决您的问题。