No se encontró el archivo de activos project.assets.json. Ejecute una restauración del paquete NuGet


261

Estoy tratando de usar nopCommerce (que está escrito en .NET Core) pero cuando quiero ejecutar el proyecto me enfrento a 52 errores que me dicen Ejecutar una restauración de paquete nuget

Archivo de activos ~ \ obj \ project. assets.json ' no encontrado. Ejecute una restauración del paquete NuGet para generar este archivo. Nop.Web.MVC.Testsote

cuando uso el botón derecho sobre la solución y selecciono Restaurar paquetes Nuget, aparece este mensaje:

Todos los paquetes ya están instalados y no hay nada que restaurar.

pero esos 52 errores todavía están allí y en Herramientas -> Administrador de paquetes NuGet -> Administrar paquetes NuGet para la solución no hay nada instalado en la solución, también actualicé recientemente mi VS2017 a 15.5.4


¿Has dado tu consentimiento para que NuGet se restaure? Vaya a herramientas, opciones, busque NuGet y marque la opción "Permitir NuGet ...".
imps

Si alguien está en una Mac, tuvimos este problema y lo solucionamos eliminando espacios en la ruta del repositorio (que se creó durante la extracción de git): My% 20Project se convierte en MyProject.
David Hague

Respuestas:


458

Para corregir este error desde Herramientas> Administrador de paquetes NuGet> Consola del Administrador de paquetes simplemente ejecute:

dotnet restore

El error se produce porque el dotnet cli no crea todos los archivos necesarios inicialmente. Hacer restauración dotnet agrega los archivos necesarios.


21
Esta fue también la solución para el servidor de compilación. Se agregó un paso en la línea de comandos para ejecutar "restauración dotnet" después de la restauración normal de NuGet.
Marcar el

24
También puede hacerlo desde MSBuild: msbuild MySolution.sln / t: Restore
Der_Meister

3
La solución de @ Der_Meister para agregar la opción / t: Restaurar funcionó para mí, sin embargo, tuve que compilar la solución dos veces (dos pasos de compilación separados). Primero con la opción / t: Restaurar y luego nuevamente sin ella.
Michael

16
@Michael, intente msbuild MySolution.sln / t: Restore; Build
Der_Meister el

8
Si tiene más de un archivo de solución, debe hacerlodotnet restore solutionfilename.sln
ECH

97

En mi caso, el error fue el repositorio GIT. Tenía espacios en el nombre, por lo que mi proyecto no pudo restaurar

Si este es su problema, simplemente cambie el nombre del repositorio GIT cuando clone

git clone http://Your%20Project%20With%20Spaces newprojectname

66
Pensé para mí mismo que esto no podría ser. Después de intentar durante otra hora otras soluciones propuestas, finalmente lo intenté por desesperación y resolvió mi problema. ¡Maldita sea hombre!
Stark

2
Esto solucionó el problema que estaba teniendo, ¡muchas gracias!
Sharbel

3
Esta respuesta debe estar al principio de la publicación, no al final. Resuelto mi problema
CodeWarrior

2
¡Salvaste mi día! Gracias.
mpatel

3
en mi caso, simplemente cambié el nombre de mi carpeta física al eliminar% 20 y reemplazarla con espacio normal y todo funciona bien
hosam hemaily

42

En caso de que 'dotnet restore' no funcione, los siguientes pasos pueden ayudar:

  1. Visual Studio >> Herramientas >> Opciones >> Nuget Manager >> Fuentes de paquetes
  2. Desmarcó las fuentes de paquetes de terceros.
  3. Reconstruir solución.

3
Recientemente encontré este problema para el Servidor de Identidad Inicio Rápido # 1: Asegurar una API usando Credenciales de Cliente y la solución anterior funcionó para mí.
Tharindu Jayasinghe

¡Gracias! De hecho, eliminé una fuente que ya no era relevante (de otra solución) y en las fuentes nuget.org y MSVS Offline Packages hice clic en el botón Actualizar . Después de esto dotnet restorefuncionó.
CPHPython

Gracias, eso fue todo!
tdracz

33

Cerrar y volver a abrir Visual Studio resolvió este problema para mí, una vez que me aseguré de que los paquetes NuGet se habían restaurado según otras respuestas publicadas aquí.


No puedo creer que esto también funcionó para mí después de hacer la restauración dotnet y solo después de esto
Gaspa79

Tuve algunos problemas de conectividad por separado en mi LAN de trabajo que fueron inhibidores para NuGet. ¡Reiniciar mi PC resolvió el problema!
Neo

Esto no es realmente una respuesta, porque a veces se utilizan herramientas de la CLI para gety buildy no lo hace VS. abierto Sé por qué funciona con VS, porque VS resuelve automáticamente las dependencias del proyecto.
TS

