我構建了一個包含大量Web應用程序項目的代碼庫,並且在構建期間爲我們的構建存儲生成了webdeploy包。在構建過程模板中的AgentScope期間獲取TFS構建代理ID?
由於NTFS中260字符長度的路徑限制,我的構建失敗,這要感謝webdeploy在用於構建包的目錄內生成重複的文件夾結構,這有效地將用於路徑中文件夾的字符數加倍。對於包含項目名稱和構建標籤的構建工作區,這可能會相當長。
爲了彌補這個第一個問題,我使用_PackageTempDir = C:\ TfsTmp \ Pkg \重定向了包構建目錄,這要感謝我的個人英雄Sayed Ibrahim Hashimi提示。這很好,現在構建成功完成。但是,這限制了我們每個構建代理的單個構建,因爲所有代理都會嘗試使用相同的硬編碼路徑。
爲了彌補這個問題,我想使用用於定義生成代理工作區的$(BuildAgentId)變量,但我不知道如何在生成過程模板中取消引用此變量。當我嘗試時,我只是出現在我的構建服務器上的文件夾結構,如C:\ TfsTmp [$(BuildAgentId)] \ Pkg或C:\ TfsTmp \ $(BuildAgentId)\ Pkg或類似文件。
這個變量在BPT裏面不可訪問嗎?有沒有更好的方法來區分這些文件夾?有沒有更好的方法可以解決我在構建webdeploy包時遇到的最初問題?
我結束了使用BuildAgent.Name,它返回給TFS管理控制檯中的構建代理的名稱,但這足夠接近我到那裏。謝謝! – bwerks