Adam Haile
그는 물었다 12년 전
26

Net 에서는 조립품을 아웃해야 svn 수정번호 버전 (w / CC.NET

방법은 없나 SVN 의 버전 번호를 포함시키십시오 리포지토리를 개전판이 문자열이어야 .NET 조립품을? 같은 일이 메이저스미노리스프나레프

39, ve seen 언급하십시오 i& 수행할 수 있는 CC.NET (비록 on ASP.NET 같은 일이 실제로) 이지만, 별도의 소프트웨어 없이 할 수 있는 방법이 없나요? # 39, ve done in C/C++ 구축하십시오 i& 비슷한 말을 하지만, 배치 스크립트 버전 번호를 사용하기 전에 읽은 후 성사됐다고 스크립트입니다 라는 파일을 갖고 있는 쓰기 아웃하려면 &quot ver.h"; 뭔가 함께 everytime 효과에 대한:

#define MAJORVER 4
#define MINORVER 23
#define SOURCEVER 965

그런 다음 버전을 만들기 위해 이 eventtest 구체화하십시오.

이 같은 일이 가능한 는 .NET 용?

Jedi Master Spooky
그는 12년 전 댓글을 달았습니다
1

스택 오버플로 () 은 버전 번호를 en 그가 어떻게 이 일을 어쩌면 우리가 말할 수 있는 바닥글을 제프.

Tim
그는 8년 전 댓글을 달았습니다
0

깃허브 있습니다 같은 프로젝트를 높여줍니까 보러 답 -

Tim
그는 8년 전 댓글을 달았습니다
0

오른쪽 위의 링크를 로드되지 않을 수 있습니다. 깃허브 url 에 대한 내 대답은 다음과 같습니다. - 날짜 및 svn 사용하는 솔루션에 대한 개정 번호.

답변 8 개

39, s, C # 예제에서와 here& 자동으로 업데이트 수정번호 정보에서 조립품을. 정답은 '딘' 에 의해 매우 정교한 않는 기반이 된다.

예:

  1. 39 의 수 있는 project& 복제본에 AssemblyInfo.cs AssemblyInfoTemplate.cs

    • 특성는 폴더에서는 *.
  2. 없음 를 위한 작업을 변경하십시오 구축하십시오 (AssemblyInfoTemplate.cs).
  3. 맞게 수정하십시오 아서 블라이프일베르시온 다음과 같이 사용된다.

' [조립품을: 아서 블라이프일베르시온 (1.0.0$. $ 바크레프 &quot ";)] '

  1. 추가하는 것이 좋습니다.

' [조립품을: 아서 블린퍼마티오날버시온 (&quot, 빌드날짜: %y-%m-%d %H:%M:%S 우치노프 = $. $ 개정 날짜: %y-%m-%d %H:%M:%S 우사다트 = $. $ 개정 (s) 의 apc® 복제본에: $ $ $ 바스치역 와스모즈?; 경고 apc® 커밋되지 않은 겸수작년하사회답지례 (수정: $ .")] '

어떤 상태에 대한 정보를 부여하느뇨 개전판이 어셈블리 소스 에서 빌드를 있었다.

  1. 다음 이벤트를 추가 구축 프로젝트 파일의 속성:

$ (솔루션디르), '서브와크레프 &quot .&quot. $ (프로젝트디르) Properties\AssemblyInfoTemplate.cs&quot "; $ (프로젝트디르) Properties\AssemblyInfo.cs&quot "; - f '

  1. Svn 무시됨 목록 (AssemblyInfo.cs) 를 추가하는 것이 좋습니다. 파일을 수정할 것으로, 이로 인해 대체 수정번호 숫자임 및 날짜 변경 및 개정 및 $ $ 평가할 와스모즈 없는 사실입니다. 물론 프로젝트 (AssemblyInfo.cs) 에 포함되어야 한다.

이에 대해 반대에도 빔 코넨 달리, 이 사실을 알고, 내가 어떤 의해 제안되었다. ^ 지원 또한 16 위 없는 2 숫자임 대릴 아서 블라이프일베르시온 않습니다. 속성 파일 버전 빌드 완료할 것이라고 했지만, 실제로 조립품을 적립율은 아서 블라이프일베르시온 모듈러스 65536. 따라서 1.0.0.65536 1.0.0.0 1.0.0.131072 는 물론 수율, etc. 이 예에서 항상 진정한 버전 번호를 아서 블린퍼마티오날버시온 재산이잖아 Leave out 3 단계, 이 경우 심각한 문제를 고려할 수 있습니다.

편집: 이 솔루션에 대한 추가 정보를 사용하는 일부 거쳐 귈이예요.

  1. (AssemblyInfoTemplate.cs) 지금 사용하는 대신, 자동으로 갖게 됩니다 옵션 때문에 아서 블레인포.c스트 구축하십시오 작업을 하지 않을 것이라고 하지만 you& 없음 및 단순화됩니다 너회가 오류 목록 # 39, ll 느슨해짐 구문 강조.
  2. 39, 제 2 번 테스트를 i& 추가되든지 아서 블레인포.c스트 파일:

if (디버그로!)

$ # 오류 수정, 커밋하십시오 수정을 복사본이 apc® 와스모즈? 커밋되지 않은 모든 만들기 전에 릴리스에는: $ 구축하십시오.

endif

if (디버그로!)

$ 와스미스트? # 오류 수정 작업 복제본에 복수의 업데이트하십시오 구축하십시오: $ 를 최신 버전으로 만들기 전에 릴리스에는.

endif

이를 통해 사용자는 일반적으로 수행해야 성공적인 릴리스에는 SVN 업데이트 완료 후, 적용 및 먼저 구축하십시오. 그렇지 않으면 $ 와스미스트 사실일 것이다. 사실은 커밋됩니다 인한 것 같다고 하지만, 다른 파일을 파일 재 dell. 헤드입니다 개정 이후 커밋합니다 없습니다.

  1. 확실히 알 수 있는데, 첫 번째 매개변수에서 서브와크레프 &quot, $ (솔루션디르) 는 약간의 나열할지 범위를 설정하는 &quot, svn, 항상 원하는 대로 작동합니까 버전 정보를 확인하는 않습니다. 아마, 해야 할 경우 $ (프로젝트디르) 가 있으면 내용을 각 조립품을 일관됨 리비전입니다.
  • 추가 *
  • 응답하는 @tommylux.* 의해 주석문입니다.

서브와크레프 모든 파일을 프로젝트에 사용할 수 있습니다. 스케쳐내 이 버지오닌포 템플리트를 표시하십시오 수정번호 정보 웹 페이지에서 사용할 수 있습니다.

public class VersionInfo
{       
    public const int RevisionNumber = $WCREV$;
    public const string BuildDate = "$WCNOW=%Y-%m-%d %H:%M:%S$";
    public const string RevisionDate = "$WCDATE=%Y-%m-%d %H:%M:%S$";
    public const string RevisionsInWorkingCopy = "$WCRANGE$";
    public const bool UncommitedModification = $WCMODS?true:false$;
}

하나는 아서 블레인포.c스트 추가하기에서는 구축 및 이벤트 마찬가지로 모든 관련 정보를 쉽게 액세스하려면 SubVersion 합니다.

R. Schreurs
Jonathon Reinhart
그는 7년 전 댓글을 달았습니다
3

이것이 정답입니다 +1, 내 목소리를 높였다.

soupdog
그는 7년 전 댓글을 달았습니다
0

이 뿐만 아니라 정확한 답을 https://partner. microsoft. 것에 대한 정보를 하나의 도구로 사용할 수 있습니다.

100r
그는 7년 전 댓글을 달았습니다
1

39, it 부품, 나는 이 두 번째 dob& 정교한 수 완전히 이해할 수 없다. 너회가 renamed (AssemblyInfo.cs) 를 아서 블레인포.c스트? 또는? # 39 의 what& 눈에 띌 수 템플리트를? 이러한 새로운 조사 추가했는지 어디서? 어떤 부분을 파일?

브트와 멋지구리해요 오토메이티드!

R. Schreurs
그는 7년 전 댓글을 달았습니다
0

나는 내가 잘못 다운되어도 @100r 교정됨 파일 이름을 썼다. 이렇게 하면 혼란을 해결할 수 있기를 바란다. 그렇지 않으면 제발 알려주세요.

100r
그는 7년 전 댓글을 달았습니다
0

이제 더 it& # 39 의 선택해제합니다. 감사합니다:)

tommylux
그는 3년 전 댓글을 달았습니다
0

이 정말 좋은 것 '이 아니라 얼마나 투석실에다가 어졌다면 인쇄하십시오 asp 페이지를? 예: &lt, % $ 속성: AssemblyVersion%&gt.

R. Schreurs
그는 3년 전 댓글을 달았습니다
0

@tommylux 1) 에서 제공하는 솔루션을 사용할 수 있습니다 (실행 조립품을 버전 어떻게 해야 할까요?] (https://stackoverflow.com/a/4941305/456456)

R. Schreurs
그는 3년 전 댓글을 달았습니다
0

보러 아니라 해답이야 @tommylux 2)

