在进行编译的时候遇到这个问题,搜索下,很多博客和论坛都是用更改VS的默认设置选项,去解决这个问题。
我希望用一个更自然地方式,即问题不是因为更改VS的设置造成的,就尽量不去动VS的设置。
CAUSES
1. 由于你安装了VS2010后,又安装了Visual Studio 2012;
2. 另一个原因是net Framework 4.0被.net Framework 4.5替换了;
3. .net Framework文件损坏;
HOW TO SOLVE
卸载 .Net Framework 4.5,下载.Net Framework 4.0(即dotNetFx40_Full_x86_x64)安装,就可以解决这个问题。
OTHER WAYS
对于安装VS2012引起的错误,可以采用:
检查 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe(VS的安装目录,也可能是D盘、E盘)下 cvtres.exe的版本
错误的版本: 2010年3月18日
正确的版本: 2011年2月21日
如果你的是错误版本,把
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cvtres.exe
下的cvtres.exe
替换到
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\cvtres.exe
CONCLUSION:
LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt错误到此就解决了。
如果采用 卸载 .Net Framework 4.5 重装.Net Framework 4的方法,系统如果自动更新.Net Framework 4.5,可以进行如下设置,暂时阻止自动更新。参考:
- 启动注册表编辑器。为此,单击开始,单击运行,键入regedit,,然后单击确定。
- 找到并单击以选中下面的注册表子项:
HKEY_LOCAL_MACHINE\Software\Microsoft\NET Framework Setup\NDP
- 在编辑菜单上,指向新建,然后单击项。 键入WU。
- 右键单击WU,指向新建,然后单击DWORD 值。 键入BlockNetFramework451。
- BlockNetFramework451,右键单击,然后单击修改。 在数值数据框中,键入1,然后单击确定。