@TS la pregunta está etiquetada con "Visual Studio 2017", por lo que diría que esta es una respuesta. Sin embargo, plantea un punto interesante: el problema radica en que VS resuelve las dependencias. Si tiene más información sobre lo que está sucediendo, estoy seguro de que sería una lectura interesante:)
OutstandingBill

+1. ¡Me atrapaste! Con VS, bueno. Su versión 15.5 tenía errores. Creo que 15.5 / 15.6 tenía muchos problemas para la resolución de referencia. Ahora, aquí está la respuesta stackoverflow.com/a/58548856/1704458
TS

20

Para aquellos con el mismo problema que yo en el entorno Azure DevOps / VSTS que encuentran un mensaje similar: C:\Program Files\dotnet\sdk\2.2.104\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(208,5): Error NETSDK1004: Assets file '...\obj\project.assets.json' not found. Run a NuGet package restore to generate this file

Agregue /t:Restorea sus argumentos de MSBuild en Build Solution.


9

Para mí cuando lo hice, el error de restauración de dotnet todavía estaba ocurriendo.

fui a

1 Herramienta -> NuGet Package Maneger -> Configuración del Administrador de paquetes -> haga clic en "Borrar en Nuget Catche (s)"

2 restauración dotnet

Problemas resueltos.


Voy a intentar esto la próxima vez que suceda. Podría ser un mejor enfoque que el mío (cerrar y volver a abrir VS), que generalmente me lleva mucho tiempo .
OutstandingBill

6

En Visual Studio 2017, siga los siguientes pasos:

1) seleccione Herramienta => Opciones => Administrador de paquetes NuGet => Fuentes de paquetes y luego desmarque Opción de paquetes fuera de línea de Microsoft Visual Studio . ingrese la descripción de la imagen aquí

2) ahora abra Tool => NuGet Package Maneger => Package Manager Console. 3) ejecutar comando en PM> restauración dotnet.

Espero que funcione ...



5

Seleccione Herramientas > NuGet Package Manager > Consola de Package Manager

Y luego ejecutar:

dotnet restore <project or solution name>

3

un poco tarde a la respuesta, pero parece que esto agregará valor. Mirando el error, parece ocurrir en la canalización de CI / CD.

Simplemente ejecutando "dotnet build" será suficiente.

construcción dotnet

dotnet build ejecuta la "restauración" de forma predeterminada.


1
También se puede lograr agregando el paso ".NET core" a la canalización (antes de la compilación) y seleccionando el comando "restauración dotnet" del menú desplegable. Estoy hablando específicamente sobre la tubería VSTS aquí.
Lech Osiński

3

Nada de lo anterior funcionó para mí. Pero simplemente eliminar todas las carpetas 'bin' y 'obj' fue el truco.


Este problema me sucedió cuando trabajé en un Dockerfile. eliminar esas carpetas hizo que la restauración dotnet en el contenedor funcionara correctamente.
Johannes


2

Cuando use VSTS, verifique su archivo global.json. Había ingresado a la versión SDK como "2.2", lo que causó un error de análisis (pero no al compilar localmente). Añadiendo la versión completa, "2.2.104" resolvió el problema.


2

Perdí varias horas por este error en Azure DevOps cuando configuré la tarea 'Visual Studio Build' en una canalización de compilación para compilar un proyecto individual en mi solución, en lugar de la solución completa.

Hacer eso significa que DevOps no construye ninguno (o posiblemente algunos, no estoy seguro de cuál) de los proyectos a los que hace referencia el proyecto al que se ha dirigido para la compilación, y por lo tanto, esos proyectos no tendrán su project.json .asset archivos generados, que luego causa este problema.

La solución para mí fue cambiar de usar la tarea VS Build a la tarea MSBuild. El uso de la tarea MSBuild para un proyecto individual compila correctamente los proyectos a los que hace referencia el proyecto que está creando y elimina este error.


1

Si simplemente restaurar paquetes NuGet no funciona, asegúrese de que en Herramientas -> Opciones -> Administrador de paquetes NuGet -> General en Restauración de paquetes paquetes, esté marcada la casilla "Permitir que NuGet descargue paquetes faltantes".

Luego restaure nuevamente los paquetes NuGet O simplemente RECONSTRUYA después de eliminar las carpetas obj y bin.


1

Si la sugerencia de @ mostafa-bouzari no ayuda, revise cuidadosamente en las ventanas 'Lista de errores' o 'Salida' para ver por qué NuGet no puede restaurar, por ejemplo, debido a un problema de red si está detrás del proxy.


En mi caso, Nuget Restore no pudo conectarse a nuestro repositorio privado NuGet, porque no estaba conectado a la VPN de la compañía. Verificación de los registros de la consola del Administrador de paquetes ayudó.
Alexander Puchkov

1

Este problema ocurre cuando su herramienta de compilación no está configurada para hacer restoreen proyectos configurados para usar PackageReferencevspackages.config y afecta principalmente a proyectos de nuevo estilo Net Core y Netstandard.

