У нас есть 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.
Использование -skip
в опции AdditionalArguments не работает для вас? Точно так же, как вы сделали для web.config в предыдущем треде: stackoverflow.com/questions/68228310/…
@LeoLiu-MSFT Я думал, что это используется для пропуска файлов артефактов сборки, а не файлов, уже развернутых под wwwroot.
@LeoLiu-MSFT Я просматривал правила веб-развертывания (docs.microsoft.com/en-us/previous-versions/windows/it-pro/…) и обнаружил, что -enableRule:DoNotDeleteRule
довольно интересно, учитывая контекст, я просто не уверен, как применить его в качестве дополнительного аргумента, чтобы пропустить файлы значков Android/Apple: в операция синхронизации блокирует удаление файлов на целевом компьютере, которые не существуют на исходном компьютере. Это правило применяется к провайдерам contentPath, dirPath и filePath. Это правило отключено по умолчанию.
@LeoLiu-MSFT -skip
работает, поэтому я ответил на это, спасибо!
Решение для предотвращения перезаписи значков:
там на самом деле 2 пути:
мы могли бы пройти -enableRule:DoNotDeleteRule
в службе приложений Azure
Разверните Дополнительные аргументы. Блоки правил DoNotDeleteRule
удаление файлов на целевом компьютере, которые не существуют на
исходный компьютер. Это правило применяется к contentPath, dirPath,
и провайдеры filePath.
мы могли бы использовать
-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
@KevinLu-MSFT, не могли бы вы помочь мне и с этим постом?