我已经安装了Visual Studio 2012发布预览版,它看起来很好,但现在当我尝试使用Visual Studio 2010编译c++项目时,我得到了以下错误消息:

链接:致命错误LNK1123:转换到COFF期间失败:文件无效或损坏

我不是100%确定,但这似乎与项目中有.rc(资源)文件有关。

我尝试从添加/删除程序和重新启动修复Visual Studio 2010,但这没有效果。

如果我使用Visual Studio 2012 RC来编译c++项目,而设置使用Visual Studio 2010工具集,我也会得到相同的错误。升级到Visual Studio 2011工具集可以解决这个问题(当然,我不想对产品代码这样做)。

更新:我已经卸载了Visual Studio 2012,重新启动,问题仍然存在!的帮助!


当前回答

检查cvtrs.exe的版本:

dir "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe"

错误的版本: 日期:03/18/2010 时间:下午01:16 大小:31,048字节 名称:cvtres.exe

正确的版本: 日期:02/21/2011 时间:下午06:03 大小:31,056字节 名称:cvtres.exe

如果你有错误的版本,你应该复制正确的版本:

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe

把这里的替换掉:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe

i.e.

copy "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe"

其他回答

这个MSDN线程解释了如何修复它。

总结:

或者通过转到禁用增量链接 项目属性 ->配置属性 >链接器(通用) ->启用增量链接-> "No (/ Incremental: No)" 或安装VS2010 SP1。

编辑(@CraigRinger):注意,安装VS 2010 SP1将删除64位编译器。你需要安装vs2010 SP1编译器包来取回它们。

这将影响微软Windows SDK 7.1的Windows 7和。net 4.0以及Visual Studio 2010。

我最终通过完全卸载VS2012 RC解决了这个问题,然后完全卸载VS2010,然后重新安装VS2010。

花了很长时间,但我现在又可以在VS2010中编译c++项目了。

如果你已经安装了Visual Studio 2012 RC,那么它会安装。net 4.5 RC。

卸载。net 4.5 RC,并安装你需要的版本(VS 2010为4.0)。这应该可以解决您遇到的任何问题。

这解决了同样的问题。不需要卸载Visual Studio。

我在使用微软Visual Studio 2010终极版时也遇到了同样的问题,这个问题用youtube视频中描述的方法解决了

视频建议将C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin(在我的Win7X64匹配机中)中的文件cvres .exe重命名为cvres -old.exe

在启用增量链接->“No (/ Incremental: No)”后,它不为我工作,但在我删除rc文件后,它为我工作。