简体   繁体   English

无法加载DLL'SQLite.Interop.dll':找不到指定的模块。 Windows Server 2012上的错误

[英]Unable to load DLL 'SQLite.Interop.dll': The specified module could not be found. Error on Windows Server 2012

I have a multi-project solution (C#) that I am trying to deploy to one of our test servers. 我有一个多项目解决方案(C#),我正尝试将其部署到我们的测试服务器之一。 All the projects are being built for x64, with the 'Prefer 32 bit' disabled where applicable. 所有项目均针对x64构建,并在适用的情况下禁用了“首选32位”。

Some of the projects reference a SQLite dll set that uses the SQLite Encryption Extension (not managed by nuget). 一些项目引用使用SQLite加密扩展(不由nuget管理)的SQLite dll集。 When I build and install the solution on my local dev machine, the application and windows service are able to function properly, no problems. 当我在本地开发机器上构建和安装解决方案时,应用程序和Windows服务能够正常运行,没有问题。

When I try to install the same package on one of our test servers, running 64-bit Windows Server 2012, I get the "Unable to load DLL 'SQLite.Interop.dll': The specified module could not be found." 当我尝试在运行64位Windows Server 2012的一台测试服务器上安装同一软件包时,出现“无法加载DLL'SQLite.Interop.dll':找不到指定的模块”。 whenever I try to communicate with the SQLite database. 每当我尝试与SQLite数据库通信时。 I have triple checked that all the appropriate DLLs are in the program folder after installation. 安装后,我已三重检查所有合适的DLL是否都位于程序文件夹中。

In my VS solution, I have tried creating the x86/x64 folders, setting Copy to Always, but to no avail. 在我的VS解决方案中,我尝试创建x86 / x64文件夹,将“复制”设置为“始终”,但无济于事。 I have also copied the DLLs from my local install folder into the server folder just to see if something got messed up along the way. 我还已经将DLL从我的本地安装文件夹复制到服务器文件夹中,只是为了查看过程中是否出现混乱。

Could it be a permissions issue? 可能是权限问题? I'm an elevated user but not a full admin on the server, whereas I'm a full admin on my machine. 我是高级用户,但不是服务器上的完全管理员,而我是计算机上的完全管理员。 I've tried manually modifying the permissions on the program folder to see if that was an issue, but had no luck with that either. 我尝试手动修改程序文件夹上的权限,以查看是否存在问题,但也没有运气。

So to summarize, the project is being explicitly built for x64, it has the right DLLs in the right folders, and it works on a local install. 综上所述,该项目是为x64显式构建的,在正确的文件夹中具有正确的DLL,并且可以在本地安装。 I'm at a loss as to why it won't work on the server install. 我不知道为什么它不能在服务器上安装。 I've looked through countless threads on StackOverflow, MSDN, and SQLite's website, all usually suggesting the x86/x64 folders, but that hasn't been working for me. 我在StackOverflow,MSDN和SQLite网站上浏览了无数线程,通常都建议使用x86 / x64文件夹,但这对我没有用。 I'm hoping someone can help me out here. 我希望有人可以在这里帮助我。

Thanks! 谢谢!

Was actually able to figure it out after a bit more debugging. 经过更多的调试,实际上可以弄清楚。 The Visual C++ runtime that was installed on the server wasn't the right version. 服务器上安装的Visual C ++运行时不是正确的版本。 I added the Merge Module to the installer for the version my project was expecting, reinstalled the app on the server, and now it's working beautifully. 我将合并模块添加到安装程序中,以获得我的项目期望的版本,然后将应用程序重新安装在服务器上,现在可以正常工作了。

For those who have this issue, look for the right version of the VC++ runtime in C:\\Program Files(x86)\\Common Files\\Merge Modules . 对于那些有此问题的人,请在C:\\ Program Files(x86)\\ Common Files \\ Merge Modules中寻找正确版本的VC ++运行时。 If you don't know what version you need, use something like dependency walker on the machine that is throwing the error. 如果您不知道所需的版本,请在引发错误的计算机上使用诸如依赖项遍历的工具。 Mine told me I was missing VC140 , so that's the module I copied into my project and added to the installer. 我的告诉我,我缺少VC140 ,所以这是我复制到项目中并添加到安装程序中的模块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 CustomAction 失败-“无法加载 DLL 'SQLite.Interop.dll':找不到指定的模块。(ExceptionHRESULT:0x8007007E)” - CustomAction failed-"Unable to load DLL 'SQLite.Interop.dll':The specified module could not be found.(ExceptionHRESULT: 0x8007007E)" VS 2019 Winform 项目和 SQLite 错误:无法加载 DLL 'SQLite.Interop.dll': 找不到指定的模块 - VS 2019 Winform Project and SQLite error: Unable to load DLL 'SQLite.Interop.dll': The specified module could not be found 无法加载 DLL“SQLite.Interop.dll” - Unable to load DLL 'SQLite.Interop.dll' “无法在客户端计算机上加载DLL'SQLite.Interop.dll'错误 - "Unable to load DLL 'SQLite.Interop.dll' error on client machine 无法加载SQLite.Interop.dll - Unable to Load SQLite.Interop.dll 错误:找不到SQLite.Interop.dll - Error: SQLite.Interop.dll not found 无法在NUnit中使用nHibernate加载DLL'SQLite.Interop.dll' - Unable to load DLL 'SQLite.Interop.dll' with nHibernate in NUnit 将应用程序转换为.NET 4.5后出现错误“无法加载DLL'vjsnativ':找不到指定的模块。” - Error “Unable to load DLL 'vjsnativ': The specified module could not be found.” after converting application to .NET 4.5 SQlite using语句给出了无法在另一台计算机上加载DLL'SQLite.Interop.dll'错误 - SQlite using statement gives Unable to load DLL 'SQLite.Interop.dll' error on another computer 无法加载 DLL 'SQLite.Inter 找不到指定的模块 - Unable to load DLL 'SQLite.Inter The specified module could not be found
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM