簡體   English   中英

TFS 2010跟蹤構建定義更改?

[英]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 ByLast 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.

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