2013-01-11 90 views
3

我們正在考慮將自動版本控制添加到由Team Foundation Server開發並自動構建的本機C++項目。理想情況下,我們將開始構建(從TFS中檢查所有最新版本),然後作爲第一步,從TFS獲取內部版本號,創建頭文件,然後在繼續構建之前將該文件重新簽入。在這樣的構建過程中,甚至可以做結賬/簽入?使用TFS生成版本頭文件

我不是太熟悉,TFS是如何工作的,並從檢索它的信息的能力,也不是別人對我們的團隊,這是我們使用它的第一次...

回答

3

是的,你可以。這是一個很棒的網站,展示瞭如何爲Ass​​emblyInfo for C#做這件事,所以你不得不調整一下解決方案,但它應該顯示你足夠完成你的任務。

在高容量構建環境中對Check Out/In非常小心。你會傾向於得到很多「無法檢出已經鎖定的文件」,並在檢入時發生衝突,因爲在此構建檢出後檢入另一個生成。使用自定義任務進行大量的錯誤處理和驗證以及處理衝突的能力。不要在大量使用TF.EXE。

Web Site

0

有趣的想法,但我不知道是否有可能這樣做會損害內置的構建活動(可能不是),但是,您可以使用調用過程調出您想要的任何其他東西,以便您可以嘗試調用tf.exe(即將FileName設置爲路徑 \ tf.exe,並將參數設置爲「結帳完整路徑文件」)檢出文件,執行編輯/更改(可能位於另一個Invoke Process活動中),然後使用Invoke Process檢查它回到

只是拋出這個想法!

0

不要簽入的版本文件 - 它會引起麻煩沒有結束。相反,使用TFS提供的構建名稱即時生成它,然後使用它進行編譯。我們以Wintelect's solution(支持C++,C#和其他語言)開始,並將其修改爲包含構建的實際版本字符串作爲字符串。

警告:每次創建文件都會破壞增量構建。我們最終只在不存在的情況下重新創建文件,這意味着增量版本具有不正確的版本號 - 但我們的「官方」版本不是增量版,並且具有正確的編號。

+0

好的,我現在正在研究它,至少有一些想法。我的經理堅持要檢查生成的標題,以便我們回顧並跟蹤版本。我也認爲這會導致一些問題。 –

+0

跟蹤版本的正確方法是通過標籤。任何非門控構建(手動,CI,滾動,計劃)將創建一個標籤,並且您可以看到哪個版本包含這種方式。 – Jonathan