以下是错误消息:
无法加载文件或程序集 'file:///myFile.dll'或其中一个 依赖。试图做到 加载程序不正确 格式。第171行,第5位。 FrmApproveProfiles.resx
当然该文件不称为“myFile.dll”。奇怪的是,错误显然是在我的一个表单的资源文件中,但是这个表单是主应用程序的一部分,并且与上述DLL文件完全分开。此DLL文件作为文件加载(不解决方案中项目的构建)。
当我将图像(任何图像,即png,bmp等)加载到我的表单中的ImageList(在主应用程序中,而不是DLL)时,会发生错误。我知道图像没有被破坏,因为我可以查看它们并在程序的其他地方使用它们,我感到困惑的是为什么我的单独的DLL因为这个没有加载。为什么要关心我加载到其他组件中的内容?
完全被这一个难倒。有人有任何建议或遇到过这个吗?
编辑 - 当我尝试构建解决方案时会发生此错误。构建在调试和释放模式下都失败。
答案 0 :(得分:7)
解决方法强>
编辑图像流的顶行:
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
变为AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
关闭并保存resx文件并重新编译。
**注意:唯一的区别是结尾j00LjAuMC4w
到j0yLjAuMC4w
每次在Designer模式下打开表单时都需要这样做。
答案 1 :(得分:1)
您已包含的程序集(动态和静态)可以引用其他程序集。偶尔,加载器出错,或者Visual Studio出错,在这种情况下,它有助于清理任何中间文件(Build> Clean)。
如果您无法添加此引用,或者已添加但无法加载,请考虑使用Fusion日志找出它出错的位置。
注1:我一直处于这样的情况,我发现没有任何问题,只是调试器感到困惑。要自己查看,请在Visual Studio外部以发布模式运行项目。
注意2:无法加载程序集也是一个被捕获的异常,但您的调试器无论如何都会显示它(检查Debug> Exceptions下的设置,以及Options> Debugging)。
编辑:从上面的评论来看,这似乎只是一个64位问题,在this bug-report from Microsoft(信贷Florian Gerhardt)中解释过。我将留下这个答案,因为它可能用于类似场景的一般故障排除。答案 2 :(得分:0)
如果对装配加载问题有疑问,请查看fusion logs。