我对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,如果这有所不同。
答案 0 :(得分:3)
使用MSDeploy,您可以将目标设置为ZIP包,一旦将ZIP文件复制到目标,就可以将其用作同步源。
msdeploy.exe -verb:sync -source:contentPath="d:\myProject" -dest:package="c:\myZipFile.zip"
不幸的是,它不会只复制更改的文件(这通常是有问题的,因为它需要创建“已删除的存根”,以便它知道是否要删除任何文件。上面的命令将复制所有文件该网站。
MSDeploy是增量的,但仅限于将目标与给定源同步的能力。因此,如果您在以较小的方式更改d:\ myProject后重复上述命令,您将看到仅指示增量差异的输出。但目标仍然是整个d:\ myProject副本。
抱歉,我没有更好的答案。