Il framework specificato 'Microsoft.AspNetCore.App', versione '3.1.0' non è stato trovato per una WebApp Linux Azure


9

Problema

Dopo aver aggiornato un'app Web Linux .Net Core 2.2 a .Net Core 3.1 in Azure, l'applicazione non funziona con un Specified framework 'Microsoft.AspNetCore.App', version '3.1.0' was not founderrore. Sono persino arrivato al punto di creare una nuova app Web Linux con .Net Core 3.1 e dopo che il prompt dei comandi bash è ancora in uscita dotnet --list-runtimescome 2.2.7.

Dettagli

Sito Web giù

Errore dell'applicazione

Logstream

l'applicazione di reporting non funziona perché non è in grado di trovare .net core 3.1.

Logstream

Creata nuova app Web di base .net

3.1 webapp Linux in North Central, stesso problema

Creata nuova app web

Garantito che funzionava negli Stati Uniti centro-nord

Secondo https://aspnetcoreon.azurewebsite.net/ , dovrebbe avere il pieno supporto .netCore 3.1

Still .net core 2.2.7 prompt cmd 2.2.7

opt/dotnet/runtimes elenchi 3, 3.0 e 3.0.0, ma non 3.1` inserisci qui la descrizione dell'immagine

Variabili ambientali

Le mie variabili di ambiente nell'elenco di Azure FRAMEWORK_VERSION = lts, anziché 3.1

editoriale

È stato pubblicato da una pipeline di sviluppo devops ci usando un'attività di distribuzione di AppService di Azure. 3.1 non era disponibile qui, quindi ho sceltoLTS

Pipeline di rilascio di Devops

Aggiornamento 1

Sembra che il colpevole sia 3.1 mancante dallo stack del framework nelle attività di Azure Devops Web App / Servizio Web.

Ogni volta che pubblico da CI, il framework dell'app Web viene aggiornato a tutto ciò che è selezionato in questo menu a discesa. Se vado manualmente, modifica il framework in 3.1 sull'app Web di Azure, il sito viene visualizzato. Ma poi la prossima pubblicazione torna indietro perché ripristina il framework alle impostazioni in ci.

Nuova domanda

Come posso ottenere la pipeline di Azure Devops Release per pubblicare un'attività .net core 3.1?

Aggiornamento 2

Post del forum di Azure Devops correlati

Attualmente oggetto di indagine dal 23/02/2020

.Net Core 3.1 distribuisce pipeline al servizio app Linux

Soluzioni alternative suggerite

  1. Utilizzare YML per la pipeline di rilascio e modificare manualmente la versione da 3.0in 3.1, annotata dalla risposta e da questo thread
  2. Aggiornamento da una framework dependentversione a self contained. Riferimento
  3. Esegui il downgrade a .NetCore 3.0

Invece di utilizzare LTS, prova a utilizzare l'ultimo (non è consigliato ma provalo comunque, vedrà se funziona o meno)
Manish

L'ho fatto e non ha funzionato. Ma CI sembra essere il problema. Ogni volta che pubblico con CI cambia il framework dell'app Web in qualunque cosa sia selezionata in CI. Se vado al servizio app dopo una pubblicazione di elementi della configurazione e cambio manualmente lo stack di runtime in 3.1, il sito viene visualizzato fino alla pubblicazione successiva.
w00ngy,

NON pubblicare immagini di codice, dati, messaggi di errore, ecc. - Copia o digita il testo nella domanda. Come chiedere
Rob

Risposte:


2

Mi sono imbattuto nella stessa situazione, utilizzando le informazioni fornite sono stato in grado di risolvere il problema impostando manualmente il valore nel file .yml di Devops Pipelines Build. Sembra che manchi solo il valore dal menu a discesa Stack RunTime. Se aggiorni manualmente il file .yml dei processi di compilazione come mostrato qui:

inserisci qui la descrizione dell'immagine

Questo selezionerà la versione corretta del framework. Si spera che questo risolva il problema con la distribuzione della pipeline CI di Azure Devops.


Mi chiedevo se questo potesse risolverlo. Proverò a provarci. Potrebbe essere un po 'di lavoro per me convertire l'intera mia versione in yml, quindi non l'ho ancora provato. Ti farò sapere i risultati! Apprezzo la risposta !!
w00ngy,

2
Sembra che sia possibile inserire la stringa DOTNETCORE | 3.1 direttamente nella casella Runtime Stack (e risolve il problema) - quindi non è necessario convertire la pipeline di rilascio in yaml!
rdavisau,

Stavo per dire la stessa cosa di @rdavisau - la soluzione più semplice è quella di sovrascrivere la versione 3.1 nella casella Runtime Stack e sembra prendere il valore.
Will Appleby

NON pubblicare immagini di codice, dati, messaggi di errore, ecc. - Copia o digita il testo nella domanda. Come chiedere
Rob

rdavisau - questo mi avrebbe fatto risparmiare un sacco di tempo! lol.
w00ngy,

1

Una soluzione più semplice consiste nel digitare DOTNETCORE|3.1il menu a discesa Stack di runtime in devops. (Grazie rdavisau!)

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.