使用Microsoft c++编译器,无需安装Visual Studio

Using Microsoft C++ compiler without installing Visual Studio

本文关键字:安装 Visual Studio Microsoft c++ 编译器 使用      更新时间:2023-10-16

在我们的团队中,开发人员都使用Visual Studio 2012,我们也使用TFS2012构建。对于空间& &;由于可管理性的原因,我们没有在我们的(许多)构建代理上安装Visual Studio。到目前为止,这在c#项目(csproj)中是有效的。

现在我们想添加对c++项目(vcxproj)的支持。这些都是在开发者的机器上构建的,而不是在构建代理上——我们得到:X.vcxproj(31,3): error MSB4019: The imported project "C:Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

我想这是因为c++编译器&目标只使用VS.

安装。
  1. 是否有一种方法来检查编译器&目标,并设定一些属性在我们的共同。目标指向哪里?
  2. 如果失败,我需要在每个构建代理上安装支持c++编译的最小值是什么?至少我能找到的是VS Express,这仍然是我太喜欢了。

对于c#来说很简单,编译c#程序的能力是框架、System固有的。CodeDom,所以只要安装。net就足够了。c++则不是这样。你至少需要安装Windows SDK,半gb。这包括SDK版本低于8.0的c++编译器

然而,接下来您将烦恼如何在该机器上找到获得类库的方法。例如ATL和MFC。你不能只是复制它们,那违反了许可。更糟糕的是,微软不再像以前那样做生意了。从VS2012开始,他们转向了快速发布周期,更新以几个月的方式发布。这些更新不是你可以忽略的,它们为c++ 11的实现增加了相当重要的部分。这绝对是c++程序员想要使用的类型。

一般来说,c++编译器的SDK版本与VS版本不同步,Windows团队没有义务保持更新。构建机器应该永远不应该做的一件事是运行一组不同于程序员使用的构建工具。这使得开发人员无法复制的构建中断成为争论的焦点。除非你喜欢让你的生活变得复杂,否则信息是明确的。不要这样做,安装VS.


更新:自从写这篇文章以来,微软提出了一个有吸引力的解决方案。发布"Visual studio构建工具"包中。当前下载页面在这里,但它四处移动,所以谷歌的产品名称来追逐它。该许可证允许任何拥有Visual Studio版本的有效许可证或想要使用它来测试/发布开源产品的人使用。

这个问题在早期的TFS版本中也存在。据我所知唯一的解决办法就是把目标复制给特工。创建这个文件夹的副本应该足够了:

MSBuildMicrosoftVisualStudiov11.0*.*

至少您不必在代理上安装Visual Studio(除非您想自动设置项目创建)。