我们为多个站点创建一个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 rule完成此操作,该操作将告诉部署跳过我们不想安装的两个站点。但是我不明白该命令的格式是什么样的。
这甚至有可能做到吗?任何帮助将不胜感激!谢谢。
更新:我想我找到了一种通过UI进行此操作的方法。 这仅从包含两个站点的软件包中安装了SITE1,而没有安装SITE2。我想从命令行了解如何做到这一点。
答案 0 :(得分:0)
了解如何执行此操作。除SITE1之外的所有网站均不包括在内。您需要使用软件包zip文件中的archive.xml并提供xpath表达式,该表达式将排除由六个MultipleSitesMultipleProviders.xml条目生成的六个元素。
阻止归档文件复制的xpath很棘手,因为archive.xml中的元素是'
-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']
我猜想还有其他方法可以完成同一件事,但我很高兴能找到可行的方法!