Este YAML para um aplicativo Web .NET 8.0 C# é baseado no conteúdo de Tony Box (MSFT) e Grok:
- task: AzureWebApp@1
inputs:
azureSubscription: $(azureSubscription)
appType: 'webAppLinux'
appName: $(appName)
package: '$(Build.ArtifactStagingDirectory)/app.zip'
deploymentMethod: 'zipDeploy'
appOffline: true
displayName: 'Deploy (Zip Deploy)'
Como esperado, ele coloca um arquivo chamado CIGraph.zip
no /home/site/wwwroot
diretório do servidor Debian 12 GNU\Linux que hospedará o aplicativo web. Infelizmente, ele não consegue extrair esse CIGraph.zip
arquivo e o site não funciona.
Curiosamente, se eu descompactar manualmente o CIGraph.zip
arquivo dentro do /home/site/wwwroot
, o site começa a funcionar como esperado. Perguntei a alguns agentes de IA por que meu *.zip
pacote não estava sendo extraído na etapa "Implantar (Zip Deploy)" mostrada acima, e eles parecem me levar a buscas infrutíferas que exigem scripts de extração desnecessariamente complicados ou que eu alterne para o modo "Executar a partir do Pacote".
Qual é a maneira mais fácil de modificar a tarefa acima (ou adicionar uma extra) para que meu CIGraph.zip
arquivo seja extraído /home/site/wwwroot
durante ou após a etapa "Implantar (Implantar Zip)"?
Verifique se há alguma etapa no seu pipeline configurada para arquivar os arquivos de artefatos de compilação como ZIP repetidamente. Por exemplo, a tarefa ArchiveFiles@2 . Em caso afirmativo, remova a etapa.
No pipeline, você pode usar o
dotnet publish
comando " " para compilar e arquivar os arquivos de artefatos de compilação como um arquivo ZIP apenas uma vez. Em seguida, use a tarefaAzureRmWebAppDeployment@5
ouAzureWebApp@1
para implantar o aplicativo web no Azure via implantação ZIP.Abaixo segue um exemplo como referência: