2011-08-24 9 views
1

웹 응용 프로그램을 빌드하고 배포하도록 TFS 빌드가 설정되었습니다. TFS 빌드 정의의 MSBuild 인수를 통해 MSDeploy 매개 변수를 전달합니다. 처음으로 라운드가 정상적으로 작동합니다. 누군가가 웹 애플리케이션에 액세스 할 때 컨트롤 중 하나 (Microsoft 차트 컨트롤)는 솔루션에 추가 한 빈 디렉토리에 몇 개의 파일을 생성합니다.MSDeploy에서 파일을 삭제할 수 없습니다.

내가 다시 빌드 (또는 지속적인 통합이 트리거 됨)되면 다음 빌드는 일반적으로 생성 된 파일 중 하나를 삭제할 수 없으므로 실패합니다. 파일을 수동으로 삭제하려고하면 IIS 작업자 프로세스가이 파일을 사용하고 있으며 삭제할 수 없다고 알려줍니다.

지금 빌드 빌드를 얻으려면 매번 수동으로 IIS를 다시 시작해야하는데, 이는 CI를 염두에두고 바람직하지 않습니다. Microsoft.Web.Publishing.Tasks.dll을 살펴보고 MSDeploy를 사용하여 IIS를 다시 시작할 수있는 방법은 없습니다.

임시 파일의 스텁을 솔루션에 추가하는 것이 해결책 일 수 있다고 생각합니다. 파일이 배포의 영구적 인 부분 인 경우 MSDeploy가 프로세스를 닫을 수 있습니다. 솔루션 파일에서 Exec과 함께 약간의 불쾌감이 생기면 IIS가 재설정됩니다.

길게 보였을 지 모르지만 누구나이 문제에 대처하고 좋은 해결책을 찾았습니까?

+0

솔루션에 스텁 파일을 저장하고 빌드가 완료되었습니다. – bucktronic

답변

0

배포하기 전에 MSBuild Extension Pack을 사용하여 응용 프로그램 풀을 자동으로 중지 할 수 있습니다. MSBuild.ExtensionPack.Web 네임 스페이스에는 응용 프로그램 풀 중지 및 시작, 응용 프로그램 삭제 등과 같이 IIS를 관리하는 몇 가지 작업이 있습니다.

+0

나는 msbuild 파일을 편집하는 것을 피하려고했지만 아마도 유일한 옵션 일 것입니다. MSDeploy 작업을 사용할 수도 있지만 나머지 배포에서도이 작업을 사용합니다. 감사! – bucktronic

관련 문제