tommylux
그는 3년 전 댓글을 달았습니다
0

전부터예요 가져오는 주셔서 감사합니다. 내가 어떻게 couldn& # 39, t 지켜보리니 afaq afnor to work in a 클래스. # 39 m 클래스, 너무 익숙한 i& 없습니다. 오류 &quot ";; 것으로 보인다. 현재 컨텍스트로 바크레프 없습니다. I did 추가 반사 내 참조입니다. 하지만 내가 이 인쇄하려면 사용하여 관리 필수. (아서 블리스게테스쿠팅아스럼블리 콜로카션 ()) = 시스템.디아흐노스틱스트피레버시온의 포드제버시온의 포 레비시온의 포스네르테스트 스피리버시온스토스트링 (); 정확한 숫자를 구축하십시오 Subversion 이 것으로 보인다. 하지만, 제가 인정해야 하며, 이 덕분에 나는 대답을 apc® don& 아서 블레인포.c스트 꽤 잘 이해하고, t # 39 입니다.

tommylux
그는 3년 전 댓글을 달았습니다
1

39 것 같은데, ve I& 클래스에 깨달았습니다. 내가 모르는 것 같아요, cst 파일을 어떻게 didn& # 39 못했기 때문이라고 했다. Public Class 를 구축, 이 때 동일팔레트에 버지오닌포 cst 에 입력됩니다 파일을 프로젝트에서 번역한 후 사용할 수 있는 cs 가 버전 정보 소스의 제어입니다. 고마워요.

