문제

나는 잠시 동안 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 기사.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top