2009-06-10 4 views
18

CruiseControl을 사용하는 자동 빌드 시스템이 있습니다. 사용하려는 버전 문자열을 얻으려면 SvnRevisionLabeller를 사용하고 있습니다. 이 문자열을 사용하여 Nant를 사용하여 AssemblyInfo.cs를 업데이트 할 수 있습니다. 빌드 할 때 올바른 빌드 문자열이 있습니다. 또한이 CC 레이블을 사용하여 Subversion 저장소에 태그를 지정할 수 있습니다.AssemblyInfo.cs를 버전 제어에 배치해야합니까?

그래서 모든 정렬
- CCNet 빌드 라벨
- 실행 (조립 정보)
- 버전 컨트롤 (subverson 태그) 내가이를 다시 시도 할 경우이 문제가 지금

저장소의 오래된 이미지. AssemblyInfo.cs는 버전 제어가 아니라 생성 된 파일이기 때문에 빌드를 시도 할 때 버전 정보는 CruiseControl을 사용하여 리포지토리의이 버전이 빌드되었을 때와 동일하지 않습니다. 나는 그것이 CC 빌드 동안 또는 Subversion에서 체크 아웃 할 때 나중에 빌드되었는지 여부에 관계없이 정확하게 동일한 이미지를 생성 할 수 있기를 원합니다.

내가 종종 권장하지는 않지만 각 빌드 후에 assemblyInfo.cs 파일을 체크인해야합니다. 그러면 svn 체크 아웃에서 빌드 할 때 올바른 버전 정보가 사용됩니다.

덕분에, 리암

답변

2

나는 항상 체크해야합니다. 사실 나는이 팀 시스템 소스 제어와 기본 동작입니다 생각합니다.

+0

Subversion과 CrusieControl.NET을 사용하고 있습니다. NAnt 스크립트를 사용하여 빌드합니다. 내가 읽은 것은 AssemblyInfo.cs는 빌드 프로세스 중에 생성 된 출력입니다.그래서 빌드 순서는 다음과 같습니다 - CCNET (SVN 트리거하여 체크인 @say 저장소 버전 100) 은 NAnt이 의 AssemblyInfo.cs라는 MSBuild에서이 내가 지금 체크인 마십시오 AssemblyInfo.cs에 빌드 afgter 생성된다라고 ? 체크 인하면 저장소가 Rev 101에 있습니다. 따라서 빌드 개정과 일치하는 AssemblyInfo.cs를 얻으려는 내 목표는 충족되지 않습니다. 어떻게해야합니까? –

+0

귀하의 경우 CI 시스템이 AssemblyInfo.cs를 생성하고 있기 때문에 귀하가이를 확인하고 싶지 않은 이유가 있다고 생각합니다. TFS 빌드 서버가 포함하는 정상적인 빌드를 사용하면 AssemblyInfo.cs가 체크인되고 모든 빌드에 대해 생성되지 않습니다. – majinnaibu

7

AssemblyInfo.cs를 전혀 버전화하지 않거나 리포지토리에 "개발자 버전"을 넣고 빌드 후 CruiseControl.Net svn-되돌 리도록하십시오 (나중에 개발자 워크 스테이션에서 만든 빌드가 CruiseControl.Net에서 다운로드 한 "공식"파일에서 쉽게 소멸됩니다.

나중에 동일한 빌드 레이블을 재현하려면 - 손으로 MSBuild/NAnt를 호출하여 다시 작성해야합니다. 단순히 CCNetLabel을 적절한 값으로 설정하면 해당 어셈블리 버전과 동일한 어셈블리 버전이 생성됩니다. CruiseControl.Net (MSBuild : /p:CCNetLabel=1.4.2.333, NAnt : -D:CCNetLabel=1.4.2.333)에서 호출 된 빌드.

7

모든 프로젝트에서 링크를 추가하는 CommonAssemblyInfo.cs 파일을 사용합니다.

이 파일에있는 유일한 속성은 AssemblyFileVersion이며 CC.Net/Msbuild는 모든 빌드 버전을 업데이트합니다.

CommonAssemblyInfo.cs가 포함 된 프로젝트에 AssemblyInfo.cs에서 중복 된 특성이 없는지 확인하십시오.

CC.Net 소스 코드를 확인하면 빌드 구성 방법을 알 수 있습니다.

0

빌드하기 전에 필요한 AssemblyInfo.cs 파일을 모두 생성하는 MSBuild 스크립트가 있습니다. 이 방법으로 어셈블리 버전에서 SVN 개정 번호를 사용할 수도 있습니다. AssemblyInfo.cs 파일은 SVN으로 검사되지 않습니다 (사람들을 괴롭히지 않으므로 무시됩니다). 그러나 빌드하기 전에 생성됩니다 (자동 빌드 스크립트 또는 VS에서 중요하지 않음).

또한 AssemblyInfo.cs 파일 생성을 처리하기 위해 배치 파일을 제공하므로 개발자는 세부 사항을 신경 쓸 필요가 없습니다.

관련 문제