visual valida that studio solucion restaurar references proyecto por paquetes ningun missing enable configuracion computer are admitido nuget

valida - La restauración del paquete NuGet no funciona



restore nuget packages visual studio 2017 console (18)

Revisé un proyecto en una computadora, revisé en otra y descubrí que faltan los binarios instalados por NuGet. También pude verificarlos en el control de fuente, pero parece que hay una mejor solución:

http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

Seguí esas instrucciones, ahora tengo una carpeta .nuget donde debería estar, tengo las siguientes entradas en mi archivo .csproj:

<RestorePackages>true</RestorePackages> <Import Project="$(SolutionDir)/.nuget/nuget.targets" />

y sin embargo, cuando reconstruyo mi solución, los paquetes faltantes no se restauran.

¿Qué me estoy perdiendo? ¿Cómo puedo diagnosticar este problema?


¿Habilita el modo de restauración de paquetes en el proyecto que tiene los paquetes / binarios faltantes? Existe un problema conocido que requiere que los paquetes se instalen correctamente cuando se habilita el modo de restauración:

http://nuget.codeplex.com/workitem/1879


A veces sucede algo extraño y el uso de Visual Studio para restaurar automáticamente no funciona. En ese caso, puede usar NuGet Package Manager Console. Se abre en Visual Studio desde Herramientas -> Administrador de paquetes NuGet -> Consola de Administrador de paquetes . Los comandos dentro de la consola son simples. Y para obtener ayuda contextual al escribir un comando, simplemente presione el botón y le dará todas las opciones que comienzan con las letras que está escribiendo. Entonces, si un paquete no está instalado, por ejemplo log4net, escriba el siguiente comando:

Install-Package log4net

Puede hacer mucho más, como especificar la versión para instalar, actualizar un paquete, desinstalar un paquete, etc.

Tuve que usar la consola para ayudarme cuando Visual Studio estaba actuando como un bicho raro.


En mi caso, un intento fallido de restaurar Nuget había corrompido uno de los archivos packages.config en la solución. No descubrí esto antes de verificar mi árbol de trabajo de git. Después de revertir los cambios en el archivo, Nuget restore estaba trabajando nuevamente.


Hay un atajo para hacer que Nuget restore funcione: 1. Asegúrese de que la conexión a Internet o las URL de Nuget sean las adecuadas en el menú de opciones de VS Tools 2. Observe la carpeta .nuget o nuget en la solución, de lo contrario, copie cualquiera para obtener nuget.exe

  1. ELIMINAR carpetas de paquetes, si existe

  2. Abra la consola del administrador de paquetes ejecute este comando

    • pegar la ruta completa de nuget.exe RESTAURAR la ruta completa del archivo .sln!
  3. use el comando Install-pacakge, si la compilación no pudo obtener ninguna referencia faltante. Hope It Helps (HIH)

Hice que los paquetes NuGet se rompieran después de hacer una restauración del sistema en mi sistema, haciendo una copia de respaldo de aproximadamente dos días. (Mientras tanto, los paquetes NuGet se habían instalado). Para solucionarlo, tuve que ir a la carpeta .nuget / packages en mi perfil de usuario, encontrar los paquetes y eliminarlos. Solo entonces Visual Studio extraerá los paquetes y los agregará como referencias.


La mejor solución que encontré para crear un nuevo proyecto desde cero, luego importo todos los archivos fuente con el código. Mi proyecto no era tan complicado, así que no tuve ningún problema desde allí.


Me he encontrado con este problema en dos escenarios.

Primero, cuando intento construir mi solución desde la línea de comando usando msbuild.exe. En segundo lugar, cuando intento construir el sln y los proyectos que lo contienen en mi servidor de compilación usando TFS y CI.

