zoukankan      html  css  js  c++  java
  • 在VS2012下不安装VS2010编译VS2010的工程

    虽然一路追随这VISUAL SUTDIO在编程,但是断档的情况还是有的,最近一次硬盘问题使得安装了所有的VS2003-VS2012的机器硬盘挂了,无奈只能够安装了,不过觉得没啥用了,就安装一个VS2012不就OK了嘛,不过因为VS2012对VS2010完美支持vcxproj,使得完全可能在VS2012中编译VS2010的工程,但是必须安装IDE,这太麻烦了,有人也提出了不安装VS2010进行工程编译的想法,不过最后也没有得出结论。

    之前也有过研究,发现MSBUILD进行编译的需要一套“规则”,都是放在MSBuild/Microsoft.Cpp/v4.0下面,在VS2010的时候占用了整个目录,结果V110只能够单独用一个目录来存放差不多的东西了。如果从安装好VS2010的机器上放整个这个目录的内容,在VS2012里面切换编译器platformtoolset就可以看到有VisualStudio 2010的提示,开始还以为需要修改注册表的其实完全不用!

    不过直接编译还是会报错,大概意思就是找不到Microsoft.Build.CppTasks.Common和之前看到的差不多了,也就是说这个需要注册,因为是.NET的,所以基本上就是放到GAC里面去,用gacutil -i就可以解决问题了(需要注意gacutil的版本,默认的话会使用低版本的gacutil会提示无法加载,其实用2012自带的gacutil即可,也可以用microsoft sdks下面的工具,只要是.NET4以上的),这下出错提示也改为找不到某些环境变量,其一是VCInstallDir,另外一个是WindowsSdkDir,这需要依靠注册表。从安装了VS2010的机器上来看,这些在HKLM/Software/Microsoft/VisualStudio/里面的10.0整个复制过来(很大的,6M,压缩一下吧),然后还有是HKLM/Software/Microsoft/Microsoft SDKs也整个复制过来,这下warning都没了,只有提示Microsoft.Build.CppTasks.Win32找不到,肯定还要注册,继续把MSBuildMicrosoft.Cppv4.0PlatformsWin32这个下面的也注册了,把x64也注册了。

    这个时候CL和LINK还有WindowsSDK就绪(复制到经典目录下吧!)然后编译竟然就可以了!看来情况不是太复杂啊,另外编译结束的时候发现mt.exe不存在,这个估计是复制的目录选的不好,如果没有的话从VS2010那7.0A的bin下面复制到对应的目录下即可,注意.manifest啥的也需要~

    另外查了一下关于MSBuild独立安装的资料,似乎只需要把Microsoft SDKs Windows安装完以后,就会有MSBuild安装完,即如果需要实现编译服务器无VS2010也是可能的!

  • 相关阅读:
    新功能:查看TrackBack过来的文章
    新功能发布: 数据备份
    小题大作:.Text中恶意脚本过滤的新方法
    新增关闭邮件通知功能
    Will Mono Become the Preferred Platform for Linux Development
    Test Driven Development 资源
    收藏夹注意事项
    功能调整:阅读排行、回复排行
    首页增加了到第二书店的链接
    DotGNU Portable.NET
  • 原文地址:https://www.cnblogs.com/gc2013/p/3912426.html
Copyright © 2011-2022 走看看