错误信息
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编辑/继续,等等。
<data name="ImageList1.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64"> ....{mime data}.... </data>
我能够利用列出的解决方法让它为我工作。
发表于Luis Mack on 5/12/2010 at 8:50 AM
我发现同样的问题,只有在64位机器上编译时的特定项目。 SEEMS工作的一个修复是手动更改图像流中的一个字符每次在设计器中编辑用户控制或表单
AAEAAAD ///// AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
改成
AAEAAAD ///// AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
也就是00LjAuMC4w回到0yLjAuMC4w在行尾(00回0y)
吉姆