安装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):2、卸载.net 4.5
3、安装 Microsoft .NET Framework 4 和 .NET 4.0 SDK
默认不装这些,其实可以全选上。
*这篇写得很罗嗦,实在抱歉,因为我还删除,安装的各种进度条等待中。。。
转载请注明出处:http://blog.csdn.net/xiaowei_cqu/article/details/8058661