当我在本地构建时,使用 MSBuild 构建 RAD Studio 2010 项目可以正常工作。构建BPL文件的子项目最终位于C:\Users\Public\Documents\RAD Studio\7.0下,因为没有设置其他输出目录。
使用 TeamCity 构建时,一切都崩溃了。抱怨找不到子项目生成的BPL文件。查看应该最终没有创建的目录。相反,BPL文件最终位于项目目录中。
在挠了挠头,检查环境变量等并设置了所有BDSCOMMONDIR和类似变量等之后,我突然意识到 TeamCity 构建代理作为SYSTEM帐户运行。我使用SYSTEM帐户打开了命令提示符
PsExec.exe -i -s cmd.exe
我再次检查了环境变量,它们都存在于该帐户中。以 SYSTEM 身份在本地开始构建,同样的问题。BPL 文件在项目目录而不是默认文件夹中,后续项目找不到BPL文件,因为它们在默认位置查找,构建失败。
但为什么?
使用另一个用户,它可以很好地编译并运行 TeamCity 构建代理,因为该用户使 TeamCity 能够正确完成构建。