У нас есть одно решение, которое содержит один проект webapp и некоторые сопутствующие проекты. Наш TFS 2010 строит это решение каждую ночь и развертывает webapp на сервере IIS. Он работает как ветерок.
На вкладке "Процесс" определения сборки TFS вы можете указать "Аргументы MSBuild". Это значение, которое задано в нашем определении сборки (все в одной строке):
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=WMSVC
/p:MSDeployServiceUrl=<service url of IIS>
/p:DeployIisAppPath="<a website>"
/p:UserName=<domain>\<user
/p:Password=<password>
В этом блоге объясняется вся настройка: http://vishaljoshi.blogspot.com/2010/11/team-build-web-deployment-web-deploy-vs.html.
До сих пор так хорошо.
Теперь мы добавили второй проект webapp, который мы хотим развернуть также в один и тот же IIS каждую ночь. К сожалению, в этом случае установка не применима. TFS развертывает только один webapp.
Есть другие проблемы с такой же проблемой:
TFS 2010 + MSDeploy, когда решение имеет несколько веб-приложений
и
WebDeploy для развертывания нескольких веб-сайтов
Vishal R. Joshi предлагает добавить некоторые свойства в каждый проект webapp. Теперь сборка release будет генерировать webpackage (zip файл) для каждого проекта webapp, который имеет следующие свойства:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DeployOnBuild>True</DeployOnBuild>
<DeployTarget>Package</DeployTarget>
<CreatePackageOnPublish>true</CreatePackageOnPublish>
</PropertyGroup>
Ok. Но как привести TFS для развертывания каждого webapp в IIS? Любые другие идеи?