已移至.NET 4.5.得到"";无法加载文件或程序集_____或其依赖项之一";错误
本文关键字:quot 程序集 错误 依赖 文件 NET 得到 加载 | 更新日期: 2023-09-27 18:19:30
我刚刚将VS2008中的一个3.5项目转换为Framework 4.5。该网站引用了两个项目(称为"业务"answers"报表")。
VS 2012中的开发Web服务器一切正常。但当我在本地IIS*上设置它时,我会得到
"无法加载文件或程序集'Reports'或其依赖项之一。试图加载格式不正确的程序。:
我在bin目录中看到报表的dll。我玩过构建到x86和AnyCPU的平台,但它仍然不起作用。
(我确实将应用程序池的.NET框架版本设置为4.0。)
编辑:有人能帮我解密下面的信息吗?我看到HKEY_LOCAL_MACHINE''Software''Microsoft''Fusion。但什么是"Fusion!EnableLog"?我看不到那样的东西。
警告:程序集绑定日志记录已关闭。要启用程序集绑定故障日志记录,请将注册表值[HHKLM''Software''Microsoft''Fusion!EnableLog](DWORD)设置为1。注意:程序集绑定失败日志记录会带来一些性能损失。要关闭此功能,请删除注册表值[HHKLM''Software''Microsoft''Fusion!EnableLog]
有问题的DLL可能只适用于32位(x86)构建。
重新生成程序,以x86版本为目标。
然后在IIS中,右键单击为应用程序提供服务的应用程序池,然后单击"高级设置"。从这里,将"启用32位应用程序"值设置为"True",然后回收应用程序池并重新启动您的网站,如果您仍然收到错误,请告诉我。
如果您不知道您的网站正在使用哪个应用程序池,请在"网站"下单击您的网站,然后在"操作"窗格中选择"基本设置"选项。从这里,您可以看到哪个应用程序池正在为您的应用程序提供服务,如果需要,您可以更改应用程序池。应用程序池是通过IIS中"连接"窗格上的"应用程序池"选项进行管理的。
我认为,如果你是从64位机器构建的,那么选择"任何CPU"可能会导致64位构建,因此,如果引用的DLL是针对x86构建的,这可能就是你收到错误消息的原因。