Descargue la versión anterior del paquete con NuGet

907

¿Hay alguna manera de descargar una versión anterior de un paquete con NuGet , no la última?

ryudice
fuente

Respuestas:

1117

Abra la consola de Package Manager en Visual Studio: está en Herramientas / NuGet Package Manager / Package Manager Console. Luego ejecute el comando Install-Package:

Install-Package Common.Logging -Version 1.2.0

Vea la referencia del comando para más detalles.

Editar: para enumerar las versiones de un paquete, puede usar el comando Get-Package con el argumento remoto y un filtro:

Get-Package -ListAvailable -Filter Common.Logging -AllVersions

Al presionar tab después de la opción de versión en el Install-Packagecomando, obtienes una lista de las últimas versiones disponibles.

PHeiberg
fuente
54
Para el beneficio de aquellos que han estado usando Nuget por un tiempo pero nunca han hecho nada desde la línea de comandos: Para ejecutar los comandos de PowerShell que menciona PHeiberg, querrá abrir la Consola del Administrador de paquetes en Visual Studio: está en Herramientas | Biblioteca Package Manager | Package Manager Console .
Jonathan Moffatt
20
Este comando también debería estar disponible a través de la interfaz de usuario. Ahora, si un editor tiene una versión beta, solo puede obtener esa última versión, que a veces es inestable.
Bart Verkoeijen
2
@bgever: la mayoría de los editores crean versiones preliminares para paquetes beta que no se consideran "Últimos" en la GUI. Siempre que el editor use el control de versiones correctamente, la última versión siempre debe ser estable. Sin embargo, eso no significa que no tendrá errores ...
Jesse Webb
3
Información de dependencia y examinar qué otras propiedades están disponibles: Get-Package -ListAvailable [-Source X] -Filter Common.Logging -AllVersions | seleccione versión, dependencias (o ' | get-member ' para ver todas las propiedades)
Curtis Yallop
2
Get-Package -ListAvailableno no enumerar todas las versiones disponibles para mí.
Roman Starkov
35

Otra opción es cambiar el número de versión en el packages.configarchivo. Esto hará que NuGet descargue los dlls para esa versión la próxima vez que compile.

Morten Christiansen
fuente
1
Buena ... no pensé en eso. Sin embargo, supongo que NuGet Package Restore debe estar habilitado para la solución.
Leniel Maccaferri
12
Esto no es suficiente para cambiar también la referencia de ensamblaje automáticamente. Sin embargo, lo que funciona (si tiene al menos dos ensamblajes en su solución) es esto: 1. asegúrese de que un ensamblaje haga referencia al paquete, 2. edite la versión correcta en packages.config, 3. administre los paquetes NuGet en la solución, 3a. agregue el paquete a otro proyecto, eliminándolo del proyecto original y confirme esto, 3b. invierta 3a y confirme. El paso 3a agregará la referencia de ensamblaje correcta a otro proyecto y la eliminará del original. El paso 3b agregará la referencia de ensamblaje correcta al proyecto original.
Jeroen Wiert Pluimers
25

En NuGet 3.x (Visual Studio 2015) solo puede seleccionar la versión de la interfaz de usuario

Interfaz de usuario del administrador de paquetes NuGet 3

Yishai Galatzer
fuente
Agradable cuando funciona, pero he visto casos en los que no todas las versiones antiguas se enumeran allí.
UuDdLrLrSs
5

En NuGet 3.0, el Get-Packagecomando está en desuso y se reemplaza con el Find-Packagecomando.

Find-Package Common.Logging -AllVersions

Vea los documentos de referencia del comando NuGet para más detalles.

Este es el mensaje que se muestra si intenta usar Get-Package en Visual Studio 2015.

This Command/Parameter combination has been deprecated and will be removed
in the next release. Please consider using the new command that replaces it: 
'Find-Package [-Id] -AllVersions'

O como dijo @Yishai, puede usar el menú desplegable del número de versión en la pantalla NuGet en Visual Studio.

Walt Ritscher
fuente
3

Como la pregunta original no indica qué interfaz NuGet debe usarse, me gustaría mencionar que NuGet 3.5 agrega soporte para actualizar a una versión específica a través del cliente de línea de comandos (que también funciona para las degradaciones):

NuGet.exe update Common.Logging -Version 1.2.0
CodeFox
fuente
0

Al usar la interfaz de usuario de Nuget Package Manager como se mencionó anteriormente, ayuda a desinstalar primero el paquete nuget. Siempre tengo problemas al volver a una versión del paquete nuget si no desinstalo primero. Algunas referencias no se limpian correctamente. Por lo tanto, sugiero el siguiente flujo de trabajo al instalar un paquete nuget antiguo a través del Administrador de paquetes Nuget:

  1. Seleccionó su servidor / fuente nuget
  2. Encuentre y seleccione el paquete nuget que desea instalar una versión anterior
  3. Desinstalar la versión actual
  4. Haga clic en el menú desplegable de instalación> Seleccionar versión anterior> Haga clic en Instalar

ingrese la descripción de la imagen aquí

Buena suerte :)

Anna Maule
fuente