TFS 2010에서 빌드 정의의 변경 사항을 추적하는 방법이 있습니까? 제가 말하는 것에 대해 보려면 Visual Studio의 'Team Explorer> ProjectName> Builds'로 이동하십시오. 제가 언급하고있는 것을보기 위해서는 TFS 서버에 접근 할 필요가 있습니다. 이제 Team Explorer> ProjectName> Builds에 있으면 빌드 정의를 만들어 TFS에서 csproj 또는 sln 파일을 컴파일 할 수 있습니다. 내가 궁금한 것은, 기존 빌드를 변경하거나 새 빌드를 추가하면이 빌드 정의를 버전화할 수 있습니까?TFS 2010 추적 빌드 정의가 변경됩니까?
1
A
답변
1
빌드 정의의 변경 사항을 추적 할 수있는 방법이 없습니다. 빌드 할 필요가있는 브랜치/버전이 여러 개있는 경우 다른 빌드 정의를 만드는 것이 좋습니다.
빌드를 대기열에 넣을 때 속성 중 일부를 설정할 수 있으므로 출력을 드롭 서버에 복사하지 않는 CI 빌드를 원한다면 가질 수 있지만 버전을 배포하려는 경우 빌드를 대기열에 넣을 때 드롭 폴더를 설정할 수 있습니다.
TFS Power Toys에는 "복제 정의 빌드"컨텍스트 메뉴가있어서 비슷한 설정을 유지하려는 경우 빌드를 쉽게 복사 할 수 있습니다.
0
방법이 있습니다.
http://visualstudiogallery.msdn.microsoft.com/ec36f618-d122-48a3-8236-7d9cd19791ee
내가 tfs2012 함께 사용하십시오 vsgallery에서이 도구가 있습니다. 내가 tfs2010와 함께 작동하는지 모르겠다
2
팀원이 빌드 정의를 수정했을 때 같은 문제가 발생했지만 사용 가능한 모든 옵션을 찾지 못했지만 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
안녕 데이브, 당신의 답장을 보내 주셔서 감사합니다. TFS 전동 공구를 설치했습니다. 하지만 시간이 지남에 따라 빌드 정의의 변경 사항을 추적하는 것은 내 목적을 해결하지 못합니다. – Kalyan
당신은 정말로 할 수 없습니다. 정말로 원한다면 정의 프로세스 매개 변수를 XML로 정기적으로 내보내거나 비슷한 방식으로 내보낼 수 있지만 전혀 빌드 할 필요가 없습니다. – DaveShaw