2011-02-01 3 views
-1

ASP.NET MVC 응용 프로그램을 빌드하고 배포하기 위해 TeamCity를 설정하려고합니다.TeamCity 출력물이 IIS7 폴더에 게시되지 않았습니다.

TeamCity 4.5를 사용하는 다른 서버에서 성공적으로 설치가 실행되었지만 새 서버에서 TeamCity 6이 실행되고 예상대로 작동하지 못하는 문제가 있습니다.

TeamCity는 소스 제어에서 파일을 가져와 관리하며 프로젝트 (Visual Studio Solution 2008 "Build"로 설정)는 예상대로 필요한 파일을 빌드하고 출력합니다. 출력 파일이 웹 사이트 폴더에 복사되지 않기 때문에 문제가 내 이슈 경로와 관련이있는 것 같습니다.

내 솔루션은 12 개의 프로젝트로 구성되며,이 중 "웹"프로젝트가이 경우 흥미 롭습니다. 빌드 체크 아웃 디렉토리는 C : \ TeamCity \ buildAgent \ work \ 7da320cebf0ee541이고 "Web"프로젝트는 C : \ TeamCity \ buildAgent \ work \ 7da320cebf0ee541 \ Web에 있습니다.

다음과 같이 빌드 구성을 설정했습니다. (웹 사이트 포함 된 폴더에 체크 아웃 디렉토리에서 상대) 다음과 같은 유물 경로 :

Web/bin=>../../../../inetpub/wwwroot/staging/bin 
Web/Content=>../../../../inetpub/wwwroot/staging/Content 
Web/Views=>../../../../inetpub/wwwroot/staging/Views 
Web/Media=>../../../../inetpub/wwwroot/staging/Media 
Web/*.aspx=>../../../../inetpub/wwwroot/staging 
Web/*.asax=>../../../../inetpub/wwwroot/staging 

(난 그냥 경우에 더 ../으로 시도했다, 그러나 그것은 차이를하지 않았다).

내가 로그

[19시 35분 29초]에서 얻을 출력 : 출판 아티팩트 (1 초) [19시 35분 29초] : [게시 유물] 경로 게시 : [웹/bin => ../../../../ inetpub/wwwroot/staging/bin, 웹/콘텐츠 => ../../../../inetpub/ wwwroot/staging/Content, Web/obj => ../../../../ inetpub/wwwroot/staging/obj, Web/Views => ../../../../ inetpub/wwwroot/staging/Views, 웹/미디어 => ../../../../inetpub/ wwwroot/staging/Media, 웹/.aspx => ../../. ./../inetpub/wwwroot/staging, Web/ .asax => ../../../../ inetpub/wwwroot/staging, teamcity-info.xml] [19:35:30] : [출판 아티팩트] 파일 보내기는 [19시 35분 32초] : 빌드가 공개되는 유물의 각 라인으로, 4.5는 다른 형식을 사용하여 인 TeamCity를 실행하는 다른 서버의 일부에서

로그를 완료 이것이 관련이 있는지 또는 다른 로깅 형식으로 인한 것인지 확실하지 않습니다.

모든 것이 작동하는 것처럼 보이지만 빌드 후 내 웹 사이트 폴더에 파일이 저장되지 않습니다. 여기에 뭔가 빠졌습니까? 어떤 도움을 많이 주시면 감사하겠습니다 :)

+0

테스트 조금 후에 내가 상대 경로가 체크 아웃 디렉토리에 본사를 둔되어서는 안된다는 인식하지만 (× 8 "../") 빌드 에이전트 폴더를 일치하도록 변경 '아무튼 도와 줘. –

+0

업데이트 : 아티팩트를 상대 경로 "출력"으로 출력 할 때 폴더가 만들어지고 파일이 올바르게 복사됩니다. 문제는 내가 어떤 이유에서든 inetpub/wwwroot/staging 폴더에 파일을 복사 할 수 없다는 것입니다. –

답변

1

난 항상 이런 종류의 프로세스를 처리하는 데 사용했습니다. TC6을 사용하고 있기 때문에 VS.NET 솔루션 빌더 다음에 두 번째 빌드 단계를 추가 할 수 있어야합니다. 복사/이동을 수행합니다. MSBuild는 아마도이 작업을 수행하기 위해 선호되는 스크립팅 방법 일 것입니다. 그러나 당신이해야 할 일은 복사 만하면 간단한 콘솔 러너를 사용할 수 있습니다. 스크립트 방식을 사용하면 상대 경로만큼 취약하지 않아야하는 배포 디렉토리의 절대 경로를 사용할 수 있어야합니다.

+0

감사합니다. 좋은 계획 같아. 스크립트를 처리하고이를 보조 빌드 단계로 실행하는 스크립트를 설정합니다. –

1

6.0부터 TeamCity는 보안상의 이유로 서버의 artifacts 디렉토리 외부에 아티팩트를 게시하는 것을 허용하지 않습니다. 나는 이것이 당신의 경우라고 생각합니다.

서버 로그 (TeamCity/logs/teamcity-server.log)에서 "빌드 아티팩트 디렉토리 외부에서 아티팩트를 게시하려고 시도했습니다."라는 경고가 시작되어야합니다.

일부 특정 위치에 파일을 게시 wan't 경우, 당신은 아마 FTP로 파일을 보내거나 원하는 위치에 뭔가 것이다 별도의 빌드 단계를 작성해야합니다.

또한 왜 Albacorebuild을 살펴하지 http://youtrack.jetbrains.net/issue/TW-1558

관련 문제