A estrutura especificada 'Microsoft.AspNetCore.App', versão '3.1.0' não foi encontrada para um WebApp do Azure Azure

9

Problema

Depois de atualizar um aplicativo da Web .Net Core 2.2 Linux para o .Net Core 3.1 no Azure, o aplicativo fica inativo com um Specified framework 'Microsoft.AspNetCore.App', version '3.1.0' was not founderro. Até fui criar um novo Linux Web App com o .Net Core 3.1 e depois que o prompt de comando do bash ainda está sendo exibido dotnet --list-runtimescomo 2.2.7.

Detalhes

Site desativado

Erro de aplicação

Logstream

o aplicativo de relatório está inativo porque não consegue encontrar o .net core 3.1.

Logstream

Criou o novo aplicativo da web principal .net

Webapp linux 3.1 em North Central, mesmo problema

Criado novo aplicativo da web

Garantiu que estava sendo executado no norte da América Central

De acordo com https://aspnetcoreon.azurewebsites.net/ , deve ter suporte completo ao .netCore 3.1

Ainda .net core 2.2.7 cmd prompt 2.2.7

opt/dotnet/runtimes lista 3, 3.0 e 3.0.0, mas não 3.1` insira a descrição da imagem aqui

Variáveis ​​ambientais

Minhas variáveis ​​de ambiente na lista do Azure FRAMEWORK_VERSION = lts, em vez de 3.1

Publicação

Este foi publicado a partir de um pipeline do azure devops ci usando uma tarefa de Implantação do AppService do Azure. 3.1 não estava disponível aqui, então eu escolhiLTS

Devops lançam pipeline

Atualização 1

Parece que o culpado está faltando 3,1 na pilha da estrutura nas tarefas do Azure Devops Web App / Serviço da Web.

Sempre que publico no CI, a estrutura de aplicativos da web é atualizada para o que for selecionado neste menu suspenso. Se eu alterar manualmente a estrutura para 3.1 no Azure Web App, o site será exibido. Mas, na próxima publicação, ele volta a funcionar porque reverte a estrutura de volta às configurações no ci.

Nova pergunta

Como posso obter o pipeline do Azure Devops Release para publicar uma tarefa .net core 3.1?

Atualização 2

Post do fórum relacionado ao Azure Devops

Atualmente sendo investigado em 23/2/2020

.Net Core 3.1 implanta pipeline no Linux App Service

Soluções alternativas sugeridas

  1. Use o YML para o pipeline de lançamento e altere manualmente a versão de 3.0para 3.1, anotada pela resposta e por este encadeamento
  2. Atualize de uma framework dependentversão para a self contained. Referência
  3. Faça o downgrade para .NetCore 3.0
w00ngy
fonte
Em vez de usar LTS por favor, tente usar mais recente (que não é recomendado, mas experimentá-lo de qualquer maneira, vai ver se o seu trabalho ou não)
Manish
Eu fiz, e não funcionou. Mas o IC parece ser o problema. Sempre que publico com o CI, ele altera a estrutura do aplicativo Web para o que for selecionado no CI. Se eu for para o serviço de aplicativo após uma publicação de IC e alterar manualmente a pilha de tempo de execução para 3.1, o site será exibido até a próxima publicação.
w00ngy 22/01
NÃO publique imagens de código, dados, mensagens de erro etc. - copie ou digite o texto na pergunta. Como perguntar
Rob

Respostas:

2

Corri para a mesma situação, usando as informações fornecidas, fui capaz de corrigir o problema, definindo o valor manualmente no arquivo .yml do Devops Pipelines Build. Parece que eles estão perdendo o valor da lista RunTime Stack. Se você atualizar manualmente o arquivo .yml dos processos de construção, como visto aqui:

insira a descrição da imagem aqui

Isso selecionará a versão apropriada da estrutura. Esperamos que isso resolva seu problema com a implantação do Pipeline de CI de Devops do Azure.

Taran Beekhuis
fonte
Gostaria de saber se isso resolveria isso. Vou tentar tentar. Pode ser um pouco trabalhoso converter todo o meu lançamento em yml, para que eu ainda não o tenha experimentado. Eu vou deixar você saber os resultados! Aprecie a resposta !!
w00ngy 26/01
2
Parece que é possível inserir a sequência DOTNETCORE | 3.1 diretamente na caixa Runtime Stack (e resolve o problema) - portanto, não é necessário converter o pipeline de lançamento em yaml!
rdavisau 27/01
Eu ia dizer o mesmo que @rdavisau - a correção mais fácil é sobrescrever a versão 3.1 na caixa Runtime Stack e parece levar o valor.
Will Appleby
NÃO publique imagens de código, dados, mensagens de erro etc. - copie ou digite o texto na pergunta. Como perguntar
Rob
rdavisau - isso me pouparia muito tempo! ri muito.
w00ngy 6/02
1

Uma solução mais fácil é digitar DOTNETCORE|3.1no menu suspenso Runtime Stack em devops. (Obrigado rdavisau!)

insira a descrição da imagem aqui

w00ngy
fonte