43

我正在尝试设置 TeamCity 来构建我的项目,但我的 psake buildscript 失败,原因被缩小到无法找到应该在路径上的 git 可执行文件。当我启动 PowerShell 并自己执行该操作时,一切正常。

Path环境变量的内容(如windows环境变量对话框中的系统变量列表,以及注册表中所示HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path)为

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\Git\cmd

然而 TeamCity 说它的 env.Path 只是

C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Windows\System32\WindowsPowerShell\v1.0

我已经重新启动了计算机(多次),但这没有任何帮助。

为什么 TeamCity 构建代理的 PATH 变量与系统默认值不同,我该如何解决?

4

5 回答 5

21

我遇到了同样的问题,只需要重新启动 Team City Build Agent Service 即可获取对 PATH 变量的更改。

于 2014-02-08T06:08:42.777 回答
21

您可以通过在 Mac OS 和 Linux 上添加名为“env.PATH”的构建参数以及以下值来扩展构建代理的路径。

%env.PATH%:/my/path

在 Windows 上使用“;” 而不是“:”作为路径分隔符。

您还可以将以下内容添加到构建代理安装目录中的 conf/buildAgent.properties。

env.PATH=%env.PATH%:/my/path

(文件底部有一条注释显示如何设置环境变量。)

于 2015-05-14T21:00:29.880 回答
10

以前的一些答案是正确的,但缺乏细节(我需要一些时间才能真正理解它们)——我不清楚默认代理在哪里使用其环境变量:所以这里有一种在代理配置中明确修复它们的方法。

用编辑TeamCity/buildAgent/conf/buildAgent.properties文件env.PATH=/usr/whatever就可以了。该文档对此有一个小提示

一旦您编辑了该文件,您就可以在 UI 中签入,Agents > Default Agent > Agent Parameters > Environment Variables因为它们已经更新(请注意,这些变量仅在代理连接时才在 UI 中刷新;如果断开连接,UI 会显示以前的值)。

于 2015-08-26T09:43:42.490 回答
4

tishma 的评论暗示我的解决方案是修改用户Path的环境变量并重新启动Team City Build Agent Service

编辑:此错误已从 TeamCity 7.1 开始修复

于 2012-08-07T16:56:38.563 回答
4

解决方案在 Build Configuration/6 Build Parameters 中,您可以在其中覆盖 env.[ANYTHING] 变量。

PS 很抱歉听到这个消息。我仍然决心通过 TeamCity 取得成功。

于 2012-02-21T11:12:40.890 回答