Подтвердить что ты не робот

Избегайте удаления папки в Web Publish

Я развертываю свое приложение на веб-сайте Azure. Я настроил профиль публикации succesfuly и установил tfspreview.com для автоматического опубликования, используя непрерывную интеграцию при каждой фиксации кода.

У меня есть папка на пути "/media". В этой папке есть изображения и документы, загруженные через CMS (umbraco). Эта папка удаляется при каждом развертывании в Интернете.

Из этого ответа, я узнал, как добавить правило SkipDelete либо в .csproj, либо в файл wpp.targets, но каждый раз, когда я публикую сайт, весь папка удаляется в любом случае.

Вот код, который я сейчас использую внутри wpp.targets:

<PropertyGroup>
<AfterAddIisSettingAndFileContentsToSourceManifest>
  AddCustomSkipRules
</AfterAddIisSettingAndFileContentsToSourceManifest>
</PropertyGroup>

<Target Name="AddCustomSkipRules">
<Message Text="Adding Custom Skip Rules" />
<ItemGroup>
  <MsDeploySkipRules Include="SkipMediaFolder">
    <SkipAction>Delete</SkipAction>
    <ObjectName>filePath</ObjectName>
    <AbsolutePath>media</AbsolutePath>
  </MsDeploySkipRules>
</ItemGroup>
</Target>

<PropertyGroup>
<UseMsDeployExe>true</UseMsDeployExe>
</PropertyGroup>
4b9b3361

Ответ 1

Это не просто проблема снятия флажка в мастере публикации (шаг настроек), который гласит: "Удалить все существующие файлы до публикации"? Я знаю, что этот параметр доступен при настройке публикации со стороны Visual Studio - мне кажется, что учетные данные публикации Azure просто дают вам соединение, а не настройки, которые вы выполняете с помощью мастера.

Ответ 2

Рассмотрев вопрос, на который вы ссылаетесь, и код, который вы указали выше, кажется, вам нужно изменить строку:

<AbsolutePath>ErrorLog</AbsolutePath>

to

<AbsolutePath>media</AbsolutePath>

поскольку это относится к папке, которую вы не хотите удалять. ErrorLog была папкой, которую другой автор вопроса не хотел удалять.