我在Windows 7 64位操作系统下编译或运行应用程序时,遇到了以下错误消息。我已经搜遍了互联网,很多人都有同样的错误信息。然而,没有任何解决方案能够解决我的问题或情况。我正在使用Visual Studio 2010。
错误消息
错误38:无法加载文件或程序集“file:///D:/Projects/Windows Projects/Weld/Components/FileAttachments/FileAttachments/FileAttachments/bin/x86/Debug/FileAttaching.dll”或其中一个依赖项。尝试加载格式不正确的程序。位置:第1212行,第5个字符。D:\Projects\Windows Projects\Weld\Weld\Weld.UI\frmMain.resx 1212 5 Weld.UI
描述
好的,我有两个项目,一个是UI项目,一个是FileAttachment项目。UI项目引用了FileAttachment项目。当我以“任何CPU”模式编译UI项目时,一切正常,并且它可以运行。我假设在编译时,“任何CPU”将以64位模式运行,因为这是我所使用的平台。
我想以x86模式运行/编译,所以我尝试这样做。我将所有项目的配置更改为x86,并验证这些配置正在编译为x86。我编译后,出现了如上所述的错误。
我觉得很奇怪,它在64位下编译和运行正常,但在32位下却不行。然而,当以“任何CPU”编译并部署到使用x86的用户时,他们仍然可以正常使用,没有任何问题。只是我不能以x86模式编译或运行我的PC。同样地,我可以以“任何CPU”编译并在32位PC上部署而没有任何问题。
两个项目都没有引用任何仅限于64位的DLL文件。已经验证这两个项目的目标是32位DLL文件和.NET框架程序集。
我需要在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版本。
我该如何解决这个问题?我已在互联网上搜索了许多人遇到了相同的错误提示,但问题却不同。