uwp - 解决使用EntityFramework时报错“unable to load dll 'sqlite3':the specified module could not be found”

简介: 原文:uwp - 解决使用EntityFramework时报错“unable to load dll 'sqlite3':the specified module could not be found” 在使用uwp的ef过程中碰到一万个问题快折腾死我了,好在最后终于解决掉所有问题,但愿如此,因为在这之前先后发生不同的报错,不知道后面还会碰到新的问题不。

原文:uwp - 解决使用EntityFramework时报错“unable to load dll 'sqlite3':the specified module could not be found”

在使用uwp的ef过程中碰到一万个问题快折腾死我了,好在最后终于解决掉所有问题,但愿如此,因为在这之前先后发生不同的报错,不知道后面还会碰到新的问题不。

其中一个问题是这样的,生成能正常生成,但是启动程序后在运行到:“db.Database.Migrate();” 时引发异常,提示unable to load dll 'sqlite3':the specified module could not be found.(exception from hresult:0x8007007e),奇怪,我已经引用了Microsoft.EntityFrameworkCore.Sqlite了呀,怎么会提示找不到模块,网上搜了一下,添加引用:“SQLite for universal windows platform”,然后运行,到这一步也许可能你已经解决这个问题,如果还没有,而且你碰到这样一个问题,以x64在本地计算机上运行uwp应用,正常,没报错,但是,切到x86放在仿真机上运行又报上面这个错,切到arm也报,那么别急,仔细看下生成输出有没有提示没引用vc++ runtime,如果有,就在引用扩展中添加“Visual C++ 2015 Runtime for Universal Window....”。现在再运行是不是解决了呢?

以下是我的完整引用截图,如果上面的方法没解决就对照一下我的引用把没有引用的引用上,MvvmLight就不需要了,其他的都是必须的:

附加:

同时引用sqlite for.platform和microsoft.en..sqlite两个的话,以ARM真机运行/调试是没问题的,但是以x86仿真机(模拟器)运行、以x64本地计算机模式运行时会报一个错:

负载包含两个或更多具有相同目标路径sqlite3.dll

对于这个问题,我暂时找不到更好的解决办法,所以,建议:如果你不介意用真机/本地计算机做开发调试并舍弃仿真机的话就不用管他,就以arm模式在真机上运行测试就好,如果你想在电脑上运行就暂时把sqlite for u....platform的引用去掉,就可以以x64的模式运行在本地计算上,但是如果开发完成要记得重新引用,不然无法在真机上创建数据库,就会重新报错:“unable to load dll 'sqlite3':the specified module could not be found.(exception from hresult:0x8007007e)”;同时引用两个时你没法在x86模式的仿真机上运行,也会提示“负载包含两个或更多具有相同目标路径sqlite3.dll”,所以,如果使用ef开发,你只能在本地计算机上/真机上测试运行,舍弃仿真机。在uwp上使用EntityFramework似乎很麻烦,也许是我自己的问题,但我的解决方案是这样的,如果我找到更好的办法会第一时间更新博客。

写的好像很乱。。。

目录
相关文章
|
数据库 数据库管理 容器
[UWP小白日记-1]判断APP是否是第一次运行初始化SQLITE数据库
原文:[UWP小白日记-1]判断APP是否是第一次运行初始化SQLITE数据库   利用应用程序设置来实现此功能。   1.首先,获取APP设置的容器: ApplicationDataContainer localSettings = ApplicationData.Current.LocalSettings;   由于获取容器的时候并没有给key为FirestStart的赋值,所以下面就直接判断是不是为null,为null就是第一次运行APP, 然后在else里给key为FirestStart的赋值,那么else的代码就只能执行一次了。
1405 0
|
SQL 数据库 数据库管理
[UWP小白日记-2]SQLite数据库DOME
原文:[UWP小白日记-2]SQLite数据库DOME   数据库说简单点就是增删改查,但是对新手来说也是要爆肝的。作为一个新手爆肝无数次啊, 血的教训啊现在UWP的教程又少,说多了都是泪。留下来免得以后又爆肝。
1372 0
|
数据库 数据库管理
[UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一)
原文:[UWP小白日记-11]在UWP中使用Entity Framework Core(Entity Framework 7)操作SQLite数据库(一) 前言   本文中,您将创建一个通用应用程序(UWP),使用Entity Framework Core(Entity Framework 7)框架在SQLite数据库上执行基本的数据访问。
1659 0
|
数据库 开发工具 数据库管理
UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库
原文:UWP: 在 UWP 中使用 Entity Framework Core 操作 SQLite 数据库 在应用中使用 SQLite 数据库来存储数据是相当常见的。在 UWP 平台中要使用 SQLite,一般会使用 SQLite for Universal Windows Platform 和 SQLite PCL 之类的库,前者是 SQLite 引擎库,而后者则提供了用于操作数据库的 API ,不过自从 Windows Fall Creators Update 之后,我们有了新的选择。
2400 0
|
数据库 数据库管理 存储
Win10 UWP 开发系列:使用SQLite
原文:Win10 UWP 开发系列:使用SQLite 在App开发过程中,肯定需要有一些数据要存储在本地,简单的配置可以序列化后存成文件,比如LocalSettings的方式,或保存在独立存储中。但如果数据多的话,还是需要本地数据库的支持。
1314 0
|
数据库 UED 数据库管理
Win10 UWP 开发系列:支持异步的SQLite
原文:Win10 UWP 开发系列:支持异步的SQLite 上篇文章已经实现了在UWP中使用SQLite作为本地存储,作为移动端的程序,及时响应用户的操作是提高用户体验的重要途径,因此UWP的很多api都是异步的。
1179 0
|
存储 C# 数据库
UWP开发-在UWP中使用sqlite
原文:UWP开发-在UWP中使用sqlite sqlite是一种轻量级的数据库,对于一些资源紧张又需要数据库的开发非常好用。 SQLite 是一个开源的无服务器嵌入式数据库。 这些年来,它已作为面向存储在许多平台和设备上的数据的主要设备端技术出现。
1353 0
|
数据库管理 Windows 数据库
UWP SQLite的使用
原文:UWP SQLite的使用 1.准备工作   1.首先我们要给项目添加“SQLite for Universal Windows Platform”扩展     点击菜单栏的“工具”-“扩展和更新”,然后在“联机”中搜索   2.安装扩展后我们再添加“SQLite.Net-PCL ”的Nuget程序包     在解决方案管理器中右击项目的“引用”,打开“管理Nuget程序包管理”,在“浏览”中搜索并安装     现在已经准备完成了,可以开始使用了。
1172 0
|
SQL 存储 数据库
UWP开发随笔——使用SQLite数据库
原文:UWP开发随笔——使用SQLite数据库 摘要 大多数的app都需要数据存储,在数据存储这方面,强大的windows把app数据分为两种:settings和files,并提供了十分简洁的api,让开发者能够轻松使用。
1460 0
|
2月前
|
存储 数据库连接 数据库
Android数据存储:解释SQLite数据库在Android中的使用。
Android数据存储:解释SQLite数据库在Android中的使用。
55 0