2010-12-05 1 views
4

난 비주얼 스튜디오 사람들이 기대하는 방식으로 빌드 번호를 증가 할 수있는 방법이 없습니다 알고 있지만, 그것은 randomizing the build number을 지원Visual Studio 자동 증가 빌드 번호 구문에 어떤 문제가 있습니까?

AssemblyInfo.cs 파일이 포함되어

// Version information for an assembly consists of the following four values: 
// 
//  Major Version 
//  Minor Version 
//  Build Number 
//  Revision 
// 
// You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below: 
// [assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyFileVersion("1.0.*")] 

를 그리고 아직주는 무슨 일이 나타납니다 나에게, 비 sensical 결과는 (심지어 비주얼 스튜디오의 의사 난수 버전 번호를 허용) : alt text

그래서 간단한 질문은 :

내가 작동하게하려면 AssemblyInfo.cs에 무엇을 넣어야합니까? MSDN에서

이 (명확성을 위해 포맷) :

당신은 모든 값을 지정하거나 이 별표 (*)를 사용하여 기본 빌드 번호, 개정 번호, 또는 두 가지 모두를 사용할 수 있습니다 (*) . 예를 들어,

[assembly:AssemblyVersion("2.3.25.1")] 

는 주 버전, 개정 번호와 3 과 부 버전, 빌드 수와 같은 25, 1으로 2를 나타냅니다. 버전의
[assembly:AssemblyVersion("1.2.*")] 

의 주요 버전으로 1을 지정하는 등

으로 번호, 로 2 부 버전과는 기본 빌드 및 개정 번호를 받아들입니다. 버전
[assembly:AssemblyVersion("1.2.15.*")] 

의 주요 버전으로 1을 지정하는 등

로 번호 2 과 부 버전, 빌드 수로 (15), 그리고 기본 개정 번호를 받아들입니다.

기본 빌드 번호는 매일 씩 증가합니다. 기본 개정 번호 은 임의적입니다.

내가 그 말을 받아 해당 버전 번호는 다음과 같습니다

[1.0.0.0] 
major.minor.build.revision 

동안

[1.0.0.*] 
major.minor.build.[random] 

[1.0.*] 
major.minor.[daynumber].[random] 

답변

12

나는 99 % 확신이 문제가 당신 ' 다시 발생하는 것은 다음 줄로 인해 발생합니다.

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

캐치 비주얼 스튜디오는 자동 증가 만 AssemblyVersionAssemblyFileVersion을 지원하지 않는다는 것입니다. 나머지 코드는 괜찮습니다.두 번째 줄을 주석으로 처리하고 예상 한 결과를 얻는 지 확인하십시오. 파일 및 제품의 모든 버전 정보는 동일해야합니다.

"프로젝트 정보"의 "어셈블리 정보"대화 상자에서 "파일 버전"필드에 별표를 입력하려고하면 나타나는 오류 메시지 이외에 공식적으로이 파일의 정확한 위치를 알 수는 없지만 내가 액세스 할 수있는 모든 컴퓨터에서 이와 같이 잘 작동합니다.

비주얼 스튜디오가 자신의 장치에 남아있을 때 (의사 랜덤 번호의 어리 석음을 언급하는 것) 완전히 아프다면 추가 기능의 this little gem을 시도하십시오. 그것은 당신의 삶을 변화시킬 것입니다.

5

스크린 샷은 .NET 속성을 포함하여 대부분의 EXE 및 DLL 파일에 포함 된 관리되지 않는 버전 리소스를 표시하는 쉘 속성 시트 확장 핸들러를 사용하는 방법을 보여줍니다. 불행하게도, Vista에서 시작하여, 그 핸들러는 더 이상 해당 필드에 선택적 필드를 표시하지 않습니다. ProductVersion 필드는 표준이지만 [AssemblyVersion]이 이 아니고입니다. AssemblyInfo.cs에 해당 속성을 추가해야합니다.

: 예를 들어 [조립 : AssemblyInformationalVersion ("1.2.3.4")]

안 좋은 이름 일치, 불행히도. 누락 된 경우 컴파일러에서 [AssemblyVersion]의 값을 복사합니다. 이것이 별표로 끝난 것입니다.

컴파일러는 실제로 리소스에서 추가 필드를 방출합니다. 에서 생성 된

alt text

:

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

그것은 거기 당신은 버전 노드를 두 번 클릭 자원 # 1, 어셈블리를 선택, 파일 + 열기 + 파일로 볼 열 수 있습니다 , 당신은 단지 탐색기에서 볼 수 없습니다. 어리석은, 잘하면 그들이 언젠가 고칠거야. 또한 생성 된 [AssemblyVersion]에 주목하십시오. 개정 번호는 18404입니다. 이는 무작위가 아니며 오전 10:13에이 EXE를 작성했습니다. 그것은 자정 이후 18404 * 2 초였습니다.