Tengo una aplicación ASP.NET Core 3.0 preexistente que se implementó correctamente en un Servicio de aplicaciones de Azure (usando el AspNetCoreModuleV2mó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.EntityFrameworkCoreyMicrosoft.Extensionsse han actualizado para3.1.0 - He limpiado mi solución e incluso he nukeado mi
objcarpeta para asegurarme de que no haya referencias persistentes. - Este error se genera a partir de la
3.1.100versió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 elpubxmlperfil que Visual Studio se basa en que me espaciados en. ¡Uy! Cambiar eso paranetcoreapp3.1que coincida con elcsprojobjetivo 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.jsonarchivo, que se basa<TargetFramework>en elcsjprojarchivo.Editor de texto
Para realizar esta modificación a través de un editor de texto,
~/Properties/PublishProfilescarpeta*.pubxmlque 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
pubxarchivo 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 Failuremensaje 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
pubxmlarchivo 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.AspNetCorebibliotecas 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 archivoscsprojypubx, como sucedió en mi caso.