Recibo errores que dicen que faltan referencias. Al inspeccionar mi directorio de compilación local y el servidor de TFS, veo que la carpeta / packages no se crea y los paquetes nuget no se copian. Siguiendo las instrucciones enumeradas en la respuesta de Alexandre, http://nuget.codeplex.com/workitem/1879 tampoco funcionó para mí.

He habilitado los paquetes de restauración a través de VS2010 y he visto que las construcciones solo funcionan desde VS2010. Nuevamente, el uso de msbuild falla. Mi solución provisional probablemente sea totalmente inválida, pero para mi entorno esto hizo que todo funcionara desde una línea de comandos construida localmente, así como desde una construcción de CI en TFS.

Entré en. / Nuget y cambié esta línea en el archivo .nuget / NuGet.targets:

de:

<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" -o "$(PackagesDir)"</RestoreCommand>

a: (aviso, sin las comillas alrededor de las variables)

<RestoreCommand>$(NuGetCommand) install $(PackagesConfig) -source $(PackageSources) -o $(PackagesDir)</RestoreCommand>

Entiendo que si mis directorios tienen espacios en ellos, esto no funcionará, pero no tengo espacios en mis directorios, por lo que esta solución permitió que mis compilaciones se completaran satisfactoriamente ... por el momento.

Diré que activar el registro de nivel de diagnóstico en su compilación ayudará a mostrar qué comandos está ejecutando msbuild. Esto es lo que me llevó a piratear el archivo de objetivos temporalmente.


Ninguna de las otras soluciones funcionó en mi situación:

Las dependencias AspNetCore se habían instalado / desinstalado y se estaban almacenando en caché. ''AspNetCore.All'' se rehusaría a actualizar / reinstalar / eliminar correctamente. E independientemente de lo que hice, utilizaría las dependencias en caché (que no era compatible), porque eran una versión más alta.

  1. Respalda todo Tenga en cuenta la lista de dependencias que deberá volver a instalar, Salga de VisualStudio
  2. Abra todos los archivos .proj en un editor de texto y elimine todo PackageReference
  3. En cada proyecto, elimine las carpetas bin , obj
  4. Elimine las carpetas de "paquetes" que encuentre en la solución.
  5. Abra la solución, vaya a Tools > Nuget Package Manager > Package Manager Settings y Clear all Nuget caches . Compruebe la consola porque puede fallar al eliminar algunos elementos: copie la ruta de la carpeta y salga de Visual Studio.
  6. Elimine cualquier cosa de esa carpeta Vuelva a abrir la solución y comience a instalar paquetes nuget nuevamente desde cero.

Si eso aún no funciona, repita, pero también busque en su unidad en el explorador de Windows para nuget y elimine todo lo que tenga un aspecto cachey.


Para otros que tropiecen con esta publicación, lean esto.

NuGet 2.7+ nos presentó la restauración automática de paquetes . Esto se considera un enfoque mucho mejor para la mayoría de las aplicaciones, ya que no altera el proceso de MSBuild. Menos dolores de cabeza

Algunos enlaces para que comiences:


Si algo más no funciona, intente:

  1. Cerrar Proyecto.
  2. Borre la carpeta de paquetes en su carpeta de soluciones.
  3. Abra Project nuevamente y restaure Nugget Packages nuevamente.

Funcionó para mí y es fácil de probar.


Si el error al que se enfrenta es "incapaz de conectarse al servidor remoto" como lo fue el mío, entonces le beneficiaría tener este cheque además de las verificaciones proporcionadas en los comentarios anteriores.

Vi que había 2 orígenes de paquetes de NUGET desde los cuales se podían descargar los paquetes (dentro de Herramientas-> Administrador de paquetes de Nuget-> Configuración del Administrador de paquetes). Una de las fuentes del paquete no funcionaba y Nuget intentaba descargar solo desde esa fuente.

Las cosas cayeron en su lugar una vez que cambié la fuente del paquete para descargar desde: https://www.nuget.org/api/v2/ EXPLICTLY en la configuración


