无法加载DLL 'sqlite3':找不到指定的模块。(HRESULT异常:0x8007007E)
我已经添加了System.Data.SQLite.dll的DLL,但仍然显示相同的错误。请问是否有人可以帮助我提供关于这个问题的完美答案?谢谢。
这应该能解决我的问题了。 添加以下DLL文件。
使用“添加现有项目”功能,选择sqlite3.dll并将其“作为链接”添加到项目中。点击确定后,在项目中选择DLL并设置“复制本地”值为True。
也许你没有添加正确平台的版本?SQLite提供了一个X86(32位)组件和一个X64(64位)组件。
如果你的应用程序是32位应用程序,你应该使用System.Data.SQLite发行版中“bin”目录下的System.Data.SQLite.dll。如果是64位应用程序,则应该使用 bin\x64 目录下的 System.Data.SQLite.dll。
然而,从重新查看错误消息来看,我不确定是否是这个原因。你是否在调用SQLite的本地函数?在这种情况下,你可能需要将dll文件重命名为sqlite3.dll。
正如你所知,System.Data.SQLite是原始本地sqlite3.dll和托管的ADO.NET提供程序的捆绑包(除非你使用某些旧版本,在这种情况下我不确定 - 你可能需要单独使用本地的sqlite3.dll)。
在我的情况下,我正在开发UWP项目。我需要添加对 Visual C++ 2015 Runtime for Universal Windows Platform Apps 的引用,这样就可以解决错误了。可以在“引用管理器”中选择“通用 Windows > 扩展”进行添加。详细解决方案可以在此处找到。
经过3天的努力,终于找到了解决方法。
截至2018年3月,如果您尝试通过Nuget包管理器使用sqlite-net,它会向您的解决方案添加两个文件和一些参考dll,而不管项目类型是UWP还是Android等。
之后,如果您编译并运行解决方案,将会出现异常:
无法加载DLL“sqlite3”:指定的模块找不到。 (HRESULT的异常: 0x8007007E)
这是因为它无法通过NUGET包管理器将sqlite3.dll添加到解决方案中。因此,您需要手动添加它。
要添加,请首先确定您的项目是32位还是64位,然后从https://www.sqlite.org/download.html下载相应的Windows Runtime预编译二进制文件,然后手动添加它们(复制并粘贴)。
最近我遇到了这个问题 - 在将procmon
附加到我的进程后,我发现最新的System.Data.SQLite库(为.NET4构建的库)依赖于MSVC 2010运行时,而服务器上没有安装。幸运的是,可以从Microsoft网站下载此运行时。
特别是如果您已经更新到Visual Studio 2015 RTM并正在开发通用Windows应用程序,请尝试卸载SQLite for Universal App Platform扩展并重新安装(请参见http://sqlite.org/download.html)。
sqlite-net
。 - marbel82