如何配置 teamcity 构建代理以使用系统上的包含文件?
How to configure teamcity build agent to use include files on system?
我有一个使用 boost headers/libraries 的项目,我想为其创建团队城市构建代理的构建配置 (TeamCity 10.0.2 / Windows 10 / Visual studio 2015)。 boost headers/libraries 不是项目的一部分(即 boost 不在 git 中)。相反,开发机器上的 boost headers/libraries 是相对于项目文件定位的(例如 $(SolutionDir).......\boost_1_59_0).
使用构建代理构建失败,因为找不到 boost 头文件。为了解决这个问题,我尝试了:
- 使用一个固定的位置(例如 C:\boost_1_59_0)并将 boost 放在机器上构建代理 运行s 所在的相同位置,但这没有帮助。
- 创建一个环境变量 INCLUDE 并将其设置为 boost 的位置。它显示在 team city 网络界面中构建代理的环境变量中。
- 将 boost 复制到构建代理工作目录不起作用,因为构建代理删除了该目录。
- 将构建 agent/teamcity 网络服务器设置为 运行 作为非 "local system" 帐户。
如何配置构建代理,使其知道在哪里可以找到 boost 库?
在您的构建配置中,在 sln
构建之前创建一个 新构建步骤 ,它将 boost headers 复制到适当的文件夹中。使用 Command Line Runner 和 xcopy
命令来执行此操作。
命令行可以使用源校验目录:
xcopy /Y /E "E:\local_boost_install_folder" "%system.teamcity.build.checkoutDir%\src\boost_1_59_0"
另一种方法是将脚本工作目录设置为 %system.teamcity.build.checkoutDir%\src\
并创建目录 link:
mklink /D boost_1_59_0 "E:\local_boost_install_folder"
我有一个使用 boost headers/libraries 的项目,我想为其创建团队城市构建代理的构建配置 (TeamCity 10.0.2 / Windows 10 / Visual studio 2015)。 boost headers/libraries 不是项目的一部分(即 boost 不在 git 中)。相反,开发机器上的 boost headers/libraries 是相对于项目文件定位的(例如 $(SolutionDir).......\boost_1_59_0).
使用构建代理构建失败,因为找不到 boost 头文件。为了解决这个问题,我尝试了:
- 使用一个固定的位置(例如 C:\boost_1_59_0)并将 boost 放在机器上构建代理 运行s 所在的相同位置,但这没有帮助。
- 创建一个环境变量 INCLUDE 并将其设置为 boost 的位置。它显示在 team city 网络界面中构建代理的环境变量中。
- 将 boost 复制到构建代理工作目录不起作用,因为构建代理删除了该目录。
- 将构建 agent/teamcity 网络服务器设置为 运行 作为非 "local system" 帐户。
如何配置构建代理,使其知道在哪里可以找到 boost 库?
在您的构建配置中,在 sln
构建之前创建一个 新构建步骤 ,它将 boost headers 复制到适当的文件夹中。使用 Command Line Runner 和 xcopy
命令来执行此操作。
命令行可以使用源校验目录:
xcopy /Y /E "E:\local_boost_install_folder" "%system.teamcity.build.checkoutDir%\src\boost_1_59_0"
另一种方法是将脚本工作目录设置为 %system.teamcity.build.checkoutDir%\src\
并创建目录 link:
mklink /D boost_1_59_0 "E:\local_boost_install_folder"