Как сделать так, чтобы файлы не перезаписывались во время задачи развертывания службы приложений?

У нас есть PNG-файлы Android/Apple в корне, как показано на скриншоте. Эти значки необходимы в корневой папке, так как на мобильных устройствах происходило несколько запросов 404, и включение значков в корень решает проблему. Они не привязаны к системе управления версиями, поэтому мы не хотим, чтобы конвейер выпуска удалял их при развертывании нового артефакта сборки.

Причина, по которой они не привязаны к системе контроля версий, заключается в том, что они на самом деле не используются кодом, но иногда есть запросы на них с мобильных устройств, и они выдают ошибку 404, которая взорвет канал оповещений. Поэтому они просто скопированы в корень, чтобы остановить эти предупреждения 404.

Как сделать так, чтобы файлы не перезаписывались во время задачи развертывания службы приложений?

Во время развертывания службы приложений конвейера выпуска нам необходимо убедиться, что эти файлы не перезаписываются. Вот текущий YAML для развертывания службы приложений:

steps:

task: AzureRmWebAppDeployment@4
displayName: ‘Azure App Service Deploy: edge-dev’
inputs:
azureSubscription: ‘Azure Dev Service Connection’
WebAppName: ‘edge-dev’
packageForLinux: ‘$(System.DefaultWorkingDirectory)/Build Artifact/Release’
enableCustomDeployment: true
AdditionalArguments: ‘-skip:objectName=filePath,absolutePath=“Web.Dev.config|Web.Test.config|Web.Beta.config|Web.Prod.config|\*.zip” -retryAttempts:6 -retryInterval:10000’
enableXmlTransform: true

Есть ли какая-то опция, которую мы можем добавить, чтобы PNG-файлы Android/Apple не перезаписывались? В настоящее время каждый раз, когда новая сборка запускает развертывание выпуска, значки удаляются, и разработчик должен продолжать загружать их вручную после развертывания, чтобы исключить возникновение ошибки 404.

@KevinLu-MSFT, не могли бы вы помочь мне и с этим постом?

Cataster 20.03.2022 19:52

Использование -skip в опции AdditionalArguments не работает для вас? Точно так же, как вы сделали для web.config в предыдущем треде: stackoverflow.com/questions/68228310/…

Leo Liu-MSFT 21.03.2022 08:06

@LeoLiu-MSFT Я думал, что это используется для пропуска файлов артефактов сборки, а не файлов, уже развернутых под wwwroot.

Cataster 21.03.2022 15:54

@LeoLiu-MSFT Я просматривал правила веб-развертывания (docs.microsoft.com/en-us/previous-versions/windows/it-pro/…‌​) и обнаружил, что -enableRule:DoNotDeleteRule довольно интересно, учитывая контекст, я просто не уверен, как применить его в качестве дополнительного аргумента, чтобы пропустить файлы значков Android/Apple: в операция синхронизации блокирует удаление файлов на целевом компьютере, которые не существуют на исходном компьютере. Это правило применяется к провайдерам contentPath, dirPath и filePath. Это правило отключено по умолчанию.

Cataster 23.03.2022 05:39

@LeoLiu-MSFT -skip работает, поэтому я ответил на это, спасибо!

Cataster 27.03.2022 05:28
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
5
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение для предотвращения перезаписи значков:

там на самом деле 2 пути:

  1. мы могли бы пройти -enableRule:DoNotDeleteRule в службе приложений Azure Разверните Дополнительные аргументы. Блоки правил DoNotDeleteRule удаление файлов на целевом компьютере, которые не существуют на исходный компьютер. Это правило применяется к contentPath, dirPath, и провайдеры filePath.

  2. мы могли бы использовать -skip:objectName=filePath,absolutePath=android-icon-144x144.png|android-icon-72x72.png|etc. в службе приложений Azure разверните дополнительный аргумент. Он также блокирует удаления файлов на целевом компьютере, и мы уже использование аргумента сегодня на самом деле для некоторых файлов, таких как web.config

    -skip:objectName=filePath,absolutePath = "Web.Dev.config|Web.Test.config|Web.Beta.config|Web.Prod.config|android-icon-144x144.png|android-icon-192x192.png|android-icon-36x36.png|android-icon-48x48.png|android-icon-72x72.png|android-icon-96x96.png|apple-touch-icon-114x114.png|apple-touch-icon-120x120.png|apple-touch-icon-144x144.png|apple-touch-icon-152x152.png|apple-touch-icon-180x180.png|apple-touch-icon-57x57.png|apple-touch-icon-60x60.png|apple-touch-icon-72x72.png|apple-touch-icon-76x76.png|apple-touch-icon-precomposed.png|apple-touch-icon.png|favicon-16x16.png|favicon-32x32.png|favicon-96x96.png|apple-icon.png|ms-icon-144x144.png|ms-icon-150x150.png|ms-icon-310x310.png|ms-icon-70x70.png|\\*.zip"
    

    -retryAttempts:6 -retryInterval:10000

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