我已经安装了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,重新启动,问题仍然存在!的帮助!


当前回答

我在更新。net后遇到了同样的问题: 我先卸载了。net框架, 从visualstudio.com下载visualstudio,选择“repair”。

NET框架自动安装与visual studio ->和现在它工作良好!

其他回答

这是因为。net Framework 4.5正在取代。net Framework 4.0。 我卸载了几次Visual Studio 2010,但都没有成功。当我删除。net Framework 4.5并重新安装Visual Studio 2010时,它运行得很好。

请参见完全卸载Visual Studio 11来重新安装。

这个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。

在2014年1月,由于某些原因,我安装了。net Framework 4.5.1,我不知道是由于第三方软件安装还是自动更新。

1月29日,我安装了一个组件,我开始收到

LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt 

消息。当时我通过避免增量环节来解决。

1月31日,我安装了。net Framework 4.5.1的另一个组件,增量链接的把戏再也不管用了。然后我安装了Visual Studio 2010 SP1,但后来问题变成了:

Error   6   error LNK1104: cannot open file 'msvcrtd.lib'. 

我认为SP1搞砸了我的Visual Studio 2010安装。

所以我卸载了。net Framework 4.5.1,安装了。net Framework 4.0,然后卸载并重新安装了Visual Studio 2010。这对我很管用。

总结:

Step1

Project Properties 
   -> Configuration Properties 
       -> Linker (General) 
          -> Enable Incremental Linking -> "No (/INCREMENTAL:NO)"

如果第1步不奏效,执行第2步

Project Properties 
   -> Configuration Properties 
       -> Manifest Tool (Input and Output) 
          -> Enable Incremental Linking -> "No"

如果第二步不起作用,执行第三步 复制文件之一:

C:\Program Files (x86)\Microsoft Visual Studio 11.0 \ VC \ bin \ cvtres.exe C:\Program Files (x86)\Microsoft Visual Studio 12.0 \ VC \ bin \ cvtres.exe C:\Program Files (x86)\Microsoft Visual Studio 13.0 \ VC \ bin \ cvtres.exe 然后替换到C:\Program Files (x86)\Microsoft Visual Studio 10.0 \ VC \ bin \ cvtres.exe 和我一起,做3步

我将启用增量链接设置为“No (/ Incremental: No)”,但它对我不起作用。

接下来我改变了:

Project Properties 
   -> Configuration Properties 
       -> General
          -> Platform Toolset -> "Visual Studio 2012 (v110)"

这对我来说很有用:)