Установка прав записи для папок при создании пакета с помощью MSDeploy
Я использую MSDeploy для создания артефакта в качестве шага сборки в NAnt. Этот конкретный шаг сборки вызывается при успешной компиляции. Артефакт затем используется для развертывания.
Вот шаг, указанный в моем файле сборки.
<target name="BuildMsDeployPackage" depends="StageForMsDeployPackaging">
<exec program="${msdeploy.exe}"
workingdir="${buildDirectory}"
verbose="true"
commandline="-verb:sync
-source:iisapp=${packagingDirectory}
-dest:package=${publishDirectory}\${webapp.artifact.zip}"/>
source
вот мой мой веб-проект.
Я хочу иметь возможность задать заданный доступ на запись к нескольким папкам в создаваемом пакете. Это возможно? Я знаю, что есть setAcl
провайдер для этой конкретной цели, но можно ли это использовать при создании пакета?
1 ответ
Вы можете использовать manifest
провайдер для синхронизации нескольких провайдеров, которые будут работать с пакетом:
msdeploy verb:sync -source:manifest=manifest.xml -dest:package=package.zip
msdeploy verb:sync -source:package=package.zip -dest:auto,computerName=...
затем manifest.xml
является:
<multipleAcls>
<iisApp path="local iis app or path" />
<setAcl path="remote iis site name/relative path1" setAclAccess="Write" />
<setAcl path="remote iis site name/relative path2" setAclAccess="Read" />
</multipleAcls>
Вы можете использовать параметры или заменить операторы в вызове dest:package, чтобы избежать необходимости динамически генерировать манифест, и вы можете использовать аналогичные операторы в вызове deploy для изменения того, на какой сайт / путь вы развертываете. Вы можете установить свой dest для другого файла манифеста в качестве альтернативного решения последней проблемы.