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