Избегайте удаления папки в 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>
Ответы
Ответ 1
Это не просто проблема снятия флажка в мастере публикации (шаг настроек), который гласит: "Удалить все существующие файлы до публикации"? Я знаю, что этот параметр доступен при настройке публикации со стороны Visual Studio - мне кажется, что учетные данные публикации Azure просто дают вам соединение, а не настройки, которые вы выполняете с помощью мастера.
Ответ 2
Рассмотрев вопрос, на который вы ссылаетесь, и код, который вы указали выше, кажется, вам нужно изменить строку:
<AbsolutePath>ErrorLog</AbsolutePath>
to
<AbsolutePath>media</AbsolutePath>
поскольку это относится к папке, которую вы не хотите удалять. ErrorLog
была папкой, которую другой автор вопроса не хотел удалять.