39 확장하지만 shouldn& 것이, t: 16 비트 버전 번호 (최대 65535) 의 구성 요소는 조립품을 구체화하십시오 제한됩니다. 서브버전 리비전 번호를 될 수 있도록 보다 큰 일부 지점에서 컴파일러는 갑자기 일이 아니다.

Tim
그는 8년 전 댓글을 달았습니다
2

좋은 점. 하루에 20 여 곳에 이를 커밋한 지난 8 년간. 지난 2 년 미만 커밋한 100mb/s 했다. 소규모 프로젝트를 괜찮을 수도 있습니다. 분명 좋지 않은 대규모 수준들과.

Péter Török
그는 8년 전 댓글을 달았습니다
0

@Tim 경우에 한해 전체 시간 주 7 일 프로젝트 멤버 노력하고 있습니다 :-) 는 5 일 근무제, 주 및 2.6 있다고 가정할 때 모두 13 년) 순이었다. 이전의 경우 차이가 클 수 있습니다.

Darryl
그는 8년 전 댓글을 달았습니다
2

또한 브레이크 경우 이전 버전 호환성을 조립품을 경우에만 변경하십시오 버전 빌드 버전 정보, t # 39 - 당신은 shouldn& 동일팔레트에 꽂으십시오 조립품을 버전. 버전 정보를 넣을 수 있고 해야 하는지, 구축하십시오 아서 블라이프일베르시온 지원하지 않는 이 32 비트 숫자. Http://stackoverflow.com/questions/64602. 참조

