关于C#使用Dllimport 导入vc++动态库后网站部署提示 “无法加载 DLL,找不到指定模块”的解决方法。

时间:2021-03-21 01:07:28

这次项目需要,做了一个C#写的WebService服务给外部调用,服务内部引用了算法库,本地调试已经通过,现场部署服务时各种提示找不到DLL文件。

第一、如果是包含有32位库在64位服务器系统上运行,会有一个运行时错误,64位的IIS默认“应用程序池”不启用32位支持,需要去“高级设置”里启用32位支持

第二、找不到Dll处理方法:

网上查到的Dllimport路径相关:

DllImport会按照顺序自动去寻找的地方:
1、exe所在目录
2、System32目录
3、环境变量目录

三种都试过没用,依然提示找不到DLL,无法加载,用depends软件查了该库文件,依赖项都有,百思不得其解。

最后逼的没办法,把depends发给现场让他们看那个算法DLL的依赖项,最后发现是现场服务器中缺少msvcr100.dll跟msvcp100.dll,本地开发环境有这些。希望跟我遇到一样问题的人能够早点发现。

如果调试环境没有问题,必然是实际应用与调试环境有区别,服务运行不了不一定是代码相关。