我正在构建一个包含许多 Web 应用程序项目的代码库,并且我们在构建期间为我们的构建商店生成 webdeploy 包。
由于 NTFS 中 260 个字符长度的路径限制,由于 webdeploy 在用于构建包的目录内产生了重复的文件夹结构,我的构建失败,这实际上使路径中用于文件夹的字符数增加了一倍。对于包含项目名称和构建标签的构建工作区,这可能会很长。
为了解决第一个问题,我使用 _PackageTempDir=C:\TfsTmp\Pkg\ 重定向了包构建目录,这要感谢我的个人英雄 Sayed Ibrahim Hashimi 的提示。这很好用,现在构建成功完成。但是,这将我们限制为每个构建代理一次构建,因为所有代理都会尝试使用相同的硬编码路径。
为了解决这个问题,我想使用 $(BuildAgentId) 变量来定义构建代理工作区,但我不知道如何在构建过程模板中取消引用这个变量。当我尝试时,我只是在我的构建服务器上出现文件夹结构,如 C:\TfsTmp[$(BuildAgentId)]\Pkg 或 C:\TfsTmp\$(BuildAgentId)\Pkg 或类似的。
这个变量是否无法从 BPT 内部访问?有没有更好的方法来区分这些文件夹?有没有更好的方法来解决我在构建 webdeploy 包时的原始问题?