msdeploy create package用于手动部署

时间:2014-07-07 13:21:56

标签: iis msdeploy

我对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,如果这有所不同。

1 个答案:

答案 0 :(得分:3)

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

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

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

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

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