MSDeploy - 可以一次在多个目的地上调用 setAcl 吗?

MSDeploy - 可以一次在多个目的地上调用 setAcl 吗?

我正在为我们的开发团队构建一个基于 TeamCity 的小型持续集成环境。它运行得相当好,因为它可以构建 .NET 和 PHP 混合项目,并将它们推送到我们的内部和外部平台。

我主要使用 MsDeploy 将所有内容推送到内部平台,因为这些都基于 IIS。但是,在很多版本中,我需要设置目标目录的目录权限。我可以setAcl很好地使用该运算符,但它似乎只接受一个目标作为参数。因此,如果我需要更改 5 个目标目录的权限,我需要调用 MsDeploy 5 次,这似乎开销很大。

有没有合理的方法可以解决这个问题?阅读文档后,我认为 MsDeploy 不会为操作符接受多个参数setAcl,但这可能是错误的。有没有更好的方法让构建服务器一次性设置多个目录权限?

答案1

manifest提供者旨在一次同步多个提供商:

msdeploy verb:sync -source:manifest=manifest.xml -dest:auto,computerName=...

然后manifest.xml是:

<multipleAcls>
    <setAcl path="path1" setAclAccess="Write" />
    <setAcl path="path2" setAclAccess="Read" />
    <setAcl path="path3" setAclAccess="ReadAndExecute" />
</multipleAcls>

相关内容