Установка прав записи для папок при создании пакета с помощью 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 для другого файла манифеста в качестве альтернативного решения последней проблемы.

Другие вопросы по тегам