2012-09-06 4 views
8

나는 내 앱 버전 처리 할 수있는보다 의미있는 방법을 찾기 위해 노력하고있어 나는 어셈블리 버전이 수정 될 것을 권고 것자동 증가 파일 버전으로 고정 어셈블리 버전?

기본적으로

http://support.microsoft.com/kb/556041

이 기술 자료 문서 acrossed와 함께하고 파일 버전 imcremented 수 각 빌드마다. 이제 이것은 내게는 완벽한 의미를 가지지 만, 내 삶을 위해 나는 그것을 구현하는 것처럼 보이지 않습니다.

아래 스 니펫은 어셈블리 버전과 FileVersion을 자동으로 증가시킵니다.

[assembly: AssemblyVersion("1.0.*")] 

이 다음 중 하나가 1.0.0.0의 고정 조립 버전과 1.0.*의 고정 된 파일 버전을 설정하는 것 같지만

.

[assembly: AssemblyVersion("1.0")] 
[assembly: AssemblyFileVersion("1.0.*")] 

또한, 파일 속성의 세부 사항 탭에서 제품 버전뿐만 아니라 지금 1.0.*을 읽습니다. 이제이 제품의 파일 버전에서 제품 버전을 수정할 수 있습니다 ...

[assembly: AssemblyInformationalVersion("1.0")] 

그러나 원래의 작업에는 도움이되지 않습니다. 호기심에서 나는 아래를 시도했다. 그리고 파일 버전은 2.0.*으로 바뀌었다. 그래서 적어도 그것을 사용하고있다. 자동 증가가 아닙니다. 나는 자동 증가가 조립 버전 유일한 버전 번호를 수집 할 수 있지만, 오프 기회에 당신이 어셈블리 버전과 동일하게 설정됩니다 파일 버전을 지정하지 않은 것과 그래서

[assembly: AssemblyVersion("1.0")] 
[assembly: AssemblyFileVersion("2.0.*")] 

.

어셈블리 버전을 고정 된 채로 파일 버전을 자동으로 증가시키는 방법을 알고있는 사람이 있습니까?

답변

11

네, 그게 바보 같아요. 마이크로 소프트가 잘못한 것처럼 보입니다. AssemblyVersion은 .NET 어셈블리 버전 관리 시스템에서 사용되므로 자동 증가는 절대하지 말아야하지만 AssemblyFileVersion은 파일 버전 리소스의 파일 버전 항목에 기록되므로 기본적으로 항상 자동 증가로 예상 할 수 있습니다.

내가 할 수있는 제 3 자 빌드 시스템이 있다고 확신하지만, 약간의 명령 줄 C#을 작성하여 모든 프로젝트에서 실행됩니다. 프로세스를 빌드합니다. 매우 간단합니다 :

  1. 줄 단위로 AssemblyInfo.cs 파일을 읽으십시오.
  2. AssemblyFileVersion 행을 검색하여 네 개의 버전 부분을 모두 별도의 캡처 그룹으로 캡처하면 RegEx 행을 검색하십시오. 당신은 스스로 파싱 할 수 있지만 정규식은 한 번에 모든 탐지와 파싱을 할 것이므로 이점을 얻지 않는 것은 어리 석다.
  3. 네 개의 정수가 있으면 자신이 원하는대로 증가 논리를 구현하십시오.
+2

그래서이 이상한 것을 발견 한 것은 아닙니다. Microsoft는 실제로 사용하지 않는 기능을 추가 했습니까? 좋아, 그럼 다음 단계는 빌드 작업을 사용하여이 작업을 수행 할 수 있는지 확인하는 것입니다. –