El marco especificado 'Microsoft.AspNetCore.App', versión '3.1.0' no se encontró para una aplicación web Linux Azure

9

Problema

Después de actualizar una aplicación web Linux .Net Core 2.2 a .Net Core 3.1 en Azure, la aplicación deja de funcionar con un Specified framework 'Microsoft.AspNetCore.App', version '3.1.0' was not founderror. Incluso fui tan lejos como para crear una nueva aplicación web de Linux con .Net Core 3.1, y después de que el símbolo del sistema bash todavía salga dotnet --list-runtimescomo 2.2.7.

Detalles

Sitio web abajo

Error de la aplicación

Logstream

la aplicación de informes está inactiva porque no puede encontrar .net core 3.1.

Logstream

Se creó una nueva aplicación web .net core

3.1 aplicación web de Linux en North Central, mismo problema

Nueva aplicación web creada

Se aseguró de que funcionara en el centro-norte de EE. UU.

De acuerdo con https://aspnetcoreon.azurewebsites.net/ , debería tener soporte completo para .netCore 3.1

Todavía .net core 2.2.7 cmd prompt 2.2.7

opt/dotnet/runtimes enumera 3, 3.0 y 3.0.0, pero no 3.1` ingrese la descripción de la imagen aquí

Variables de entorno

Mis variables de entorno en la lista de Azure FRAMEWORK_VERSION = lts, en lugar de 3.1

Publicación

Esto se publicó desde una canalización ci de devures azul usando una tarea de implementación de Azure AppService. 3.1 no estaba disponible aquí, así que elegíLTS

Devops lanza tubería

Actualización 1

Parece que al culpable le falta 3.1 de la pila de framework en las tareas de Azure Devops Web App / Web Service.

Cada vez que publico desde CI, el marco de la aplicación web se actualiza a lo que esté seleccionado en este menú desplegable. Si cambio manualmente el marco a 3.1 en la aplicación web de Azure, aparece el sitio. Pero luego la próxima publicación vuelve a caer porque revierte el marco a la configuración en el ci.

Nueva pregunta

¿Cómo puedo obtener el canal de lanzamiento de Azure Devops para publicar una tarea .net core 3.1?

Actualización 2

Publicación relacionada en el foro de Azure Devops

Actualmente en investigación a partir del 23/02/2020

.Net Core 3.1 despliega canalización a Linux App Service

Soluciones sugeridas

  1. Use YML para la canalización de lanzamiento y cambie manualmente la versión de 3.0a 3.1, anotada por la respuesta y este hilo
  2. Actualizar de una framework dependentversión a una self contained. Referencia
  3. Degradar a .NetCore 3.0
w00ngy
fuente
En lugar de usar LTS, intente usar el último (no es recomendable, pero pruébelo de todos modos, verá si funciona o no)
Manish
Lo hice, y no funcionó. Pero CI parece ser el problema. Cada vez que publico con CI, cambia el marco de trabajo de la aplicación web a lo que esté seleccionado en CI. Si voy al servicio de aplicaciones después de una publicación de CI y cambio manualmente la pila de tiempo de ejecución a 3.1, el sitio aparece hasta la próxima publicación.
w00ngy
NO publique imágenes de código, datos, mensajes de error, etc. - copie o escriba el texto en la pregunta. Cómo preguntar
Rob

Respuestas:

2

Me he encontrado con la misma situación, utilizando la información que proporcionó, he podido solucionar el problema estableciendo el valor manualmente en el archivo .yml de Devops Pipelines Build. Parece que solo les falta el valor del menú desplegable RunTime Stack. Si actualiza manualmente el archivo .yml de procesos de compilación como se ve aquí:

ingrese la descripción de la imagen aquí

Esto seleccionará la versión de marco adecuada. Con suerte, esto solucionará su problema con la implementación de Azure Devops CI Pipeline.

Taran Beekhuis
fuente
Me preguntaba si esto lo resolvería. Intentaré darle una oportunidad. Podría ser un poco de trabajo para mí convertir todo mi lanzamiento a yml, así que aún no lo había probado. ¡Te haré saber los resultados! Agradezco la respuesta !!
w00ngy
2
Parece que es posible ingresar la cadena DOTNETCORE | 3.1 directamente en el cuadro Runtime Stack (y resuelve el problema), ¡así que no es necesario convertir la tubería de lanzamiento a yaml!
rdavisau
Solo iba a decir lo mismo que @rdavisau: la solución más fácil es sobreescribir la versión 3.1 en el cuadro Runtime Stack y parece tomar el valor.
Will Appleby
NO publique imágenes de código, datos, mensajes de error, etc. Copie o escriba el texto en la pregunta. Cómo preguntar
Rob
rdavisau: ¡esto me habría ahorrado mucho tiempo! jajaja
w00ngy
1

Una solución más fácil es escribir DOTNETCORE|3.1en el menú desplegable Runtime Stack en devops. (Gracias rdavisau!)

ingrese la descripción de la imagen aquí

w00ngy
fuente