Tengo un paquete NuGet sin nada excepto dependencias de otros paquetes. Básicamente, considérelo como un "paquete de paquetes". Uno de esos paquetes depende de un software de terceros que también utilizan otras partes de nuestro proyecto.

Mi problema es que quiero desinstalar el paquete de paquetes, y para ello especifico la opción -RemoveDependencies. Sin embargo, aparece un error que dice "No se puede desinstalar <third-party package> porque <another package we use> depende de él.

¿Hay alguna forma de desinstalar dependencias solo si otros proyectos no dependen de ella?

2
jdogg 22 ago. 2016 a las 22:59

2 respuestas

La mejor respuesta

Logré el resultado deseado cambiando el paradigma del "paquete de paquetes". En lugar de etiquetar otros paquetes como dependencias, creé una carpeta tools/ y dentro puse un script de powershell install.ps1 y uninstall.ps1 que se ejecuta en el momento de la instalación o desinstalación. Lea más aquí.

En esos scripts, simplemente emito el comando para instalar o desinstalar los paquetes de mi elección. De forma predeterminada, Uninstall-Package no elimina las dependencias, lo que facilita mucho mi trabajo. No logra mi objetivo inicial de eliminar solo las dependencias que no son necesarias en otras partes del proyecto, solo deja intactas las dependencias de segundo orden. Esto no es un problema para mí porque solo uno de mis paquetes tiene una dependencia de segundo orden.

0
jdogg 23 ago. 2016 a las 02:21

Primero debe desinstalar todos los paquetes NuGet que dependen de él. Entonces puedes eliminar estas dependencias.

Porque si hay otros paquetes que dependen de él, si lo elimina, los paquetes perderán las dependencias que harán que estos paquetes no funcionen más.

-1
Weiwei 23 ago. 2016 a las 01:44