【Error】安装VS2012后VS2010工程失败

时间:2022-09-07 13:09:50

安装VS2012后遇到的问题

悲剧的种子是在上个月初种下的。。。9月份微软发布了Visual Studio2012(发布会),我是个对各种“新版本”极有偏好的人,一看到新闻就立刻下载了VS2012 Pro版,花了几个小时安在原本装有VS08,VS10版本的电脑上。装下来之后体验还是挺不错的,启动速度感觉比10快了许多,而且代码的智能提示也很给力,不需要Visual Assist 之类的插件就能高亮代码,支持第三方库提示。而且有很强大的代码比较和代码图形化功能(参见:VS2012初体验

不过一大问题就是,之前VS2010的工程都无法正常编译了!!!会报错:

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

当然12肯定是兼容10的,于是我以为上面的错误是因为不能装在一个盘之类的,也没有细看,开始用12写代码。 直到我在跑一个之前写的程序时,遇到了如下错误:

unhandled excpetion at 0x1012B7EF opencv_imgproc242d

OpenCV中一个tbb加速模块的dll(tbb_preview_debug.dll)不能正确调用。我用的是OpenCV2.4.2的版本,下载库中直接有编译好的migw,vc8,vc9和vc10版本。所以这个问题也不是很难解决:把OpenCV的源码用VS12重新编译一遍。 重新编译OpenCV的源码可以解决tbb的问题,但后面程序生成dll以及部署还是有很多问题,这我就不详述了,总之,我开始重新关注一开始遇到的问题:

为什么安装VS2012之后,VS2010的工程会出现问题?


社区里不少人遇到这个问题,这个是个比较全的帖子:
Uninstall Visual Studio 11 completely to do a fresh install

简单说就是VS2012里用的.net 4.5(Compatibility of .NET Framework 4.5),安装12之后会默认覆盖掉原来VS2010里用的.net 4.0。VS2010是不支持4.0的,你可以直接下载一个Visual Studio 2010 SP1升级包(VS10sp1-KB983509.exe),这样也把10跑起来。但这样你要保证程序发布时打入.net4.5的包,而且,.net4.5是不支持XP的!!

上面那个帖子里(Uninstall Visual Studio 11 completely to do a fresh install),提问的童鞋和我一样决定放弃12,重用10,用了最暴力的方法解决问题:
卸载12;卸载10;重装10。
注意:单纯卸载12是不能解决问题的,因为卸载12会同时卸载掉.net 4.5,但之前.net 4.0被替换更新的部分也卸掉了。只卸载12重新运行工程还会用新的错误:

error MSB6006: "link.exe" exited with code 1123.

当然也不用卸载,重装10,只要在卸载12之后repaire一下.net 4.0就可以了: How to completely uninstall VS 2012 RC?
Uninstall Visual Studio 2008

下面是我的解决过程~

1、在控制面板里卸载VS2012

(最好不要在360之类的里面卸载,你可以看360里显示12大概只有2G): 【Error】安装VS2012后VS2010工程失败

2、卸载.net 4.5

【Error】安装VS2012后VS2010工程失败

3、安装 Microsoft .NET Framework 4 和 .NET 4.0 SDK

【Error】安装VS2012后VS2010工程失败
默认不装这些,其实可以全选上。

*这篇写得很罗嗦,实在抱歉,因为我还删除,安装的各种进度条等待中。。。

转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/8058661