Si ninguna de las otras respuestas funciona para usted, intente lo siguiente, que fue lo único que funcionó para mí:

Encuentre su archivo .csproj y .csproj en un editor de texto.

Busque la etiqueta <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> en su archivo .csproj y elimine todo el bloque.

Reinstalar todos los paquetes en la solución:

Update-Package -reinstall

Después de esto, sus paquetes nuget deben ser restaurados, creo que esto podría ser un caso marginal que solo ocurre cuando mueve su proyecto a una ubicación diferente.


Solo para otros que podrían encontrarse con este problema, pude resolver el problema cerrando Visual Studio y volviendo a abrir el proyecto. Cuando se cargó el proyecto, los paquetes se restauraron durante la fase de inicialización.


Tenga en cuenta que puede forzar la restauración del paquete para ejecutar ejecutando los siguientes comandos en la consola del administrador de paquetes nuget

Update-Package -Reinstall

Fuerza la reinstalación de todo en la solución.

Update-Package -Reinstall -ProjectName myProj

Fuerza la reinstalación de todo en el proyecto myProj.

Nota : Esta es la opción nuclear. Al utilizar este comando, es posible que no obtenga las mismas versiones de los paquetes que ha instalado y que podrían generar problemas. Es menos probable que esto ocurra a nivel de proyecto en comparación con el nivel de solución.

Puede usar la opción de parámetro de línea de comandos -safe para restringir las actualizaciones a las versiones más recientes con el mismo componente de versión Mayor y Menor. Esta opción se agregó más tarde y resuelve algunos de los problemas mencionados en los comentarios.

Update-Package -Reinstall -Safe


Tienes que elegir una de las siguientes maneras:

Reinstalar un paquete por su nombre en todos los proyectos de la solución:

Update-Package –reinstall <packageName>

Reinstalar un paquete por su nombre e ignorar sus dependencias en todos los proyectos de la solución:

Update-Package –reinstall <packageName> -ignoreDependencies

Reinstalar un paquete por su nombre en un proyecto:

Update-Package –reinstall <packageName> <projectName>

Reinstalar todos los paquetes en un proyecto específico:

Update-Package -reinstall -ProjectName <projectName>

Reinstalar todos los paquetes en una solución:

Update-Package -reinstall


VS 2017

Herramientas> Administrador de paquetes NuGet> Configuración del Administrador de paquetes> General Haga clic en "Borrar todos los cachés NuGet"


vs2015 no permitir problema de restauración Nuget. Mi solución:

  1. agregar carpeta .nuget, agregar archivo NuGet.Config y NuGet.targets en Directorio .nuget

  2. cada archivo de proyecto agrega: compilación

<RestorePackages>true</RestorePackages> <Import Project="$(SolutionDir)/.nuget/NuGet.targets" Condition="Exists(''$(SolutionDir)/.nuget/NuGet.targets'')" /> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> </PropertyGroup> <Error Condition="!Exists(''$(SolutionDir)/.nuget/NuGet.targets'')" Text="$([System.String]::Format(''$(ErrorText)'', ''$(SolutionDir)/.nuget/NuGet.targets''))" /> </Target>


La restauración automática de paquetes fallará por cualquiera de los siguientes motivos:

  1. No eliminó los archivos NuGet.exe y NuGet.targets de la carpeta .nuget de la solución (que se puede encontrar en la carpeta raíz de la solución)
  2. No habilitó la restauración automática de paquetes desde Herramientas >> Opciones >> Administrador de paquetes Nuget >> Configuración general.
  3. Olvidó eliminar manualmente las referencias en todos sus proyectos en el archivo Nuget.targets
  4. Debe reiniciar Visual Studio (asegúrese de que el proceso se elimine de su administrador de tareas antes de volver a iniciarlo).

El siguiente artículo describe con más detalle cómo abordar los puntos 1-3: https://docs.nuget.org/consume/package-restore/migrating-to-automatic-package-restore