visual studio manager descargar cli powershell command-line nuget

powershell - studio - nuget version



NuGet: actualice un paquete a una versión específica en todos los proyectos a través de PowerShell o CMD (3)

Tenemos un escenario, donde diferentes equipos trabajan en diferentes partes de un producto más grande. De vez en cuando, todos los Proyectos de Visual Studio de todas las Soluciones deben actualizar algunos de los paquetes de NuGet a los que se hace referencia. Como resultado de esa actualización, todos los proyectos en el árbol de origen completo deben hacer referencia a las mismas versiones de los paquetes.

¿Hay alguna manera de actualizar un paquete NuGet específico a una versión específica en todos los proyectos usando algún enfoque automático como los scripts de PowerShell ?

Edición: ¿Hay alguna manera de cargar de alguna manera las partes necesarias de Visual Studio y NuGet para actualizar también correctamente las referencias de ensamblaje ?

Ejemplo:

NuGetScript Update Solution.sln PackageName -version NewVersion

o

NuGetScript Update PathToProjects PackageName -version NewVersion

Hay demasiados componentes para cargarlos todos en Visual Studio y actualizarlos manualmente a través de la interfaz de usuario del administrador de paquetes.


Puede crear una secuencia de comandos de PowerShell para buscar en todos los archivos de proyecto o paquetes.config en su solución y luego llamar al comando nuget update para actualizar los paquetes.

Sin embargo, hay una limitación cuando los paquetes de actualización fuera de Visual Studio, le recomendaría que lo haga desde Visual Studio:

El comando de actualización descargará y extraerá todos los paquetes nuevos a las carpetas de paquetes. Las referencias de ensamblaje se actualizarán en el archivo del proyecto, sin embargo, esto está limitado a solo las referencias existentes. Si un paquete nuevo tiene un conjunto agregado, no se agregará como parte del comando de actualización. Las nuevas dependencias de paquetes tampoco tendrán sus referencias de ensamblado agregadas. Para realizar una actualización completa utiliza Visual Studio.


Utilice la siguiente línea de comandos en la ventana de la Consola del Administrador de Paquetes para actualizar un paquete específico en una solución.

Get-Project -Todos | Update-Package PackageName -Version newVersion


El siguiente script fue encontrado en otro lugar. Lo he probado con mis proyectos. No tengo el link original

El siguiente script hace:

  1. ejecute el comando de restore en cualquier solución que se encuentre dentro de una carpeta
  2. Encuentra todos los archivos packages.config que contienen el nombre de ID del paquete proporcionado
  3. ejecuta el comando update usando el archivo packages.config y el nombre del paquete como parámetros

Esto supone que nuget.exe está presente en la carpeta donde lo ejecutará desde

param( [Parameter(Mandatory=$true)] [string]$packageId ) Get-ChildItem *.sln -recurse | %{.//nuget.exe restore $_.fullname} Get-ChildItem packages.config -Recurse ` | Where-Object {$_ | Select-String -Pattern $packageId} ` | %{.//nuget.exe update -Id $packageId $_.FullName}