soupdog
그는 7년 전 댓글을 달았습니다
0
  • 1, 아주 좋은 것은 아니다. 대부분의 제품에 대해 실질적인 제한은라이센스 커밋한 65536 아닙니다. 심지어 할 수 있는 제품에 대한 충분한 컨텍스트로 &quot, unwrap&quot 능가하는 번호, 주요 경미함 버전 전달자로써 있어야 한다. 개정 오른쪽으로 밸류급 (확실히 aren& # 39, t) 로 하고 있는 각 버전의 경우 버전 관리 응용 프로그램의 64k 커밋한 현명하게).
Wim Coenen
그는 7년 전 댓글을 달았습니다
0

@soupdog: 당신의 제안에 대해 unwrapping&quot "; 나는 내 자신을 방정식입니다 개정 좋은 인프라일까요 여겨진다. 이 때 여러 가지 선택을 할 수 있는 비트 된다 표시되어도 오프셋할 항목에서 제외하려면 업데이트되어야 할 때마다 '개정 및 너희에게베풀어진 여부를 확인할 수 오프셋된 메이저스미노' 변경. # 39 의 it& 저 그라고예 유지 관리할 수 있습니다. 이 경우에는 수만 있으면 함께 리포지토리를 cognitive load) 개정 등 중요한 문제입니다.

soupdog
그는 7년 전 댓글을 달았습니다
0

@WimCoenen: # 39 의 것과 같은 복잡한 it& don& # 39, 내가 없는 것 같습니다. 너, 무슨 말인지 것 하나 빼놓을 수 없는 것은 충분한 컨텍스트로 주요 경미함 버전 확증하노라 통해 쉽게 파악할 수 있을 정도로 (수동) the realm of svn 에 3 개의 숫자, 그리고 당신이 먼저 이러한 개정 틀렸다니까 보면서 어떻게 해결할 수 있다고 수차례 추가 65536 구축 번호를 상대경로를 내려받습니다 svn 리비전입니다. 아마 내가 어떻게 사용할지 의존하기 정보와 어떤 수준의 자동화 필요합니다. 하여간, 내가 원하는 대로 거의 주지 않음, 담요, 너회가 shouldn& &quot 발언을 통해, 이 때문에 대부분의 사람들에게는 적절한 것 하나 빼놓을 수 없는 # 39 t&quot 구성표가.

R. Schreurs
그는 5년 전 댓글을 달았습니다
0

오프셋할 제외어 지정할 수 있습니다. 의 [서브와크레프 수작업식, 제 6 장] (http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-subwcrev-keywords.html): $ $ $ $ 바크레프 WCREV+, 회기 중에 가장 높은 값을 바꿀 수 있는 작업 후 커밋합니다 복제본에 + 또는 - 챨 더하거나 뺀. 예를 들면 다음과 같습니다. 1000년 $ $ 바크레프. 이후 가장 낮은 버전 번호를 사용할 수 있습니다 / 재설정하려면 에드그 증가되었습니다.

Have a look at 서브와크레프 - http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html

어셈블리 버전 번호는 일반적으로 assemblyinfo.cs

R. Schreurs
그는 8년 전 댓글을 달았습니다
3

내가 같이 추가되든지 구축할 수 있는 새로운 해답이.

Read/skim 이러한 문서:

[액세스하면 서브버전 저장소를 사용하는 .NET 에서 도츠프너] [1]

방법: 쓰기 작업을

삽입하십시오 버전 및 빌드 번호는 C # 아서 블레인포 SVN 에 파일

컴파일하기를 애플리케이션을 위한 맞춤형 작업을 통해 마이크로소프트 빌드 Engine

Svn 이 마즈베일드코무니티타스크스 제프 베르시온 10.5.6 및 C # 로 수행할 않을 것이라고 언급한 3 참조입니다 Mac 의 프로젝트 호스팅 vistatm 인사이드라면 구축하십시오 VS2008 순교자 (즉, 모든 OS).

개정 작업을 직접 작성하는 방법을 사용하여 읽어들이려면 충스러웠으니 리포지토리를 도츠프너:

using System;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using DotSVN.Common;
using DotSVN.Common.Entities;
using DotSVN.Common.Util;
using DotSVN.Server.RepositoryAccess;

namespace GetSVNVersion
{
    public class GetRevision : Task
    {
        [Required]
        public string Repository { get; set; }
        [Output]
        public string Revision { get; set; }

        public override bool Execute()
        {
            ISVNRepository repo;
            bool connected = true;
            try
            {
                repo = SVNRepositoryFactory.Create(new SVNURL(Repository));
                repo.OpenRepository();
                Revision = repo.GetLatestRevision().ToString();
                Log.LogCommandLine(Repository + " is revision " + Revision);
                repo.CloseRepository();
            }
            catch(Exception e)
            {
                Log.LogError("Error retrieving revision number for " + Repository + ": " + e.Message);
                connected = false;
            }
            return connected;
        }
    }
}

이 방법을 사용하면 리포지토리를 삼중평균 스크램블된 &quot file:///Y:/repo"; 여기서 Y: 는 Mac 디렉터리입니다 에 매핑됨 vistatm.

[1]: http://www.codeproject.com/KB/library/subversion_using_dotsvn.aspx = 프린탈 표시하십시오?

Martin
그는 10년 전 댓글을 달았습니다
3

한 가지를 더 이상 유지 및 죄송합니다. 도츠프너 아웃해야 http 는 리포지토리를 남지 않았다.

Svn 버전 번호를 다른 답을 것은 있을 수 있는 좋은 아이디어 크기 때문에 제한값 않을 수 있습니다.

뿐만 아니라 다음 링크를 통해 충족되었으며 스노프 개정 번호 날짜 버전 정보 템플리트를.

이 프로젝트는 거의 작동합니까 간단한 - 추가 .NET 수행해야 합니다.

이것은 이 프로젝트를 충족합니다 깃허브 https://github.com/AndrewFreemantle/When-The-Version/downloads

과연 어떻게 로드할 수 있습니다 다음 url 이 작품을 만들기 위해 단계별 설명을 천천히 (쉽고 파선-짧은 3 또는 4 단계)

http://www.fatlemon.co.uk/2011/11/wtv-automatic-date-based-version-numbering-for-net-with-whentheversion/

Tim
Simon F
그는 5년 전 댓글을 달았습니다
1

이 솔루션은 빠르고 효과적인

프로젝트 (AssemblyInfo.cs) 에서 버전 번호를 업데이트하려면 관심을 갖게 될 수 있습니다 (영문:

고데프로젝트: 서브버전 리비전 번호를 사용할 수 있는 비주얼 스튜디오 프로젝트

&gt. 그런 경우 프로젝트 파일을 들을 때마다 SVN 활성화하십시오 여러_키워드 체크인합니다 검사하여 특정 &quot keywords"; 대체하며 여러_키워드 일부 정보. &gt. 예를 들어, 내가 내 &gt 소스 파일을 만들어 갈 것 "이라고 헤더입니다 컨테인먼트하는 맨 위에 다음과 같은 키워드: &gt. & # 39 &gt, 작가, $. $ &gt, & # 39$. $ Id: &gt, & # 39, Rev: $ $ &gt. 이 때, 나는 이러한 파일 압축을 &gt 확인란 Subversion 여러_키워드 대체되었는지 다음과 같습니다. &gt. &gt, & # 39, $ 저자: 파울베스터리지 $ &gt, & # 39, $ Id: 16-07-2008 24 29z 15 미file.프브 파울베스터리지 $145 &gt, & # 39, Rev: $ 145 달러

Lucas
그는 11년 전 댓글을 달았습니다
4

그 기사를 통해. $ $ 키워드를 사용하여 &quot 한계를, Rev 것이 아니라 파일을 사용하면 개정입니다 만 $ $ 키워드를 사용하여 그러한 전체 프로젝트의 일환으로 versioning.&quot 내 소프트웨어 버전 사용할 수 없습니다. 그래서 니말은 편집 / 커밋합니다 할 것이라고 assembly.cs 에 수정번호 유지하기 위해 업데이트되었습니까?

svn 이 정보를 알려주는 버전과 오른길로 &quot pre-build&quot, 할 수 있습니다. event 에 대한 정보 및 구문 분석 결과를 생성할 수 있다 vs 프로젝트에 의해 svn (assemblyinfo.cs) 를 통해 자체 개발 명령행을 app.

전에 해봤다고 시작되었지만, 빠른 패스 그냥 그 변수를 갖는 스위칭됩니다 케네트 난트.

파일 공유 어셈블리를 참조할 수 있는 버전을 사용할 수 있는 모든 프로젝트에.

어퍼컷 는 이 - http://ferventcoder.com/archive/2009/05/21/uppercut-automated-builds-versionbuilder.aspx

이를 통해 무엇을 얻을 수 있는 어셈블리들 할 수 있는 버전을 알 수 있습니다.