在Jenkins上构建时,VS2012解决方案中的MSB4019

时间:2013-12-09 13:46:16

标签: visual-c++ visual-studio-2012 msbuild jenkins windows-7-x64

我正在设置我们的构建服务器。我在Windows 7机器上安装了Jenkins,在构建64位版本的解决方案时遇到了问题。

我们正在使用Visual Studio 2012 Express for Windows Desktop。 Jenkins使用MSBuild插件,目标是

的64位MSbuild exe
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe

但是,当它运行msbuild时,没有正确解析环境变量。 VCTargetsPath。

如果我按原样保留所有内容,那么MSBuild的输出就是这个

  

错误MSB4019:找不到导入的项目“C:\ Microsoft.Cpp.Default.props”。确认声明中的路径是否正确,以及该文件是否存在于磁盘上。

我在注册表,Windwos环境变量和Jenkins Eviornment变量中使用了VCTargetsPath变量。我注意到了这种行为。

如果我将VCTargetsPath设置为“C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V110”,则msbuild的输出与上面相同。但是,如果我将其设置为“C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0”,则输出将更改为此。

  

错误MSB4019:找不到导入的项目“C:\ progra~2 \ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.Cpp.Default.props”。确认声明中的路径是否正确,以及该文件是否存在于磁盘上。

瓷砖Microsoft.Cpp.Default.props位于“C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V110”中我检查了环境变量长度的限制,它应该是2048个字符。我错过了一些明显的东西吗?我发现了一些信息基本上说我将不得不以特定的顺序重新安装所有内容,这非常烦人(但也非常微软)。

3 个答案:

答案 0 :(得分:6)

我通过添加
来修复此问题 /p:VCTargetsPath="C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120"
越优雅 /p:VisualStudioVersion=12.0

进入 Build > Build a Visual Studio project or solution using MSBuild > Command Line Arguments

答案 1 :(得分:0)

您的第一轮修复 - 尝试构建服务器。

在构建计算机上安装适当的SDK。

http://www.microsoft.com/en-us/download/details.aspx?id=8279

如果不起作用,请回报。

编辑:

/p:VisualStudioVersion=11.0

将其添加到命令行...作为msbuild.exe的参数

编辑:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe

我有一个64位版本的msbuild.exe。 这不是你展示的。 我猜不出来,没什么具体的,仅供参考。

答案 2 :(得分:0)

尝试传递:/ p:PlatformTarget = x86作为MSBuild的参数之一。