2011-08-31 34 views
41

He instalado un paquete NuGet (que hemos desarrollado en el proyecto) en un proyecto VS. Cuando corro Update-Package en el proyecto Nuget me sale:Nuget Update-Package no reconoce el paquete instalado -> Falló la actualización

Update-Package : 'Project name' was not installed in any project. Update failed. 
At line:1 char:15 
+ Update-Package <<<< Project name 
    + CategoryInfo   : NotSpecified: (:) [Update-Package], InvalidOperationException 
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.UpdatePackageCommand 

He comprobado en el archivo package.config para asegurarse de que el paquete se define NuGet, y lo es. ¿Alguna pista?

+0

¿tiene múltiples soluciones en la misma carpeta de compartir una carpeta paquetes? ¿Está comprometiendo paquetes para el control de origen? – davidfowl

+0

No y no. No compartimos la carpeta de paquetes entre las soluciones y no estamos comprometiendo el paquete en cuestión con el control de origen. Sin embargo, ya no es un problema. Acabo de eliminar todas las carpetas antiguas para los paquetes en cuestión y comenzó a funcionar de nuevo. –

+0

Creo que podría haber tenido una versión diferente instalada en la carpeta de paquetes (ya que no los estoy registrando) en comparación con la especificada en package.config, ¿quizás eso tiene algo que decir? –

Respuesta

49

Estoy trabajando en el mismo proyecto que Tomas y he intentado averiguar cuándo ocurre este problema y por qué. Parece que esto sucede cuando tenemos una o más versiones anteriores de un paquete en la carpeta de paquetes y tratamos de emitir el comando 'update-package'.

Antes de emitir el comando de nuestra carpeta de paquetes y la configuración es la siguiente:

Paquetes carpeta:

Common.WebApi.1.0.0.109 
Common.WebApi.1.0.0.110 

Paquetes de configuración:

<packages> 
    <package id="Common.WebApi" version="1.0.0.110" /> 
    <package id="System.Json" version="4.0.20126.16343" /> 
    <package id="System.Net.Http" version="2.0.20126.16343" /> 
</packages> 

Ahora, al emitir la 'actualización paquete Común .WebApi 'obtenemos el error:
Update-Package:' OPF.Common.WebApi 'no se instaló en ningún proyecto. Actualización fallida

Para solucionarlo Elimino el paquete anterior 'Common.WebApi.1.0.0.109' de la carpeta de paquetes y vuelvo a ejecutar el comando que luego funciona.

La pregunta obvia es: ¿Por qué tengo un paquete viejo en mi carpeta de paquetes? Esto nos sucede porque no comprometemos nuestros propios paquetes con el control de origen. En su lugar, se utiliza el método que se describe aquí: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

El 'viejo problema paquete' se produce en esta situación:
1. El desarrollador A actualiza un paquete y compromete a la package.config de control de código fuente
2.El desarrollador B obtiene la última versión del control de fuente y recibe el paquete.config actualizado
3. El desarrollador B crea el proyecto y el nuevo paquete se crea en su carpeta de paquetes
4. Nuget no elimina el paquete anterior del desarrollador B de sus paquetes carpeta para que el Desarrollador B tenga tanto el paquete anterior como el nuevo en su carpeta de paquetes, pero solo una referencia en el paquete.config a la nueva versión.

Para mí, parece que Nuget no espera que haya más de una versión de un paquete en la carpeta de paquetes y se confunde cuando intenta actualizar un paquete que tiene múltiples versiones [en la carpeta de paquetes] incluso aunque solo hace referencia a un solo paquete del paquete.config.

+6

Para resumir: asegúrese de que no haya versiones no utilizadas de su paquete en la carpeta 'packages'. Eliminar esas correcciones es el problema. – jgauffin

5

Tuve un problema muy similar recientemente, resultó ser que faltaban los paquetes/repositories.config (porque no confirmamos la carpeta de paquetes). Hice algo en VS (posiblemente agregando un nuevo paquete a un proyecto) que causó que VS regenerara el archivo repositories.config listando todos los paquetes de todos los proyectos. Después de eso, la actualización funcionó bien.

+0

Suena como mi escenario. –

+0

caso similar al suyo: he descargado 4 veces el archivo vsix y los nombres se han agregado (1), (2) y (3) una vez que eliminé y dejé uno solo llamado NuGet.Tools.vsix, luego funcionó. (Creo que cuando se intenta actualizar pepita y se produce el error, entonces no puede instalarlo desde pepita más. Al menos esa fue mi experiencia. – ramnz

+0

mismo. Gracias a Dios por control de origen. – Casey

2

Así es como me las arreglé para obtener la última versión del gestor de paquetes:

  1. inicio VS2010 en el modo de administrador (Ejecutar como administrador)
  2. Herramientas> Añadir en el Administrador> Desinstalar NuGet
  3. Reinicie Visual estudio
  4. Instalar NuGet

Voila!

Espero que esto ayude.

3

Tuve el mismo problema. No estamos revisando la carpeta de paquetes (la tarea de compilación nuget descarga todos los paquetes).

La única forma de resolver el problema fue eliminar la carpeta de paquetes y luego reconstruir el proyecto.

0

Otra forma en que esto puede ocurrir:

  1. NO tienen paquetes de ser restaurado (Usando ReSharper 2.016,2 Construir por ejemplo)
  2. intenta actualizar, mientras que la versión del paquete en cuestión no existe en/paquetes/

Para fijar, ejecutar restaurar paquetes de alguna manera

Cuestiones relacionadas