我对 msdeploy 很陌生,但我想用它来创建一个包/zip 文件,其中只包含已更改的网站文件。

我无法使用 msdeploy 直接部署文件,因为我无权在生产服务器上安装 Web Deploy。这就是为什么我需要获取一个 zip 文件,我可以将其复制到生产服务器并手动解压缩以替换更改的文件(我知道不是最佳的)。

如果我运行以下命令,我会得到要添加/更新/删除哪些文件的文本输出:

    "c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" ^
-verb:sync ^
-source:contentPath="D:\MyProject" ^
-dest:contentPath="MySite",ComputerName="https://MyServer/MsDeploy.axd?site=MySite",UserName="MyUsername",Password="MyPassword",AuthType="Basic" ^
-whatif ^

有什么方法可以让 msdeploy 将此输出保存到 zip 文件/包中,而不仅仅是打印它?

IIS 版本是 7,如果这有所不同的话。

最佳答案

使用 MSDeploy,您可以将目标设置为 ZIP 包,一旦您将 ZIP 文件复制到目标,就可以将其用作同步源。

msdeploy.exe -verb:sync -source:contentPath="d:\myProject" -dest:package="c:\myZipFile.zip"

不幸的是,它不会只复制更改的文件(这通常是有问题的,因为它需要创建“已删除 stub ”以便知道是否要删除任何文件。上面的命令将复制站点的所有文件。

MSDeploy 是增量式的,但仅限于将目标与给定源同步的能力。因此,如果您在以较小的方式更改 d:\myProject 后重复上述命令,您将看到仅指示增量差异的输出。但目标仍然是整个 d:\myProject 副本。

抱歉,我没有更好的答案。

关于iis - msdeploy 为手动部署创建包,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24611618/

10-13 04:20