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


这次项目需要,做了一个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,本地开发环境有这些。希望跟我遇到一样问题的人能够早点发现。

 

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM