2012-05-24 2 views
1

이 문제를 해결하기 위해 주변을 조용하게 검색했지만 적절한 해결책을 찾을 수 없습니다.
약 16 개의 프로젝트가있는 C# .NET 솔루션을 TeamBuild 및 MSBuild를 통해 야간에 구축하고자합니다.
두 가지 프로젝트는 솔루션이나 프로젝트를 빌드 한 후에 게시되는 웹 프로젝트입니다.하지만 문제는 다음과 같습니다. 정상 출력 경로에서 컴파일하고 로컬 파일 시스템의 특정 폴더에 게시해야합니다. Visual Studio에서 이것은 문제가되지 않습니다 - 로컬 파일 시스템에서 게시를 클릭하면 프로젝트가 잘 게시됩니다.TeamBuild 및 MSBuild를 통해 특정 로컬 폴더에 웹 프로젝트를 게시하는 방법

DelpoyOnBuild와 같은 일부 MSbuild 옵션을 이미 찾았지만 모든 예제는 IIS WebServer에서 게시 할 때만 작동하지만이 경우에는 IIS를 사용하고 싶지 않습니다. 빌드 후에 MSBuild가 웹 프로젝트를 지정된 로컬 폴더에 게시/배포 할 수 있습니까?

안부 세바스찬

답변

0

네,하지만 당신은 당신의 프로세스 템플릿 조금 적응해야합니다. 별도의 프로세스가 드롭 폴더의 파일을 기반으로 게시 부분을 처리 할 수 ​​있습니다. 그런 다음 원하는 도구를 사용하여 InvokeProcess 활동을 사용하거나 직접 처리하는 사용자 정의 활동을 개발할 수 있습니다.

이 프로세스가 표준 빌드 프로세스의 일부인지 또는 별도의 템플릿/빌드 정의의 일부인지 여부는 실행 방법에 달려 있습니다.

우리는 Community TFS Build Extensions을 사용하고 추가 활동으로 InvokeBuild을 사용하여 다른 빌드를 시작할 수 있습니다 (예 : 다른 빌드의 끝). 현재 빌드 Uri를 통과 한 다음 GetBuildDetail을 사용하면 모든 빌드가 이전 빌드를 알 수 있고 모든 세부 정보 (예 : DropFolder)에 액세스 할 수 있습니다.

0

나는 postbuild 이벤트 또는 msbuild.exe를 호출하는 간단한 명령 파일로이 작업을 수행했습니다. msbuild는 매개 변수가있는 startet이므로 웹 서비스를 배포합니다. 이것은 내 명령입니다.

MSBuild.exe /target:Build;PipelinePreDeployCopyAllFilesToOneFolder /p:Configuration=Release;_PackageTempDir=%binfolder% "projectfile.csproj"