我正在为我们的开发团队构建一个基于 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>