[英]TFS 2010 tracking build definition changes?
有沒有辦法跟蹤TFS 2010中的構建定義的更改? 請訪問visual studio中的'團隊資源管理器>項目名稱>構建',看看我在說什么。 您需要訪問TFS服務器才能看到我所指的內容。 現在,在Team Explorer> ProjectName> Builds中,您可以創建一個構建定義來編譯TFS上的csproj或sln文件。 我想知道的是,如果我對現有構建定義進行任何更改或添加新構建定義,有沒有辦法對這些構建定義進行版本化?
當團隊中的某個人修改了構建定義時,我遇到了同樣的問題,我試圖找到所有可用的選項,但是除了Xeam Build Definition Extension
之外沒有找到,只有VS 2012以后才支持並且有一些缺點,所以最后立即獲得解決我寫了一個小程序,它返回Last Modified By
和Last Modified Date
和完整的Build Definition
的詳細信息,您可以與以前的版本進行比較,以查找得到了改變。
導入Microsoft.TeamFoundation.Build.Client
Private Const RootFolder As String = "C:\TFS Utility Reports\"
''' <summary>
''' To Get the Build Definition Details
''' </summary>
''' <param name="teamProjectName"></param>
''' <param name="buildDefinitionName"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Shared Function GetBuildDefinitionDetails(teamProjectName As String, buildDefinitionName As String) As String
Dim buildDefinitionSummary As String = Nothing
Dim buildDefinitionDetails As String = Nothing
Dim reportPath As String = RootFolder & "Build Definitions\" & buildDefinitionName
Dim buildDefinitionDetailsFileName As String = reportPath & "\" & buildDefinitionName & "_" & Date.Now.ToString(CultureInfo.CurrentCulture).Replace("/", String.Empty).Replace(":", String.Empty) & ".txt"
Dim buildService = CType(TfsTeamProjectCollection.GetService(GetType(IBuildServer)), IBuildServer)
Dim buildDefinition As IBuildDefinition = buildService.GetBuildDefinition(teamProjectName, buildDefinitionName)
If buildDefinition IsNot Nothing Then
GetAllBuildDefinitions(teamProjectName)
buildDefinitionSummary = buildDefinition.ToString()
UpdateFile(buildDefinitionSummary, buildDefinitionDetailsFileName, reportPath)
If buildDefinition.Workspace IsNot Nothing Then
buildDefinitionDetails = String.Format(CultureInfo.CurrentCulture, "Last Modified By: {0}, Last Modified Date: {1}",
buildDefinition.Workspace.LastModifiedBy,
buildDefinition.Workspace.LastModifiedDate)
End If
End If
Return buildDefinitionDetails
End Function
''' <summary>
''' Generate Log/Summary/Report
''' </summary>
''' <param name="lineToWrite"></param>
''' <param name="filePath"></param>
''' <param name="folderPath"></param>
''' <remarks></remarks>
Private Shared Sub UpdateFile(ByVal lineToWrite As String, ByVal filePath As String, ByVal folderPath As String)
Dim strFileName As String = String.Empty
lineToWrite = lineToWrite.Trim()
strFileName = filePath
Dim di As IO.DirectoryInfo = New IO.DirectoryInfo(folderPath)
If Not di.Exists Then
di.Create()
End If
Dim streamWriter As New StreamWriter(strFileName, True, System.Text.Encoding.ASCII)
Try
Dim strOutput As String
strOutput = lineToWrite.ToString
streamWriter.WriteLine(strOutput)
Catch ex As Exception
Throw
Finally
streamWriter.Dispose()
End Try
End Sub
無法跟蹤構建定義的更改。 如果您需要構建多個分支/版本,我建議創建不同的構建定義。
在對構建進行排隊時可以設置某些屬性,因此如果您希望CI構建不將其輸出復制到刪除服務器,則可以使用該構建,但是如果要部署版本,則可以設置刪除排隊構建時的文件夾。
在TFS Power Toys中,您將獲得“克隆構建定義”上下文菜單,因此如果您想要保持相似的許多設置,則可以更輕松地復制構建。
有一種方法。 vsgallery中有這個工具:
http://visualstudiogallery.msdn.microsoft.com/ec36f618-d122-48a3-8236-7d9cd19791ee
我用它與tfs2012。 我不知道它是否適用於tfs2010
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.