2013-06-27 89 views
2

問題 我有一個構建定義存在於TFS(我不能改變)。我正在自動執行我們的文件收集過程,其中我需要執行此構建定義,獲取放置位置並將這些輸出複製到所需的位置。TFSBuild命令行工具獲取構建完成詳細信息

解決方案: 我們已經有一個批處理文件,它執行文件複製操作。所以我正在嘗試整合一切。 我使用TFSBuild.exe(命令行工具)開始構建。提供服務器路徑,構建定義名稱。構建成功完成。

我的問題是我無法獲得文件夾的名稱(或任何構建完成詳細信息),其中當前執行的構建定義已刪除要附加到放置位置的輸出。 我想獲取值建立完成後的文件夾

(如果有任何更好/更簡單的方法,這將是有益的)提前

感謝。

回答

-1

看看互聯網上的所有輸入和評論,似乎沒有辦法從TFSBuild.exe中提取更新的內部版本號/名稱/下拉文件夾名稱。

所以,我管理了一個Workaorund。 (單調乏味,但有效)

將TFSBuild.exe命令的所有輸出都推送到一個txt文件中。

TFSBuild.exe啓動「TFS服務器路徑」 >>「有些TXT文件」

解析txt文件,並提取含行值「更新的內部版本號:」而獲得的輸出文件夾名稱。

因爲我知道放置所有構建的放置位置,請附加文件夾名稱並獲取文件。

+0

有限訪問構建定義背後的原因是什麼?這對於構建定義(xaml或tfsbuild.proj)中的簡單文件複製活動來說是一種矯枉過正。 – Isaiah4110

1

您可以指定droplocation作爲使用TFSBuild.exe排隊構建的一部分。 「TFSBuild.exe幫助啓動」在命令行應該可以幫到你。

請注意,如果您仍在使用批處理文件將文件從放置位置複製到其他位置進行打包,那麼在我看來,該流程根本不是自動的。自定義您的構建過程,使用WIX打包代碼。在源代碼編譯結束後,您可以啓動WIX包,並且構建的最終輸出將成爲部署的MSI!

+0

AG_85:我知道構建放置輸出的共享位置路徑,我不想爲此構建創建另一個放置位置。想要執行現有的構建定義,即使用現有的配置。我知道放置路徑,但問題是獲取在放置文件的位置創建的文件夾的名稱。 –

+0

對不起,我最初感到困惑,但我現在得到你的問題。恐怕我不認爲有任何通過使用TFSBUILD.exe訪問生成droplocation的方法。如果您可以控制構建定義,則可以輕鬆實現此目的。如果您使用的是TFS 2010,請編輯您的構建模板以更新SetDropLocation活動。 或者使用自定義活動在構建本身結束時進行所有自定義複製。 – Isaiah4110

+0

感謝AG_85的輸入。 –

0

如果我完全理解了你的問題,$ env:BUILD_ARTIFACTSTAGINGDIRECTORY應該可以幫到你! 感謝您發佈這個問題!