我希望在CI流程的最后,使用msdeploy.exe将一个文件夹打包为zip并存储到指定目录。以下是命令行:
msdeploy.exe -verb:sync -source:contentpath="C:\SampleWebApp" -dest:package="c:\SampleWebApp.zip" -declareParamFile="parameters.xml"
我也喜欢msbuild生成的*.deploy.cmd和*.SetParameters.xml文件,它们与部署包一起生成。我重新命名了一组*.deploy.cmd和*.SetParameters.xml文件,并相应地更改了内容,以便在部署环境中运行。
当我运行*.deploy.cmd文件时,它生成了一个名为"C:\SampleWebApp"的文件夹,而不是根据.SetParameter.xml文件提供的参数创建iis应用程序。
经过一些调查,我发现.cmd部署到-dest:auto,这很好。但显然我的包中的包清单表明该包是contentPath,而由msbuild生成的包具有更复杂的清单,在包内的archive.xml中使用iisApp提供程序。
看了以下文章后:
我认为如果我使用正确的Package.xml和-source:manifest="Package.xml",最终结果应该类似于VS包输出。
我认为*.SourceManifest.xml可能是包的清单。我尝试使用它构建包,但当我想要使用.deploy.cmd部署时,它抱怨setAclUser。
错误:使用物理路径时,必须指定“setAclUser”设置的值,当使用“setAcl”提供程序时。
有人知道msbuild使用的是什么清单吗?