5

这是错误消息:

无法加载文件或程序集“file:///myFile.dll”或其依赖项之一。试图加载格式不正确的程序。第 171 行,位置 5。FrmApproveProfiles.resx

当然,该文件不称为“myFile.dll”。奇怪的是,错误显然在我的一个表单的资源文件中,但这个表单是主应用程序的一部分,与上述 DLL 文件完全分开。此 DLL 文件作为文件加载(不是解决方案中项目的构建)。

当我将图像(任何图像,即 png、bmp 等)加载到我的表单中的 ImageList(在主应用程序中,而不是 DLL 中)时,就会发生错误。我知道图像没有损坏,因为我可以查看它们并在程序的其他地方使用它们,我很困惑为什么我的单独的 DLL 不会因此而加载。为什么要关心我加载到其他程序集中的内容?

完全被这个难住了。有人有任何建议或遇到过这个吗?

编辑- 当我尝试构建解决方案时会发生此错误。构建在调试和发布模式下都失败。

4

3 回答 3

7

解决方法

  1. 在 Designer 中打开 Form 并进行必要的 GUI 更改。关闭设计器并保存
  2. 编译项目并收到 RESX 编译错误(只有带有 Imagelist 的表单应该有这个问题)
  3. 双击 resx compile error 打开 resx 文件。
  4. 滚动到图像流的顶部。
  5. 编辑图像流的第一行: AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w 变为AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w

  6. 关闭并保存 resx 文件并重新编译。

**注意:唯一的区别是结尾的j00LjAuMC4w字符j0yLjAuMC4w

每次在设计器模式下打开表单时都需要这样做。

还要检查这个链接: http ://connect.microsoft.com/VisualStudio/feedback/details/532584/error-when-compiling-resx-file-seems-related-to-beta2-bug-5252020

于 2011-12-12T19:09:01.823 回答
1

您包含的程序集,无论是动态的还是静态的,都可以引用其他程序集。有时,加载程序会出错,或者 Visual Studio 会出错,在这种情况下,它有助于清理任何中间文件(构建 > 清理)。

如果您无法添加此引用,或者已添加但无法加载,请考虑使用 Fusion 日志找出问题所在。

注意1:我一直处于发现没有任何问题的情况,只是调试器感到困惑。若要亲自查看此内容,请在 Visual Studio 外部以发布模式运行项目。

注意 2:也有可能无法加载程序集是一个捕获的异常,但您的调试器无论如何都会显示它(检查您的设置,在 Debug > Exceptions 以及 Options > Debugging 下)。

编辑:从上面的评论来看,这似乎只是一个 64 位的问题,在Microsoft 的这个错误报告中进行了解释(信用 Florian Gerhardt)。我将留下这个答案,因为它可能用于类似情况的一般故障排除。

于 2011-03-10T20:08:32.263 回答
0

如果对程序集加载问题有疑问,请查看融合日志

于 2011-03-10T20:02:31.920 回答