내 .exe에 내 svn 버전의 리소스 문자열에 대한 액세스 권한을 부여하고 싶습니다. 이것을 직접 입력 할 수는 있지만 컴파일 타임에 이것을 포함시키는 자동화 된 방법을 선호합니다. Visual Studio 2008에 이러한 기능이 있습니까?Windows 응용 프로그램에서 컴파일 타임에 SVN 개정 번호 포함
답변
필자는 유사한 가용성을 원했고 $ Rev $가 파일의 개정본이 변경된 경우 파일에 대해서만 업데이트 되었기 때문에 $ Rev $이 부족하다는 것을 알았습니다. (이는 편집해야 할 시간과 커밋해야 할 시간이었습니다. 대신에 저장소의 개정 번호를 기반으로하는 것을 원했습니다.
내가 지금 일하고있는 프로젝트의 경우 작업 복사본의 최상위 디렉토리에서 svnversion -n
을 실행하고 가장 최근의 개정 정보를 .h 파일로 출력하는 Perl 스크립트를 작성했습니다. 내 작업 카피의 비 버전 화 파일에 저장된 Reversion을 사용하여 모든 컴파일시에 현재 개정 정보를 겹쳐 쓰지 않도록합니다.하지만 그렇게했는지 여부는 당신에게 달려 있습니다.)이 .h 파일 (또는 여러 파일 필요한, 당신의 접근 방식에 따라) 응용 프로그램 코드와 리소스 파일 모두에서 참조하여 원하는 정보를 얻습니다.
이 스크립트는 빌드 전 단계로 실행되므로 빌드가 시작되고 빌드 도구로 해당 파일이 자동으로 다시 빌드되기 전에 모든 것이 최신 상태로 유지됩니다.
SVN to embed it for you이 문제를 해결할 수 있습니다. 해당 페이지의 $ Rev $ 키워드를 참조하십시오.
불행히도 $ Rev $ 키워드는 * 나타나는 파일이 * 변경된 마지막 수정본 만 제공합니다. –
antik의 솔루션은 우리가 사용하는 솔루션입니다. 환경 변수를 사용하는 데주의하십시오. .h 파일은 svn rev 번호가 변경 될 때 필요한 파일을 다시 컴파일하도록 종속성을 가질 수 있음을 보장합니다.
좋은 지적 : 우리 환경에서 또 다른 이점 이었음을 잊어 버렸습니다. – antik
TortoiseSVN과 함께 제공되는 명령 줄 도구 SubWCRev을 사용하는 것은 어떻습니까? $ WCREV $ $ WCDATE $ 등의 토큰이있는 템플릿 파일을 만듭니다. 그런 다음 템플릿 파일에 SubWCRev를 실행하여 컴파일러에 공급되는 실제 소스 파일을 만드는 사전 빌드 단계를 거칩니다.
- 1. SVN 및 개정 번호
- 2. SVN 및 개정 번호
- 3. SVN 목록 개정 번호 명령
- 4. 컴파일 된 GWT 패키지에서 액세스 할 수있는 SVN 개정 번호
- 5. 컴파일 타임에 사용되는 응용 상수
- 6. .NET : AssemblyVersionAttribute의 큰 개정 번호
- 7. 태그의 개정 번호 찾기
- 8. SVN : 주어진 경로에 대한 개정 번호 목록을 가져올 수 있습니까?
- 9. SVN 수정 번호
- 10. svn - 관련 메시지 조각을 제공하는 개정 번호 얻기
- 11. Eclipse 복수 프로젝트 커밋에서 파괴적인 개정 번호
- 12. SVN : 개정 번호를 알려주는 방법?
- 13. 컴파일 타임에 swf로 데이터를 주입
- 14. 컴파일 타임에 이벤트 수신?
- 15. 컴파일 타임에 상속을 결정
- 16. 컴파일 타임에 함수를 선택하십시오.
- 17. 개정 범위 및 변경 목록이 포함 된 SVN diff
- 18. TeamCity에서 특정 SVN 개정 번호를 얻는 방법
- 19. PHP 기반 웹 응용 프로그램에서 데이터베이스 스키마 개정 제어
- 20. Windows Phone 전화 번호 응용 프로그램에서 사용하는 기능
- 21. 컴파일 타임에 C++ 유형 ID
- 22. 컴파일 타임에 C++ 타입 등록
- 23. 컴파일 타임에 enum 값 확인
- 24. 컴파일 타임에 무한 루프가 발생합니까?
- 25. WPF 응용 프로그램에서 디자인 타임에 ActiveX 컨트롤을 사용할 수 없습니다.
- 26. SharpSVN.DLL - C# .NET - Windows 응용 프로그램에서 SVN 저장소 가져 오기
- 27. C# 웹 서비스 설명에 개정 번호/빌드 번호 표시?
- 28. TortoiseSVN/Subversion 개정 번호 ... Altenate 프로그램?
- 29. 소스 코드 문서에있는 git 개정 번호
- 30. 허드슨 svn 자격증 번호
TortoiseSVN에는 작업 복사본의 가장 높은 커밋 된 개정 번호를 찾는 SubWCRev.exe라는 작은 도우미 유틸리티가 있습니다. – dummy
잘 알고 있습니다. 우리 팀은 TortoiseSVN을 많이 사용합니다. 그래서 스크립트를 작성했을 때 도우미에 대해 잘 알았을 것입니다. 어떤 점에서 SubWCRev.exe를 조사해 볼 수 있습니다. 일반적인 Subversion 배포본에 대한 의존성을 떨어 뜨리는 것이 좋을 수도 있습니다 ... – antik
이 아이디어를 구현 한 다른 사람을위한 팁 : 변경 사항이 실제로있을 경우에만 스크립트에 새 버전 작성 국부적으로 만들어졌다; 즉, 'svnversion'에 의해 출력 된 값이 최종 문자 세트 중 "M"을 포함하는 경우에만. 이렇게하면 버전 번호를 변경하지 않고 커밋 한 후에 프로젝트를 다시 빌드 할 수 있습니다. 출력 형식에 대한 설명은 [svnversion' documentation] (http://svnbook.red-bean.com/en/1.7/svn.ref.svnversion.re.html)을 참조하십시오. –