Cuando abre Visual Studio y compila, lo resuelve por usted. Pero si usa la automatización, las herramientas de CLI, verá este problema.

Aquí se ofrecen muchas soluciones. Pero todo lo que necesitas recordar, debes forzar restore. En algunos casos, utiliza dotnet restoreantes de la compilación. Si compila usando MsBuild, simplemente agregue el /t:Restoreinterruptor a su comando.

En pocas palabras, debe ver por qué no se puede activar la restauración. Fuente de nuget incorrecta o acción de restauración faltante, o nuget.exe desactualizado, o todo lo anterior.


1

Muy rara experiencia que he encontrado!

Había clonado con GIT bash y GIT cmd-Line anteriormente, encontré los problemas anteriores.

Más tarde, cloné con Tortoise-GIT y todo funcionó como se esperaba.

Puede ser una respuesta loca, ¡pero intentarlo una vez puede ahorrarle tiempo!


1

Visto esto después de agregar un proyecto WinForms Core 3.1 (de plantillas de proyecto) en VS-2019 vs 16.4.0 e intentar ejecutarlo de fábrica. Limpiar o reconstruir toda la solución no funcionó.

Acabo de volver a cargar mi solución ... que es File / Close Solution y luego volver a abrirla y reconstruirla resolvió el problema.


1

Si este error ocurre como parte de una compilación en Azure DevOps (TFS) y su compilación ya tiene una tarea de restauración de NuGet , este error puede indicar que la tarea de restauración de NuGet no pudo restaurar todos los paquetes, especialmente si usa un origen de paquete personalizado ( como un servidor NuGet interno). Agregar /t:Restore;Builda los argumentos de MSBuild parece ser una forma de resolver el error, pero esto le pide a MSBuild que realice una operación de restauración NuGet adicional. Creo que esto tiene éxito porque MSBuild usa el origen del paquete personalizado configurado en Visual Studio. Una solución preferible es arreglar la tarea de restauración de NuGet.

Para configurar un origen de paquete personalizado para la tarea de restauración de NuGet:

  1. Cree un NuGet.configarchivo que enumere todas las fuentes de paquetes (paquetes sin conexión de Microsoft Visual Studio, nuget.org y su fuente de paquete personalizada) y agréguelo al control de fuente.
  2. En la tarea de restauración de Nuget en Feeds para usar: seleccione la opción Feeds en mi NuGet.config .
  3. Proporcionar el camino a NuGet.config.
  4. Elimine la /t:Restore;Buildopción de la tarea MSBuild.

Información adicional está disponible aquí .


0

Recibí el error cuando creé un lambda en dot net core en VS2017. Lo que funcionó para mí fue descargar el proyecto y volver a cargarlo.


0

ejecute su VS como administrador después de eso en la consola del administrador de paquetes ejecute dotnet restore.


0

Otro, si por casualidad está usando Dropbox, Conflictedbusque los nombres de los archivos, realice una búsqueda en su repositorio y elimine todos esos archivos en conflicto.

Esto puede haber sucedido si ha movido los archivos.


0

Causa de este defecto: debe eliminar el Nuget inyectado en el explorador de archivos. Solución: una vez que elimine ese Nuget en su sistema, elimínelo de la siguiente ubicación. seleccione Herramienta => Opciones => Administrador de paquetes NuGet => Fuentes de paquetes y luego desmarque la opción Paquetes de Microsoft Visual Studio sin conexión



0

En mi caso tuve un problema con las fuentes de paquetes disponibles. Había movido la carpeta del repositorio local de Nuget a una nueva ruta, pero no la actualicé en las fuentes de paquetes disponibles de Nuget. Cuando haya corregido el problema de la ruta, actualícelo en los orígenes de paquetes disponibles y después de eso todo (nuget restor, etc.) funcionaba bien.


0

Para mí resultó ser un problema de credenciales de fuente nuget. Recientemente había cambiado mi contraseña para acceder a un servidor nexus y Visual Studio todavía estaba usando la contraseña anterior al intentar acceder a un nuget en ese servidor a través del administrador de credenciales de Windows. Para solucionarlo, tuve que eliminar la entrada de esas credenciales obsoletas en el administrador de credenciales y después, cuando hice una restauración nuget, me solicitó una contraseña que me permitía ingresar la nueva contraseña, que se guardó nuevamente en el administrador de credenciales. Puede acceder al administrador de credenciales desde la línea cmd usando CmdKey.exe.


0

Prueba esto (funcionó para mí):

  • Ejecute VS como administrador
  • Actualización manual de NuGet a la versión más reciente
  • Elimine todos los archivos bin y obj en el proyecto.
  • Reiniciar VS
  • Recompilar

0

Puede ir a: Herramientas> Administrador de paquetes NuGet> Consola del Administrador de paquetes

Y luego ejecutar:

restauración dotnet

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.