문제

내가 하려는 현재 설정 CruiseControl.net 고 그래서 내가 궁금해 어떻게 분할 주요 작업을 줄일 수 있습니다.

일반적으로,실행하고 어떤 단위 테스트(xUnit.net),도움말 파일 생성(모래)및 FxCop.

지금 나는 그냥한민국의 경우에는 지정해야 하는 새로운 대상에서 msbuild config("문서")를 사용하는 실행하는 샌드캐슬,또는 경우에는 별도의 스크립트를 사용해야 할까요?또한 블렌드 및 visual studio 서로 다른 범주 의 건축을 위해 무언가는,그래서 나는 것으로 추측 ncover,버전과 FxCop 하지 않아야 될 그것의 일부,또는 한다 그들은?

는 무엇입의 범위는 msbuild?

도움이 되었습니까?

해결책

거의 모든 것을 MSBuild 스크립트에 넣어 귀하와 다른 개발자가 명령 줄을 통해 동일한 단계를 로컬로 실행할 수 있도록하십시오. 그렇지 않으면 빌드에 문제가 발생하면 CC 서버에서 디버깅해야합니다. 멋진 디버깅 경험이 아닙니다. 또한 빌드를 로컬로 실행하고 싶습니다 ~ 전에 그것이 작동하는지 확인합니다.

MSBuild 스크립트에 넣지 않은 몇 가지 사항은 다음과 같습니다.

  • CC가 어쨌든이 작업을 수행 해야하는 SVN 업데이트는 일반적으로 로컬 빌드를 수행 할 때 업데이트하고 싶지 않습니다. (글쎄, 나는 하다 유형 svn up && msbuild 자주,하지만 너무 짧아서 이것을 대본에 넣을 필요가 없습니다.)
  • 빌드 보고서의 생성 및 출판; 다시 이것은 CC 도메인이며 로컬로 유용하지 않습니다.

MSBuild 파일을 구조화하면 모든 것을 빌드하는 데 사용할 수있는 "마스터"빌드 스크립트를 원할 것입니다. 또는 일부 목표, 예를 들어

  • MSBuild /t:Build 코드를 점진적으로 빌드하려면
  • MSBuild /t:Rebuild 깨끗한 재건을 위해
  • MSBuild /t:UnitTest 단위 테스트 만 실행합니다
  • MSBuild 가장 빈번한 선택을 위해 t:Build;UnitTest
  • MSBuild /t:All 코드, 문서화 및 깨끗하게 설정하려면 모든 테스트를 실행하고 결과를 포장합니다.

인기있는 변형을 위해 "바로 가기"대상을 추가 할 수도 있습니다.

단일 마스터 빌드 파일을 갖는 것이이 단일 파일에 모든 것이 정의된다는 것을 의미하지는 않습니다. 다른 MSBuild 파일을 포함하거나/또는 MSBuild로 전화하여 빌드를 구성 할 수 있습니다. 예를 들어:

  • 마스터 .proj 파일은 비교적 간단해야합니다. 주로 구축 할 솔루션 목록 및 프로젝트 별 재정의와 같은 프로젝트 별 항목을 정의해야합니다.
  • 마스터 파일에 대상 및 기본 속성이 포함 된 단일 .Targets 파일이 포함되도록하십시오. 이 프로젝트 중립적이고 재사용 가능성을 유지하기 위해 노력하십시오.
  • .targets 파일이 너무 커지면 별도의 파일, 예를 들어 코드 용 파일, 하나는 도움말 및 문서, 설정 및 포장 용 파일로 분할하십시오. 메인 .Targets 파일에 해당 하위 파일이 포함되어 있으므로 .proj 파일에 여전히 하나의 파일 만 포함되도록합니다.
  • 마찬가지로 필요한 경우 마스터 .proj 파일 (예 : 서브 시스템)을 분할 할 수 있습니다.

다른 팁

나는 스크립트를 구축에 대한 개별 프로젝트,그리고 나는 단순히 체인에서 사람들 두 번째 빌드 파일 때 건물의 스위트 룸...예를 들어,내 protobuf-net 빌드 파일 버전 관리를 처리(SVN),컴파일(MSBuild+넝 모노)테스트(NUnit),포장(zip),등등.그것은 당신의 빌드 프로세스;무엇을 해야 합니;-p 는 경우에도,예를 들어,배포 및 설명서 원하는 경우.

그것은 또한 방법에 따라 당신은 일;를 사용하는 경우 CruiseControl,그것은 처리할 수 있습의 많은 이습니다.나 자신을 위해,나는 같은 명령 라인"빌"단계입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top