MSBuild TFS 빌드 번호
-
20-09-2019 - |
문제
나는 잠시 동안 SVN을 사용하고 있습니다. 최근 프로젝트에서 저는 TFS를 사용하고 있습니다. 빌드를 사용하면 프로젝트 출력의 빌드 버전 번호를 추가/업데이트하고 싶습니다. 응용 프로그램에서 명확하게 볼 수 있도록 MasterPage 에서이 작업을 수행합니다. 애플리케이션이 여러 기계에서 실행 중일 수 있으므로 Verison이 실행중인 정보에 대한 편리한 정보입니다.
나는 이것을 SVN 세계에서 다음과 같이 달성합니다.
<!-- Import of the MSBuildCommunityTask targets -->
<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<!-- to AssemblyInfo to include svn revision number -->
<Target Name="BeforeBuild">
<SvnVersion LocalPath="$(MSBuildProjectDirectory)" ToolPath="$(ProgramFiles)\CollabNet Subversion Client">
<Output TaskParameter="Revision" PropertyName="Revision" />
</SvnVersion>
<Time>
<Output TaskParameter="Year" PropertyName="Year" />
<Output TaskParameter="Month" PropertyName="Month" />
<Output TaskParameter="Day" PropertyName="Day" />
</Time>
<FileUpdate Files="MasterPage.master" Regex="svn revision: (\d+)\.(\d+)\.(\d+)\.(\d+)" ReplacementText="svn revision: $(Year).$(Month).$(Day).$(Revision)" />
</Target>
위에서 볼 수 있듯이 "Preforebuild"작업은 yyyy.mm.dd.svnversion 스탬프로 MasterPage.master 파일을 업데이트합니다.
소스 컨트롤로 TFS를 사용하여 어떻게이를 달성 할 수 있습니까? TFS 빌드 번호를 어떻게 얻습니까?
해결책
팀 빌드를 의미한다고 가정하면 $ (BuildNumber) 속성에는 현재 빌드 번호가 포함되어 있습니다.
보다 http://blogs.msdn.com/aaronhallberg/archive/2008/02/12/team-build-2008-property-reference.aspx 사용 가능한 속성에 대한 전체 참조.
MSBuild를 실행하는 경우 전체 빌드 번호를 생성/적용한다고 생각하지 않습니다 (각 프로젝트에는 기본적으로 AssemblyInfo.cs [기본적으로] 파일)에 개별적으로 자동 증가 된 버전 번호가 있습니다. 런타임에 System.Reflection.Assembly 클래스를 사용하여 특정 어셈블리 의이 버전 번호를 동적으로 가져올 수 있습니다.
업데이트
TFS 2010에서 'BuildNumber'변수는 더 이상 TFS에 의해 MSBuild 프로세스로 자동 전달되지 않습니다. TFS 2010은 이제 Windows 워크 플로우를 내부 빌드 엔진으로 사용하므로 빌드 번호를 원한다면 언급 한대로 빌드 정의를 수정해야합니다. 이 MSDN 기사.