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 - 解决使用EntityFramework时报错“unable to load dll 'sqlite3':the specified module could not be found”的更多相关文章
- System.DllNotFoundException: Unable to load DLL 'libgdiplus': The specified module could not be found.
netcore 使用System.Drawing 出现如下错误: Unhandled Exception: System.TypeInitializationException: The type i ...
- SqlSugar解决SQLite访问的问题:Unable to load DLL 'SQLite.Interop.dll'
SqlSugar用的版本是4.5.9.5,访问SQLite数据提示错误.在本机调试一时没有什么错误,把代码发布到服务器上以后刚开始运行没有问题,一段时间后报错. English Message : C ...
- Unable to load DLL 'opencv_core290'
问题: In my winforms application I need to use some Emgu.CV libraries (I have installed Emgu 2.9). Pro ...
- netserver启动时报错 "Unable to start netserver with 'IN(6)ADDR_ANY' port '12865' and family AF_UNSPEC'"
netperf启动netserver时报错 "Unable to start netserver with 'IN(6)ADDR_ANY' port '12865' and family A ...
- tomcat启动后,页面浏览时报错 Unable to compile class for JSP的解决方案
转:tomcat启动后,页面浏览时报错 Unable to compile class for JSP的解决方案 检查tomcat与web工程对应版本,tomcat中对应版本的jar包拷贝到web工程 ...
- [ASP.NET 5]终于解决:Unable to load DLL 'api-ms-win-core-localization-obsolete-l1-2-0.dll'
11月12日,惊喜地发现SqlClient(System.Data.SqlClient.dll)跨平台了(对应的nuget包包是runtime.unix.System.Data.SqlClient), ...
- Centos 7 Asp.net core 使用QRCoder 报“Unable to load DLL 'gdiplus'"
环境: Centos7 .Net core 2.0 问题: 使用QRCoder 报“Unable to load DLL 'gdiplus'" 同 https://q.cnblogs.com ...
- Unable to load DLL 'api-ms-win-core-localization-l1-2-0.dll': 找不到指定的模块
asp.net mvc 4.6 发布到WinServer2008R2 SP1 提示 错误 Unable to load DLL 'api-ms-win-core-localization-l1-2-0 ...
- Unhandled Exception:System.DllNotFoundException: Unable to load DLL"**":找不到指定的模块
在项目中使用C#代码调用C++ DLL时.常常会出现这个问题:在开发者自己的电脑上运行没有问题,但是部署到客户电脑上时会出现下面问题: Unhandled Exception:System.DllNo ...
随机推荐
- 随手可得的Application对象
在Android的开发其中,Application和Context对象应该是我们接触最多的对象了,特别是Context对象. 当我们在某个Activity或者Service其中时,因为它们本身就是Co ...
- 分类算法简介 分类: B10_计算机基础 2015-03-09 11:08 257人阅读 评论(0) 收藏
一.决策树 决策树是用于分类和预测的主要技术之一,决策树学习是以实例为基础的归纳学习算法,它着眼于从一组无次序.无规则的实例中 推理出以决策树表示的分类规则.构造决策树的目的是找出属性和类别间的关系, ...
- QMap 的增删改查
map 是一种数据容器,它提供一种由key 到 value 的映射.map 的key 是唯一的, 也是有序的.map 通常由近似平衡的红黑树来实现.key 的有序性,使得插入,查找节点比较有效.map ...
- Emmet超详细教程
Emmet超详细教程 一.总结 一句话总结:用的时候照着用,能提高效率. 1.快捷键如何使用? 需要敲代码的时候把快捷键放到旁边即可.照着敲. 二.Emmet超详细教程 Emmet的前身是大名鼎鼎的Z ...
- (三)RabbitMQ消息队列-Centos7下安装RabbitMQ3.6.1
原文:(三)RabbitMQ消息队列-Centos7下安装RabbitMQ3.6.1 如果你看过前两章对RabbitMQ已经有了一定了解,现在已经摩拳擦掌,来吧动手吧! 用什么系统 本文使用的是Cen ...
- SpringMvc中两个Controller类之间传递参数的方法
使用SpringMvc框架,在访问ControllerA的时候,将A里面的参数传递到ControllerB中.适用于同一框架下两个不同Controller或者由rpc(dubbo)连接的两个工程里的C ...
- Loader之二:CursorLoader基本实例 分类: H1_ANDROID 2013-11-16 10:50 5447人阅读 评论(0) 收藏
参考APIDEMO:sdk\samples\android-19\content\LoaderCursor 1.创建主布局文件,里面只包含一个Fragment. <FrameLayout xml ...
- JS和PHP和JAVA的正则表达式的区别(java没有分解符,java中的转义字符是\\)
JS和PHP和JAVA的正则表达式的区别(java没有分解符,java中的转义字符是\\) 一.总结 js正则:var patrn=/^[0-9]{1,20}$/; php正则:$pattern='/ ...
- windows phone 2048 源代码奉上
小梦今天把2048的游戏源代码给大家分享一下,其实感觉这个重在算法,UI很简单,而且几乎没有用到什么windows phone的API.小梦遇到最主要的问题就是对触摸事件的处理,我刚开始想到的就是 M ...
- 【t035】收入计划
Time Limit: 1 second Memory Limit: 32 MB [问题描述] 高考结束后,同学们大都找到了一份临时工作,渴望挣得一些零用钱.从今天起,Matrix67将连续工作N天( ...