Существует отличный PDC-разговор доступный здесь от Vishal Joshi, в котором описываются новые функции MSDEPLOY в Visual Studio 2010, а также как развернуть приложение в TFS. (Там также отличный разговор от Скотт Гензельман, но он не входит в TFS).
Вы можете использовать MSBUILD в TFS2010 для вызова MSDEPLOY для развертывания вашего пакета в IIS. Это делается с помощью параметров для MSBUILD.
В этом разделе объясняются некоторые параметры командной строки, такие как:
/p:DeployOnBuild
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=InProc
/p:MSDeployServiceURL=localhost
/p:DeployIISAppPath="Default Web Site"
Но где документация для этого - я не могу найти?
Я проводил весь день, пытаясь заставить это работать, и не может понять это правильно и продолжать приводить к различным ошибкам. Если я запускаю пакетный файл cmd
, он отлично развертывается. Если я запускаю WebDeploy через Visual Studio, он отлично работает.
Но я хочу, чтобы все развертывание выполнялось через msbuild
, используя эти аргументы, а не отдельный вызов msdeploy
или запуск пакета .cmd
. Как я могу это сделать?
PS. Да, у меня работает Web Deployment Agent Service
. У меня также есть служба управления, работающая под IIS. Я пробовал использовать оба.
Арги, которые я использую:
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:Configuration=Release
/p:CreatePackageOnPublish=True
/p:DeployIisAppPath=staging.example.com
/p:MsDeployServiceUrl=https://staging.example.com:8172/msdeploy.axd
/p:AllowUntrustedCertificate=True
давая мне:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(2660): сбой VsMsdeploy. (Удаленный агент (URL https://staging.example.com:8172/msdeploy.axd?site=staging.example.com). Убедитесь, что служба удаленного агента установлена и запущена на целевом компьютере.) Подробности об ошибке: Удаленный агент (URL https://staging.example.com:8172/msdeploy.axd?site=staging.example.com) не удалось связаться. Убедитесь, что служба удаленного агента установлена и запущена на целевом компьютере. Был получен неподдерживаемый ответ. Заголовок ответа 'MSDeploy.Response' был '', но ожидалось 'v1'. Удаленный сервер возвратил ошибку: (401) Неавторизованный.