错误:【Unable to load DLL 'SQLite.Interop.dll': 找不到指定的模块 】解决方法和思路

匿名 (未验证) 提交于 2019-12-03 00:38:01

WinFrom程序,错误:Unable to load DLL 'SQLite.Interop.dll': 找不到指定的模块。 (Exception from HRESULT: 0x8007007E)

Stack Trace:







解决方法:

安装C++运行库:

Microsoft Visual C++ 2008 SP1 Redistributable(X86,X64)

Microsoft Visual C++ 2010 SP1 Redistributable(X86,X64)

Microsoft Visual C++ 2012 SP1 Redistributable(X86,X64)

背景

开发了一个WinForm程序,已经到了交付阶段。然而,打包的安装程序,在一部分人的计算机上可以运行,一部分的不行,提示“Unable to load DLL 'SQLite.Interop.dll': 找不到指定的模块”。这个问题真是让人头大。一直以为是程序缺少程序集“SQLite.Interop.dll”,但后面发现,把程序集打包进去后安装仍然出错,程序停止运行,并且提示相同错误。

后来,思考为什么一部分可以用,一部分的机器不能用,会不会是环境问题?然后,发现一个共性问题是.NET Framework4.5.2的机器都不能运行,在想是不是.NET Framework4.5.2版本问题,但根据程序设计,它应该是兼容.NET Framework4.5及以上版本的。后来,还是回到问题本身,想到与SQLite相关,那就是可能缺什么与SQLite相关的组件?然后,对比了能运行的计算机环境和不能运行的计算机环境,如下图一和图二。

发现

结果证明,尝试成功了,安装了之后,程序可以正常运行了。

图一 可以运行的计算机安装的程序


图二 不能运行的计算机安装的程序


为什么要安装上面那些库?

答:其实我没有想太明白,只知道SQLite是C++编译的,程序中用到了SQLite数据库,所以要安装。但是为什么要安装那么多版本的:2008(X86,X64)、2010(X86,X64)、2012(X86,X64),没有想清楚。(当时安装的时候,是每安装完一个版本的就去运行一下程序,到最后,都安装完毕,程序才正常运行起来。)

下面是百度到的

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!