Если вы используете IIS 7, вы можете использовать appPoolProvider для синхронизации пулов приложений с удаленным сервером. См:
http://technet.microsoft.com/en-us/library/dd569070(WS.10).aspx
и
http://blog.torresdal.net/2010/08/16/NoClickWebDeploymentPart2WebDeployAkaMsdeploy.aspx
Однако я не смог заставить его работать, и если вы используете IIS 6, это не сработает. Однако вы можете использовать MSDeploy для запуска пары команд на удаленном сервере, чтобы установить пул приложений (и зарегистрировать версию .NET на веб-сайте).
Сначала создайте командный файл, который содержит нечто похожее на следующее:
cscript //nologo C:\Inetpub\AdminScripts\adsutil.vbs
SET w3svc/<IIS number>/Root/<virtual directory>/AppPoolid "<app pool name>"
Итак, если номер IIS равен 1, ваш виртуальный каталог - «MyDirectory», а пул приложений - «.NET4.0», команда будет выглядеть следующим образом.
cscript //nologo C:\Inetpub\AdminScripts\adsutil.vbs
SET w3svc/1/Root/MyDirectory/AppPoolid ".NET4.0"
Затем вы можете запустить MSDeploy, передав этот пакетный файл в качестве аргумента и запустив его на удаленной машине:
MSDeploy
-verb:sync
-source:runCommand="<path to batch file>",waitinterval=5000
-dest:auto,computername=<computer name>
где <path to batch file>
- это полный путь к пакетному файлу, который вы только что создали, и это компьютер, на котором вы хотите его запустить. Вот ссылка, описывающая аргумент runCommand
: http://technet.microsoft.com/en-us/library/ee619740(WS.10).aspx
Я уверен, что вы можете настроить это как этап сборки в TFS. Мы создали небольшую утилиту .NET, которую мы вызываем в процессе развертывания, которая создает эти пакетные файлы и запускает команду MSDeploy.
В этом же методе вы можете использовать и другие вещи, которые могут оказаться полезными для вас:
Регистрация версии IIS:
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe
-s w3svc/1/root/MyDirectory
Создание пула приложений:
CSCRIPT //nologo %dir%\adsutil.vbs
CREATE w3svc/AppPools/AppPoolName IISApplicationPool
Спасибо http://justsamson.com/2010/06/14/create-virtual-directory-in-iis-6-0-via-command-line/ за сценарии командной строки для выполнения различных функций.