在Visual Studio Online上使用CMake构建托管代理

时间:2015-09-27 08:02:36

标签: cmake azure-devops

如何获得Visual Studio Online构建步骤" CMake"在他们的托管代理池上工作? Documentation说CMake应该在构建服务器上可用,但是没有" cmake"能力在"控制面板/代理池/托管代理"。

更多详情:

  1. 我试图对托管的构建进行排队,其中包括" CMake"步骤,但会显示消息:" 请求或定义存在可能阻止构建运行的问题:找不到具有以下功能的代理:cmake,msbuild,visualstudioQueue构建还是什么?"
  2. 查看"控制面板/座席池/托管代理"我看不到" cmake"列表中的功能。 capabilities list

3 个答案:

答案 0 :(得分:4)

是的,您在托管构建代理功能列表中看不到cmake这一事实意味着托管代理不是为运行cmake构建而设计的。

当您在构建定义中添加CMake构建步骤时,引擎会自动添加cmake作为其中一项要求,因为the task definition要求:

try
{
    $cmake = Get-Command cmake.exe
    Write-Verbose ('Using {0}' -f $cmake.Path)
}
catch
{
    throw (Get-LocalizedString -Key 'Unable to find {0}' -ArgumentList 'cmake.exe')
}

任务本身假定cmake.exe位于构建代理程序的PATH中。看看this code

{{1}}

因此,尽管托管代理按设计工作并且您无法控制此问题,但您应该采取以下措施使另一个构建代理符合cmake:

  • 在构建代理上安装cmake并确保cmake.exe位于路径
  • 将CMake作为功能添加到构建代理程序。这可以通过在Web UI中添加自定义功能,或者通过创建名为" cmake"的环境变量来隐式地完成。在构建代理上,TFS会自动找到它。

希望这有帮助。

答案 1 :(得分:2)

微软确认这是一个错误,它应该在下一个构建服务器映像更新中修复。直到那个时刻问题可以通过这种方式解决:

  1. 使用下面的命令创建一个.bat并将其检入源代码控制     SET PATH = C:\ Program Files(x86)\ CMake \ bin \;%PATH%
  2. 在CMAKE任务之前的某个时间添加一个BATCH SCRIPT任务,该任务在步骤1中运行.BAT。
  3. 检查BATCH SCRIPT任务的Modify Environment选项(这样就可以将PATH更改保留在CMAKE任务中。
  4. 使用区域路径C:\ Program Files(x86)\ CMake \ bin \ cmake.exe
  5. 在托管池上添加CMake功能

答案 2 :(得分:0)

要在VSO托管代理程序池上使用CMake构建,您需要将CMake构建步骤添加到构建定义中。参见:

enter image description here