2012-01-10 6 views
2

Teamcity, Git 및 MSBuild를 사용하여 웹 사이트를 배포하고 있습니다.MSBuild를 사용하여 추가 파일 배포

우리 웹 사이트는 Sitecore CMS를 실행합니다. 가상 디렉터리가 아닌 루트 디렉터리에 있어야합니다.

나는 수백 개의 Sitecore 관련 파일을 변경하지 않으므로 코드 저장소에 포함하고 싶지 않습니다. 사이트를 배포 한 후 xcopy 할 수 있지만 각 빌드에 1 분이 걸리고 비효율적 인 것처럼 보입니다.

더 좋은 방법이 있나요?

답변

1

MSBuild를 사용하여 파일을 "점진적으로"복사 할 수 있습니다. batching이라고합니다. MSBuild는 입력 파일의 datetime 스탬프를 출력의 datetime 스탬프와 비교하고 datetime> output datetime 중 일부가 입력되면 대상 또는 작업이 실행됩니다.

+0

날짜/시간 스탬프를 검사 할 때 유일한 문제는 이전에 배포를 실행 한 적이없는 (예 : 자동화 빌드 서버) 소스가 시스템에 가져온 경우입니다. 시간 소인은 모든 시간 소인이 현재 날짜 및 시간으로 설정되므로 파일이 변경되었음을 표시하지 않을 수도 있습니다. – SoftwareCarpenter

0

Incremental Builds을 살펴볼 수 있습니다. 아직 최신 상태이며 따라서 배포 서버와 함께 다시 빌드하거나 동기화 할 필요가없는 이전에 빌드 된 구성 요소가 있는지 확인합니다. 변경된 파일 만 다시 빌드합니다. 그러나 컴파일하기 전에 빌드 머신이 변경되거나 빌드가 정리 된 경우 타임 스탬프로 인해 문제가 발생할 수 있습니다.

파일이 내용이 변경되지 않았지만 소스 제어에서 코드를 내리고 파일의 타임 스탬프가 빌드가 시작될 때 빌드 시스템의 현재 시간으로 설정된 경우 배포 된 파일과 빌드 파일에 SHA 해시 코드를 적용하는 방법을 살펴보십시오.

SHA 해시 코드는 타임 스탬프를 보지 않으므로 파일 내용이 변경된 파일 만 복사 할 수 있습니다.

관련 문제