使用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可以正确完成构建。