在带有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包。请有人给我指明正确的方向?
由于与iOS和Android相比,默认情况下不提供SQLite,因此需要手动安装并添加对SQLite for Universal Windows Platform包的引用。这其实是一件很棒的事情,因为你总是可以拥有最新、最棒的版本!
从这里下载并安装扩展-在通用Windows平台标题下获取最新版本。
重新启动Visual Studio,在解决方案资源管理器中右键单击您的UWP项目,选择Add - Reference
。在添加引用对话框窗口中,选择左侧边栏中的Universal Windows - Extensions
,并在扩展列表中选中SQLite for Universal Windows Platform
复选框。
这将有望帮助解决您的问题。