簡體   English   中英

如何在用戶簽入代碼后在TFS服務器上執行代碼

[英]How to execute code on TFS server after a user checks in code

我正在構建一個集成系統,當用戶檢查某些更改時,需要在Team Foundation Server(2010+)服務器上執行某些代碼。 我可以通過圖解方式訪問檢查沒有問題,但我想知道何時添加新的檢查。 理想情況下,我希望收到通知並給出檢入數據,以便我可以操作它並將我需要的內容發布到不同的API,但如果通知新的檢入完全存在,那就足夠了。 理想情況下,我可以讓tfs在同一台機器上執行對我自己的C#代碼的調用。

在過去的兩天里,我一直在尋找互聯網,我堅信這是可能的,但我似乎無法找到有關如何做到這一點的任何細節,坦率地說,我的想法已經不多了在哪里看。 如果有人對從哪里開始,在哪里看,或者理想的任何類似的來源想法有任何想法,我們將不勝感激。

主要是,我一直在挖掘TFS集成工具,但是這方面的文檔充其量仍然值得懷疑。 我已經找到了所有現有的適配器源代碼(用於clearcase等),但沒有看到任何觸發執行的地方,因為我懷疑它們更適合單向遷移。

有不同的方法可以解決這個問題:

  1. 團隊建設。 通過使用TFS Build Server,您可以創建持續集成構建或Gated Checkin構建。 在構建工作流程中,您可以響應您檢測到的任何更改。 您可以使用TFS客戶端對象模型來獲取Changeset對象。 它包含您需要的所有數據。 ALM Rangers編寫了一份詳盡的指南,解釋了如何擴展和自定義構建過程以滿足您的需求。

  2. 簽到政策 通過創建自定義簽入策略,您可以在客戶端(Visual Studio內部)上運行代碼預簽入。 此政策可以作為如何與待處理更改進行交互的示例。

  3. ISubscriber TFS應用程序層插件。 已經被@ppejovic提到了。 Application Tier插件安裝在TFS服務器上,將在進行中運行。 由於它是在托管過程中,你可以做很多事情。 作用於工作項和/或源代碼管理的示例是合並工作項處理程序,即TFS聚合器 如果需要,您還可以回退到客戶端對象模型, 如此處所述

  4. SOAP API。 這是ISubscriber接口的前身。 您仍然可以使用它,但您將從ISubscriber解決方案中獲得更多功能和效率。

  5. 客戶端對象模型 您始終可以在定期連接到TFS的系統上創建服務或預定作業,以便自上次檢查以來請求歷史記錄。 通過簡單地存儲查詢比您目前所見的最高變更集編號更新的所有內容,您可以獲得所需的所有信息,而無需擴展TFS本身。 您將尋找VersionControlServer類。 QueryHistory方法是獲取更改集所需的方法。

有一個很好的Pluralsight課程,帶你了解這些場景中的一些

與大多數這些項目一樣,文檔很少,Red-Gate Reflector .NET或Jetbrains dotPeek等工具非常寶貴。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM