Quiero instalar una versión anterior de un paquete (Newtonsoft.Json
). Pero NuGet retrocede.
PM> Install-Package Newtonsoft.Json -Version 4.0.5
Successfully installed 'Newtonsoft.Json 4.0.5'.
Install failed. Rolling back...
Install-Package : Already referencing a newer version of 'Newtonsoft.Json'.
Cualquier ayuda será muy apreciada.
prueba lo siguiente:
Uninstall-Package Newtonsoft.Json -Force
seguido de:
Install-Package Newtonsoft.Json -Version <press tab key for autocomplete>
A partir de Nuget 2.8 existe una función para descender un paquete.
Notas de la versión de Nuget 2.8
Ejemplo:
El siguiente comando introducido en la consola del gestor de paquetes degradará el cliente couchbase a la versión 1.3.1.0
Update-Package CouchbaseNetClient -Version 1.3.1.0
Resultado:
Updating 'CouchbaseNetClient' from version '1.3.3' to '1.3.1.0' in project [project name].
Removing 'CouchbaseNetClient 1.3.3' from [project name].
Successfully removed 'CouchbaseNetClient 1.3.3' from [project name].
Algo a tener en cuenta según crimbo abajo:
"Este enfoque no' funciona para la actualización de una versión de pre-lanzamiento a otra versión de pre-lanzamiento - sólo funciona para la actualización a una versión de lanzamiento"
He utilizado bastante la respuesta de Xavier. Quiero añadir que restringir la versión del paquete a un rango especificado es fácil y útil en las últimas versiones de NuGet.
Por ejemplo, si quieres que nunca se actualice Newtonsoft.Json
más allá de la versión 3.x.x
en tu proyecto, cambia el elemento package
correspondiente en tu archivo packages.config
para que se vea así:
<package id="Newtonsoft.Json" version="3.5.8" allowedVersions="[3.0, 4.0)" targetFramework="net40" />
Observe el atributo allowedVersions
. Esto limitará la versión de ese paquete a versiones entre 3.0
(inclusive) y 4.0
(exclusive). Entonces, cuando haga un Update-Package
en toda la solución, no tendrá que preocuparse de que ese paquete en particular se actualice más allá de la versión 3.x.x
.
La documentación de esta funcionalidad está aquí.