- A+
所属分类:.NET技术
之前开发和部署中,经常能遇到问题:未能加载文件或程序集。个人收集和处理过几次,整理以下几种可能:
- DLL文件名与加载时的DLL文件名不一致。
- DLL文件根本不存在,即出现文件丢失情况。
- 加载DLL路径错误,即DLL文件存在,但加载路径不正确
- 程序集版本错误。在A.dll内部引用的b.dll是1.0版本,而实际提供的b.dll是2.0的版本,2个版本冲突,导致版本不明确,编译异常。
- 引用的项目 .net 版本与启动的框架不同。在我的项目中,原来是VS2008也就是.NET3.5的框架,后来升级为VS2010,但是还没有更改框架,有的程序升级后没问题,有的升级后编译通过,一运行就提示“未能加载文件或程序集。。。。”,更改为对应VS版本的.NET4.0后就可以运行啦!
- 64位或32位平台的问题,默认选择Any CPU,更改X86或X64看看,有的dll有限制支持X86,X64版本的windows;
- dll涉及到c++底层代码,服务器并未安装对应的 microsoft visual c++ ,下载安装后就可以使用,下载地址:https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads,建议X64,X86的都下载安装。个人之前引入包(Aurigma.GraphicsMill),在本地可以使用,在自己电脑和旧服务器都能正常访问,部署到新买的服务器,始终无法正常运行,后面对比了2个服务器的安装程序,一个个排查了才找到的问题。