.net – 无法加载文件或程序集…或其一个依赖项 试图加载格式不正确的程序(.resx文件)

我在Windows 7 64位上编译或尝试运行我的应用程序时收到以下错误消息。我已经搜索互联网,许多人都有相同的错误消息。然而,没有解决方解决我的问题或情况。我使用 Visual Studio 2010

错误信息

Error 38 Could not load file or assembly ‘file:///D:/Projects/Windows Projects/Weld/Components/FileAttachments/FileAttachments/FileAttachments/bin/x86/Debug/FileAttaching.dll’ or one of its dependencies. An attempt was made to load a program with an incorrect format. Line 1212,position 5. D:\Projects\Windows Projects\Weld\Weld\Weld.UI\frmMain.resx 1212 5 Weld.UI

描述

OK,所以我有两个项目,一个UI项目和一个FileAttachment项目。 UI项目具有对FileAttachment项目的引用。当我编译UI项目在“任何cpu”模式,一切工作正常,它运行。我假设’任何cpu’将运行在64位模式,当我编译,因为那是我使用的平台。

我想运行/编译为x86,所以我试着这样做。我将所有项目的配置更改为x86,并验证这些配置是否正在编译为x86。我编译并得到如上所述的错误

我发现它奇怪,它编译和工作正常在64位,但不是32位。但是,当编译和部署到用户作为“任何cpu”,如果这些用户有x86它仍然为他们工作没有任何问题。我只是不能编译或作为x86在我的电脑上运行。再次,我可以编译为任何cpu和部署到32位PC没有任何问题。

这两个项目都不引用任何64位的DLL文件。这两个项目都被验证为针对32位DLL文件和.NET Framework程序集。

我需要在32位模式下本地编译和运行。我需要JIT编辑/继续,等等。

这里是resx文件中的代码行是导致问题:

<data name="ImageList1.imagestream" mimetype="application/x-microsoft.net.object.binary.base64">
....{mime data}....
 </data>

resx文件已验证是为.NET 2.0生成的,并且仅引用.NET 2.0程序集,而不是.NET 4.0版本。

如何解决这个问题?我搜索了互联网,并发现数百人有相同的错误消息,但一个不同的问题。

这似乎是一个VS 2010错误与图像列表。见 https://connect.microsoft.com/VisualStudio/feedback/details/532584/error-when-compiling-resx-file-seems-related-to-beta2-bug-5252020?wa=wsignin1.0

我能够利用列出的解决方法让它为我工作。

发表于Luis Mack on 5/12/2010 at 8:50 AM
我发现同样的问题,只有在64位机器上编译时的特定项目。 SEEMS工作的一个修复是手动更改图像流中的一个字符每次在设计器中编辑用户控制或表单

AAEAAAD ///// AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w

改成
AAEAAAD ///// AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w

也就是00LjAuMC4w回到0yLjAuMC4w在行尾(00回0y)

吉姆

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...