.net - studio - Advertencia de degradación del paquete detectado(dotnet core, vs 2017)
project json visual studio 2017 (11)
Acabo de actualizar todos mis paquetes nuget para mi solución (proyecto dotnet core 1.1).
Ahora recibo las siguientes advertencias y realmente no sé lo que significan.
Actualización: todavía estoy recibiendo las advertencias mencionadas anteriormente. Mis proyectos web advierten sobre el paquete Microsoft.NETCore.App (vea la captura de pantalla a continuación) y mis proyectos lib advierten sobre NETStandard.Library (vea la captura de pantalla más arriba)
Cuando intento actualizar Microsoft.NETCore.App en el administrador de paquetes de NuGet, aparece el siguiente error:
Espero que alguien pueda ayudarme a deshacerme de esas advertencias y configurar todo lo que debe ser, para poder actualizar todos mis paquetes.
¡Gracias por adelantado!
Intenta usar NuGet
Estuve obteniendo:
error NU1605: Detected package downgrade: System.Net.NameResolution from 4.3.0 to 4.0.0. Reference the packagedirectly from the project to select a different version.
Así que hice referencia al directorio del paquete ejecutando (en la carpeta del proyecto):
dotnet add package System.Net.NameResolution
Problema:
Un paquete de dependencia especificó una restricción de versión en una versión más alta de un paquete que la restauración que finalmente se resolvió. Es decir, debido a la regla de "ganancias más cercanas" al resolver paquetes, un paquete más cercano en el gráfico puede haber anulado un paquete distante.
Solución:
Agregue una referencia directa al proyecto para la versión superior del paquete que desea usar.
Eliminar manualmente las dependencias de los paquetes nuget del proyecto y el paquete de instalación para cada uno de ellos solucionó el problema en mi caso.
En mi caso, ninguna de esas propiedades se estableció en mis archivos csproj.
Tuve que decirle a VS que actualice esos paquetes a través de NuGet.
Las advertencias aparecieron para mí después de resolver la advertencia de referencia explícita a la dependencia implícita .NETCore.App después de pasar de 1.0 a 1.1.
ACTUALIZACIÓN 21/09/17
Esto también parece afectar las actualizaciones a 2.0, la resolución es la misma. Actualice esos paquetes manualmente con NuGet. Gracias a IbrarMumtaz por señalar esto!
Esta situación se me ocurrió después de abrir una solución existente, pero en lugar de advertencias, eran errores.
Abrí el archivo YourAwesomeApp.csproj y revisé los errores de "Detección de degradación del paquete" uno a uno y cambié manualmente la versión de esa línea de la versión existente a la versión especificada que se mostraba en el error.
Por ejemplo, si el error dice degradación detectada "SqlServer 1.0.4 -> 1.0.3", entonces encuentre la línea para el paquete SqlServer y edite la versión de 1.0.3 a 1.0.4.
Esos errores deberían desaparecer después de construir el proyecto.
La desventaja de esto es que solo tuve 5 errores esta vez, pero ¿qué pasaría si el proyecto de otra persona contenga 50 errores? Entonces la tarea de esa persona de editar manualmente esas líneas sería muy tediosa y tomaría mucho tiempo.
Hace poco me encontré con este problema y actualizar los paquetes de NuGet fue lo que me funcionó.
Intentaba actualizar Microsoft.AspNetcore.MVC a la Versión 2+. La solución para mí fue actualizar todas las demás dependencias primero a 2+, y finalmente actualizar .MVC.
Pude corregir un error como ese al agregar NoWarn en cproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<NoWarn>$(NoWarn);NU1605</NoWarn>
</PropertyGroup>
...
</Project>
Es posible que desee agregarlo solo temporalmente durante la actualización del paquete múltiple y eliminarlo más tarde.
Pude deshacerme de estas advertencias en mi proyecto al eliminar el elemento <NetStandardImplicitPackageVersion>
del archivo csproj
.
Hay algo de información en este artículo sobre los metapaquetes implícitos, que parece ser la causa raíz de este problema.
Es posible que también necesite actualizar algunas dependencias. Por ejemplo, tuve que actualizar BenchmarkDotNet
de 0.10.3
a 0.10.3
para deshacerme de algunas advertencias como las que está viendo.
Pude resolver el problema descargando una versión anterior del paquete que causaba el problema, que parece deberse a que depende de una versión .NET Standard que no está instalada, esto también debería resolverse actualizando Visual Studio.
Según la respuesta anterior, la solución de trabajo es eliminar la siguiente línea de su archivo csproj.
Proyecto de aplicación web:
<RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion>
Proyecto Lib:
<NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>
Intente eliminar :
<IsPackable>false</IsPackable>
de su archivo de proyecto - esto es lo que funcionó para mí!
Si aún te queda el código de error NU1605
, puedes ignorarlo agregando lo siguiente a tu archivo de proyecto:
<PropertyGroup>
<NoWarn>NU1605</NoWarn>
</PropertyGroup>