문제

TortoisesVN과 Visual Studio 2008을 사용하고 있습니다. 모든 빌드에서 SVN 버전으로 프로젝트의 AssemblyInfo.cs를 업데이트 할 수있는 방법이 있습니까?

예를 들어, 1.0.0. [SVN의 버전] -> 1.0.0.12

도움이 되었습니까?

해결책

당신은 사용할 수 있습니다 Subwcrev TortoisesVN과 함께 제공되는 도구 (별도로 사용 가능).

명령 줄에서 실행하거나 com-bobject 그것은 제공합니다.

subwcrev 명령 줄 도구 키워드를 대체합니다 SVN 작업 사본의 정보가있는 파일 내부. an 예시 문서에 표시됩니다.

다른 팁

나는 이것을 내 안에서한다 스크립트를 빌드하십시오:

<SvnInfo LocalPath=".">
  <Output TaskParameter="Revision" PropertyName="BuildRev" />
</SvnInfo>
<FileUpdate Files="protobuf-net\Properties\AssemblyInfo.cs"
  Regex='(\[\s*assembly:\s*AssemblyVersion\(\s*"[^\.]+\.[^\.]+)\.([^\.]+)(\.)([^\.]+)("\)\s*\])'
  ReplacementText='$1.$2.$(BuildRev)$5' />

사용 커뮤니티 구축 작업. 이는 기본적으로 조립 공학에 적용하여 현재 개정판을 SVN 개정판으로 대체합니다.

당신은 사용할 수 있습니다 $Rev$ SVN 키워드 그러나 그것은 당신에게 파일의 마지막 개정을 줄 것입니다. 나는 당신이 얻고 싶다고 생각합니다. HEAD 개정 번호.

이 질문을 살펴보십시오.

비주얼 스튜디오에 대해 어떻게 생각하십니까? addin 그것을하고 있습니까?

예, 스크립트를 호출하는 사전 건축 이벤트를 추가 할 수 있습니다.

  • 전화 svn info 현재 개정 번호를 추출하려면 (전에 업데이트를하는 경우 키워드를 직접 포함시킬 수 있습니다. $Revision$ 파일에서도 확인하십시오 이 게시물);
  • 그에 따라 속성 assemblyinfo.cs 파일을 수정합니다.

내가 일반적으로하는 것은 프로젝트가 구축 될 때 AssemblyInfo.cs 템플릿을 변환하는 것입니다. 스크립트는 불행히도 $ 개정 $의 양식을이 파일의 구문에 조정해야합니다.

흥미로운 속성은 (템플릿 문자열이 '$'사이에있는 곳)입니다.

[assembly: AssemblyVersion("$v$.$build$.$Last Changed Rev$")]
[assembly: AssemblyFileVersion("$v$.$build$.$Last Changed Rev$")]

편집하다: svn info 다른 게시물에서 지적 된대로 거북이가 아닌 표준 SVN 클라이언트의 일부입니다. 그래도 쉽게 설치할 수 있습니다. 그러나 TortoisesVn은 함께 제공됩니다 SubWCRev.exe 키워드 대체로 파일을 변환하므로 로컬 사본을 업데이트하면 트릭을 수행합니다.

Visual Studio 2008에서는 스크립트 또는 소규모 프로그램을 시작할 수있는 사전 구축 이벤트를 정의 할 수 있습니다. 이 스크립트 또는 프로그램 내에서 svnversion 명령 리포지토리 개정을 얻은 다음 AssemblyInfo.cs를 구문 분석하고 원하는대로 버전 번호를 수정하십시오.

tortoisesvn이 svnversion과 함께 제공되는지 확실하지 않지만 Collabnet에서 제공 한 Windows Svn 빌드

나는 an을 만들었다 SVN 버전 플러그인버전 증분 프로젝트를 빌드하십시오 (Popester의 답변에 명명). 이 SVN 플러그인은 작업 복사본에서 최신 변경 개정 번호를 가져오고 버전 번호에서이를 사용할 수 있으므로 정확히 수행하려는 작업을 수행해야합니다.

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