2012-10-23 7 views
3

현재 작업중인 프로젝트에서 빌드 빌드 이벤트와 상대 경로 참조가 많이 사용됩니다. 즉, 참조 솔루션이 바이너리를 삭제하기 위해 빌드 후 이벤트를 사용하는 상대 경로와 함께 dll 참조로 구현 된 모든 솔루션 간 참조가 있습니다.상대 경로로 작업하는 TFS 빌드

이것은 비주얼 스튜디오 enviornmnet에서 잘 작동합니다. 이제 우리는 소스 코드를 작성하고 매일 바이너리 드롭을 만드는 자동 방법을 찾고 있습니다. TFS 빌드는 상대 경로 참조와 잘 작동하지 않는 것 같습니다.

빠른 해결책이 있습니까? 우리가 필요로하는 모든 것이 소스 코드의 최신 버전을 얻고, Visual Studio 정의에 맞게 빌드하고, 바이너리를 공유 폴더에 드롭하는 것만 큼 복잡한 일이라고 나는 믿을 수 없다.

덕분에 나는 TFS와 함께 사용하면 시스템을 구축 깰 이벤트를 구축 게시물을 사용 꽤 많은 프로젝트를 보았다

+0

서버에서 실행되는 동안 최소한 포스트 스크립트 또는 적어도 빌드를 볼 수 있습니까? – Betty

+0

포스트 빌드 스크립트가 많이 있으며 전체 솔루션은 맞춤 MSBuild 프로젝트를위한 제 3 자 libeary에 대한 솔루션 간 참조를위한 프로젝트 참조를위한 게시 빌드 이벤트에 의존합니다. 이것은 건강 관리 BizTalk 프로젝트를위한 것입니다. –

답변

3

많은. 이 문제는 일반적으로 Visual Studio에서 TFS Build 엔진이 수행하는 것보다 $ (OutDir) 변수를 MSBuild 엔진에 전달하는 방식이 다르기 때문에 발생합니다. 기본적으로 Visual Studio 내에서 컴파일 할 때 $ (OutDir) 경로는 bin \ debu 또는 bin \ release로 설정되는 반면 TFS BUild 시스템에서는 빌드가 발생하는 빌드 시스템의 Binaries 디렉토리로 설정됩니다.

이 당신의 다음 빌드이

접근을 해결하기 위해 몇 가지 방법이 있습니다 blighting 무슨 경우 1

  1. 게시물이 같은 하드 코딩 된 경로에 의존하지 않는 이벤트를 만들 확인 .. \ bin \ release 등등. bin \ debug 또는 bin \ release를 사용하는 곳이면 어디서든지 $ (OutDir)을 사용하십시오.
  2. 빌드되고있는 솔루션 파일 의 경로를 보려면 $ (SolutionDir) 또는 $ (solutionPath)
  3. 사용 목록 here

접근법 2

  1. 를 사용하여 빌드 템플릿을 사용자 정의 링크 here 빌드 스크립트 에 경로 변수에 필요한 사항을 변경합니다 그래서 은 Visual Studio 편집 모드를 사용합니다. 이 작업을 수행하려면 게시물 빌드 이벤트를 변경하면 안됩니다.
0

Nikhil, 감사합니다. 나는 크루즈 컨트롤을 사용하기로 결정했다. TFS보다 쉽고 유연하다. 제 말은 빌드와 같은 작은 팀을위한 것입니다. 우리는 이러한 워크 플로와 복잡한 요구 사항에 대해 정말로 신경 쓰지 않습니다.

관련 문제