msdeploy восстановить один сайт из пакета, содержащего несколько сайтов - PullRequest
0 голосов
/ 24 августа 2018

Мы создаем пакет msdeploy для нескольких сайтов следующим образом:

"c:\Program Files\iis\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:manifest=MultipleSitesMultipleProviders.xml -dest:package=Test.zip,encryptPassword="password" -disableLink:ContentExtension -enableLink:AppPoolExtension  

MultipleSitesMultipleProviders.xml

<sitemanifest>

   <appHostConfig path="SITE1" />
   <appPoolNetFx path="SITE1" />
   <dirPath path="C:\SITES\SITE1" />

   <appHostConfig path="SITE2" />
   <appPoolNetFx path="SITE2" />
   <dirPath path="C:\SITES\SITE2" />

   <appHostConfig path="SITE3" />
   <appPoolNetFx path="SITE3" />
   <dirPath path="C:\SITES\SITE3" />

</sitemanifest>

А вот как этот пакет затем восстанавливается

"c:\Program Files\iis\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -dest:auto -source:package=Test.zip,encryptPassword="password"

Это восстанавливает все три сайта. Проблема, которую я пытаюсь решить, заключается в том, как заставить msdeploy.exe восстановить только один из указанных мной сайтов. Я думаю, что это может быть сделано с использованием правила -skip , которое указывает развертыванию пропустить два сайта, которые мы не хотим устанавливать. Но я не мог понять, как выглядит формат этой команды.

Это вообще возможно сделать? Любая помощь обязательно будет оценена! Спасибо.

Обновление: я думаю, что нашел способ сделать это через пользовательский интерфейс. Import Server or Site Package Это установило только SITE1, а не SITE2 из пакета, который содержал два сайта. Я хотел бы понять, как это сделать из командной строки.

1 Ответ

0 голосов
/ 27 августа 2018

Узнал, как это сделать.Все сайты, кроме SITE1, исключены.Вам нужно поработать с archive.xml в zip-файле пакета и найти выражения xpath, которые исключат шесть элементов, сгенерированных шестью записями MultipleSitesMultipleProviders.xml.

xpath, который препятствовал копированию файлов, был хитрым, потому что элемент в archive.xml равен ''и вы думаете, что выражение xpath будет //MSDeploy.dirPath[@path='C:\SITES\SITE3'], но это не сработало, но // dirPath [@ path = 'C: \ SITES \SITE3 '] работал.Не знаю, почему это так.

-skip=xPath=//appHostConfig[@path='SITE2'] -skip:xPath=//appPoolNetFx[@Site='SITE2'] -skip:xPath=//dirPath[@path='C:\SITES\SITE2'] -skip=xPath=//appHostConfig[@path='SITE3'] -skip:xPath=//appPoolNetFx[@Site='SITE3'] -skip:xPath=//dirPath[@path='C:\SITES\SITE3'] 

Я предполагаю, что есть другие способы сделать то же самое, но я счастлив просто найти что-то, что сработало!

...