使用Microsoft C ++编译器而不安装Visual Studio

时间:2013-03-14 12:55:51

标签: c++ visual-studio visual-c++

在我们的团队中,开发人员都拥有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 ++编译器&amp;目标只与VS一起安装。

  1. 有没有办法只检查编译器&amp;目标,并在我们的common.targets中设置一些属性指向那里?
  2. 如果不这样,我需要在每个构建代理上安装什么来支持C ++编译?我能找到的最少的是VS Express,这仍然是我不喜欢的。

2 个答案:

答案 0 :(得分:13)

C#很简单,编译C#程序的能力在框架System.CodeDom中是天生的,所以只需安装.NET就足够了。对于C ++来说并非如此。您至少需要安装Windows SDK,半场演出。这包括早于8.0的SDK版本中的C ++编译器

然而,接下来,您会担心找到一种方法来获取该机器上的类库。以ATL和MFC为例。你不能只是复制它们,这违反了许可证。更糟糕的是,微软并没有像过去那样开展业务。自VS2012以来,他们改为快速发布周期,并以几个月的方式发布更新。这些不是你可以忽略的更新,它们添加了很多主要的块来实现C ++ 11。绝对是你的C ++程序员想要使用的那种。

通常,C ++编译器的SDK版本与VS版本不同步,Windows团队没有义务保持更新。构建机器应该从不做的一件事是运行一组不同于程序员使用的构建工具。这使得构建中断无法被开发者重现一个非常讨厌的争论点。除非你喜欢让你的生活变得复杂,否则这个信息很清楚。不要这样做,安装VS。

答案 1 :(得分:0)

早期TFS版本也存在此问题。据我所知,唯一的解决方案是将目标复制到代理。创建此文件夹的副本应该足够了:

  

MSBuild\Microsoft\VisualStudio\v11.0\*.*

至少您不必在代理上安装Visual Studio(除了您希望自动创建安装项目)。

错误也被描述为here

相关问题