我使用C#和TFS SDK開發特定生成的自動化任務的小型應用程序2008交易在編程TFS
我懷疑我們是否能夠運行鍼對TFS任務交易代碼;例如,我想簽入一個更改,然後自動創建一個標籤,如果標籤創建因某些故障而失敗,我想回滾最後一次更改。
這是可用的,或者我應該編碼?
我使用C#和TFS SDK開發特定生成的自動化任務的小型應用程序2008交易在編程TFS
我懷疑我們是否能夠運行鍼對TFS任務交易代碼;例如,我想簽入一個更改,然後自動創建一個標籤,如果標籤創建因某些故障而失敗,我想回滾最後一次更改。
這是可用的,或者我應該編碼?
是的。我建議把這個分成兩個任務。從第一個任務返回成功/失敗代碼,使用MS BUILD將很容易實現。如果第一個任務成功,那麼執行第二個任務。
HTH
乾杯,塔倫
您必須編寫這 - 的MSBuild支持這個功能雖然。
您的第一步是檢查文件。
<Target Name="Checkin" />
<Exec Command="Command_To_Checkin_File" />
</Target>
下一步是創建一個標籤。儘管如此,如果出現錯誤,我們將回滾結帳。
<Target Name="CreateLabel" />
<Exec Command="Command_To_Create_Label" />
<OnError ExecuteTargets="UndoCheckout" />
</Target>
最後,添加命令以撤消結帳。籤,結賬的
<Target Name="UndoCheckout" />
<Exec Command="Command_To_Undo_Checkout" />
</Target>
實施例和撤消:
對於所有
<Exec WorkingDirectory="$(SolutionRoot)" Command=" />
籤
$(TF) checkin /comment:"Auto-Build: Version Update" /noprompt /override:"Auto-Build: Version Update" /recursive " />
結帳
$(TF) checkout /recursive $(FilePath)" />
撤消
$(TF) undo /noprompt /recursive $(FilePath)"/>
命令「Command_To_Checkin_File」,「Command_To_Create_Label」和「Command_To_Undo_Checkout」是否已經存在?如果沒有,那麼爲什麼不創建一個「try catch」塊呢? 我想到了TFS SDK中內置的用於事務和回滾的更多內在功能。 –
我投了你的答案1 up –
是的,這些命令已經存在。我這樣寫的原因是因爲命令與路徑有關。我應該寫出來並顯示路徑區域正在改變。我會更新答案 –
問題不在於第一項任務成功,它與創建標籤失敗有關。在這種情況下,您不能將該標籤創建通過/失敗回傳給已執行的步驟。 –