什么可能导致.resx文件在Windows XP下正确编译,但在Windows 7 64位下失败并出现错误137?

时间:2011-02-04 14:50:29

标签: visual-studio-2010 windows-7 64-bit

我遇到了一个非常奇怪的场景。我的解决方案中有一个.resx文件导致问题。

使用在Windows XP下运行的Visual Studio 2010,该解决方案可以毫无问题地编译。

使用在Windows 7,64位下运行的Visual Studio 2010,相同的解决方案报告构建失败,错误137

An attempt was made to load a program with an incorrect format. Line 204, position 5. [Path Sanitized]\RemoteFileView.resx

有问题的资源文件似乎有效,所以我无法解释问题。

有人可以建议可能出错的地方吗?

澄清:VS 2010抱怨的问题是一个简单的< / data>元件。 XML看起来很好。

3 个答案:

答案 0 :(得分:4)

根据错误消息中的字符串,当设计者尝试加载时会抛出BadImageFormatException

这很可能是一个比特不匹配的问题。您是否尝试过重建解决方案?你能通过MSBuild在命令行上构建吗?您的所有项目都是针对“任何CPU”,还是您有特定于处理器的项目?

请查看this blog post,其中Sara Joiner描述了您可能会详细查看此问题的情况。

答案 1 :(得分:2)

将系统迁移到64位时,我也遇到了同样的问题。对我来说唯一的解决方案是,每当我更改gui和resx文件的内容时,我都必须执行以下操作:

将字符串j00L的所有出现替换为j0yL

您现在可以编译了!

答案 2 :(得分:1)

这是微软已经知道一年多的Visual Studio的错误。有关更多信息,请参阅以下链接:

我最近不得不将我们的Windows窗体项目升级到.NET 4.0,因为只要我们触摸(读取已保存)设计器,它就会更正我们的嵌入式图像。错误的界限只是一堆笨蛋。

不幸的是,没有一个建议的解决方法对我们有用,所以我们不得不咬紧牙关并升级。