Tengo una aplicación ASP.NET Core 3.0 preexistente que se implementó correctamente en un Servicio de aplicaciones de Azure (usando el AspNetCoreModuleV2
módulo). Después de actualizar la aplicación a (la versión de hoy) ASP.NET Core 3.1 , la aplicación se compila y ejecuta correctamente en mi versión local de IIS Express . Sin embargo, cuando intento publicar en el Servicio de aplicaciones de Azure usando (versión de hoy) de Visual Studio 16.4 , recibo el siguiente error:
El archivo de activos 'C: \ Project \ obj \ project.assets.json' no tiene un destino para '.NETCoreApp, Version = v3.0'. Asegúrese de que la restauración se haya ejecutado y que haya incluido 'netcoreapp3.0' en TargetFrameworks para su proyecto.
Notas
- Todo
<PackageReference>
's aMicrosoft.AspNetCore
,Microsoft.EntityFrameworkCore
yMicrosoft.Extensions
se han actualizado para3.1.0
- He limpiado mi solución e incluso he nukeado mi
obj
carpeta para asegurarme de que no haya referencias persistentes. - Este error se genera a partir de la
3.1.100
versión deMicrosoft.PackageDependencyResolution.targets
.
Entiendo que algo todavía está pendiente de las dependencias de .NET Core 3.0 . Pero no está claro por qué eso solo causa problemas durante la implementación. ¿ Azure App Service aún no está listo para .NET Core 3.1 ? ¿O es un problema con los objetivos de resolución de dependencia?
fuente
asp.net-core-3.1
. Me faltaba la reputación necesaria para crear una nueva etiqueta.<TargetFramework>
ajuste en elpubxml
perfil que Visual Studio se basa en que me espaciados en. ¡Uy! Cambiar eso paranetcoreapp3.1
que coincida con elcsproj
objetivo resuelve el problema inmediato. (Esto presenta un nuevo problema con el Servicio de aplicaciones de Azure en sí mismo tropezando con el objetivo, pero eso probablemente se puede resolver mediante una implementación independiente, similar al enlace que proporcionó). ¡Gracias por señalarme en la dirección correcta!Respuestas:
El problema inmediato, como se identificó en la pregunta original, tiene que ver con que hay dos lugares donde
<TargetFramework>
se establece:csproj
)pubxml
)El
<TargetFramework>
debe ser actualizado en ambos lugares, y deben coincidir exactamente . De lo contrario, la publicación no podrá encontrar sus objetivos en elproject.assets.json
archivo, que se basa<TargetFramework>
en elcsjproj
archivo.Editor de texto
Para realizar esta modificación a través de un editor de texto,
~/Properties/PublishProfiles
carpeta*.pubxml
que desea editar.<TargetFramework>
anetcoreapp3.1
:Visual Studio 2019
Para realizar esta modificación a través del IDE de Visual Studio 2019 ,
netcoreapp3.1
, haga clic en el icono de edición al lado.netcoreapp3.1
.Gracias, nuevamente, a @PanagiotisKanavos por señalarme en la dirección correcta (ver comentarios en el hilo original).
fuente
pubx
archivo como me explicaste, todavía estaba en 3.0. Muy frustrante. Honestamente, no he tenido nada más que extraños, oscuros y completamente errores y problemas desde que se lanzaron VS 16.3 y .NET Core 3.0. ¡Gracias de nuevo!HTTP Error 500.30 - ANCM In-Process Start Failure
mensaje de mi mensaje original. Anteriormente, esto requería publicar una distribución totalmente autónoma de su aplicación. (Dicho esto, generalmente hay un retraso de 2-3 días entre una nueva versión de .NET Core y su integración en el entorno de Azure App Service , por lo que es útil tenerlo en cuenta en futuras actualizaciones).Abra la carpeta del proyecto;
Abra el archivo FolderProfile.pubxml y luego cambie la versión 3.0 a 3.1
netcoreapp3.1
Finalmente, reconstruya su aplicación antes de publicar
fuente
pubxml
archivo manualmente, y especialmente dada la tontería de modificar estos valores a través de la GUI de Visual Studio 2019 . He incorporado estos detalles en mi respuesta original para que esta opción se explique explícitamente. ¡Gracias!cambio
funciona para mi.
fuente
Microsoft.AspNetCore
bibliotecas deben actualizarse3.1.0
, según las notas de la versión v3.1 de Microsoft. Su enfoque puede ser una solución válida para problemas similares en ASP.NET Core 2.2 , suponiendo que el error no fue causado por una falta de coincidencia entre sus archivoscsproj
ypubx
, como sucedió en mi caso.