2

我正在尝试为 Azure 中的 Visual Studio Team Services 创建自定义构建服务器。我已经在虚拟机上安装了构建代理和 Visual Studio Express,该虚拟机正在运行并连接到我在 visualstudio.com 上的项目,作为“默认”池中的构建代理。

但是,当我尝试运行构建时,出现以下错误:

No agent found in pool 1 which satisfies the specified demands:
msbuild
visualstudio
vstest
Agent.Version -gtVersion 1.98.1

MSBuild 已经在 visualstudio.com 的功能列表中,但不是其他两个,所以我仔细研究C:\Program Files (x86)并将这两个功能添加到列表中:

vstest: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
visualstudio: C:\Program Files (x86)\Microsoft Visual Studio 14.0

然后构建至少运行,但在“测试程序集”步骤中出现另一个错误。我认为错误消息中最重要的部分是Unable to determine the location of vstest.console.exe,无论如何,这里都是完整的:

System.Management.Automation.CmdletInvocationException: Unable to determine the location of vstest.console.exe ---> System.IO.FileNotFoundException: Unable to determine the location of vstest.console.exe
at Microsoft.TeamFoundation.DistributedTask.Task.Internal.PowerShell.InvokeVSTestCmdlet.GetVsTestLocation()
at Microsoft.TeamFoundation.DistributedTask.Task.Internal.PowerShell.InvokeVSTestCmdlet.ProcessRecord()
at System.Management.Automation.CommandProcessor.ProcessRecord()
--- End of inner exception stack trace ---
at System.Management.Automation.Runspaces.PipelineBase.Invoke(IEnumerable input)
at System.Management.Automation.PowerShell.Worker.ConstructPipelineAndDoWork(Runspace rs, Boolean performSyncInvoke)
at System.Management.Automation.PowerShell.Worker.CreateRunspaceIfNeededAndDoWork(Runspace rsToUse, Boolean isSync)
at System.Management.Automation.PowerShell.CoreInvokeHelper[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
at System.Management.Automation.PowerShell.CoreInvoke[TInput,TOutput](PSDataCollection`1 input, PSDataCollection`1 output, PSInvocationSettings settings)
at Microsoft.TeamFoundation.DistributedTask.Handlers.PowerShellHandler.Execute(ITaskContext context, CancellationToken cancellationToken, Int32 timeoutInMinutes)
at Microsoft.TeamFoundation.DistributedTask.Worker.JobRunner.RunTask(ITaskContext context, TaskWrapper task, CancellationTokenSource tokenSource)

我已经查看并vstest.console.exe位于vstest我上面指定的文件夹中,我也尝试将此文件夹添加到系统PATH中,但这没有区别。

如何在 Azure 中设置有效的构建代理?

4

4 回答 4

1

Visual Studio Express 没有测试工具。安装 Visual Studio Community(假设您根据许可条款有资格加入 Community),或您或您的组织获得许可的 Visual Studio 版本(专业版/企业版)。

于 2016-07-16T15:54:54.137 回答
1

在测试程序集下的 TFS 构建日志中,我看到了错误:

System.Management.Automation.CmdletInvocationException:无法确定 vstest.console.exe 的位置

我将 VSTest 设置为 Visual Studio 2015,我使用的是 VS/TFS2017,所以切换到最新解决了问题:

在此处输入图像描述

于 2017-06-08T02:13:47.853 回答
0

您需要在构建服务器上安装 Visual Studio。此时,构建代理将识别可用的功能,例如msbuild, visualstudio, and vstest.

于 2016-07-16T14:45:47.317 回答
0

我找到了一个解决方案,你只需要说服你的构建机器它确实安装了 VS。从链接:

对我有用的是创建以下注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\14.0

并在该键中,创建一个名为 ShellFolder 且值为 C:\Program Files (x86)\Microsoft Visual Studio 14.0 的字符串类型的新值。

希望能帮助到你

于 2016-12-12T23:41:04.553 回答