Что такое автоматический поставщик в веб-развертывании (msdeploy.exe) - PullRequest
6 голосов
/ 17 августа 2011

Может ли кто-нибудь объяснить (лучше, чем документация technet / msdn), что именно делает авто провайдер, как он работает и когда его использовать.

Это относится к Web Deploy. Я видел много документации, определяющей -dest: auto, и это не имеет смысла для меня.

Автоматический поставщик указывает, что поставщик в пункте назначения будет такой же, как поставщик источника.

Пример

msdeploy.exe -verb: sync -source: appHostConfig = "MySite" -dest: авто, имякомпьютер = Сервер1

Авто провайдер позволяет вам не вводить полный путь для -dest аргумент, когда целевой аргумент совпадает с исходный аргумент. Это также устраняет необходимость копирования файла манифеста отдельно от архива или пакета.

Авто провайдер берет указанный вами источник и использует соответствующее местоположение на конечном компьютере. Например, если Вы указываете appHostConfig = Site1 в качестве источника, назначение на целевой компьютер будет Site1. Это полезно, когда вы хотите синхронизировать веб-сайт «как есть» с удаленной машиной.

технические документы для провайдера авто

Пример, который не имеет смысла:

msdeploy.exe -verb:sync -source:package=myapp.zip -dest:auto

Зачем вы когда-либо устанавливали пункт назначения точно на источник? Какой смысл? Разве вы просто не перекрыли источник самим?

Сгенерированный cmd-файл, сгенерированный при публикации пакета в VS2010, генерирует что-то вроде этого:

"C:\Program Files\IIS\Microsoft Web Deploy V2\\msdeploy.exe" -source:package='MySourcePath' -dest:auto"  

Не означает ли автоматически, что источник будет просто перезаписывать себя? Но это не так, фактически обновляет веб-сайт IIS (на основании настроек в манифесте)

Я пытался использовать пакет в качестве места назначения, и в этом случае он обновил исходный пакет, а не сайт IIS.

Катализатором этого вопроса является то, что я использую CI, и в прошлом я всегда использовал msbuild / xcopy. Я хочу использовать msdeploy сейчас. Я хочу понять это, а не просто вызывать myproject.cmd , сгенерированный из visual studio.

Например, эта ссылка SO указывает на использование автоматического провайдера для аргумента dest.

Спасибо

1 Ответ

4 голосов
/ 02 марта 2012

Я думаю, что вы на самом деле нашли ответ для себя.

Если источником является пакет, а местом назначения является auto, это просто означает, что компоненты, указанные внутри пакетабудет "разархивирован" и помещен на сервер назначения.В синтаксисе -source: package -dest: auto "auto" означает , а не , что означает, что сам пакет является пунктом назначения.

И, как вы заметили, если указать пакет какместо назначения, что бы вы ни указали для источника, действительно будет упаковано в zip-файл, который позже вы сможете использовать в качестве источника для развертывания в другом месте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...