La apertura del proyecto en Visual Studio falla debido a un error nuget.targets no encontrado

105

Así que descargué Twitterizer de http://www.twitterizer.net/downloads/

Intento abrirlo en Visual Studio y obtengo todos estos errores nuget:

The imported project "C:\Twitterizer\.nuget\nuget.targets" was not found. 
Confirm that the path in the <Import> declaration is correct, and that the file 
exists on disk.

Que esta pasando. ¿Cómo me enfrento a esto?

Barka
fuente
5
Solo una nota en caso de que alguien más se encuentre con esto. Nuget 2.7 introdujo un nuevo tipo de restauración de paquetes. Si intenta agregar un proyecto que usaba el estilo antiguo a una solución que usa el nuevo estilo, obtendrá este mismo error. La forma de solucionarlo es migrar el proyecto al nuevo estilo: docs.nuget.org/docs/workflows/…
Slapout

Respuestas:

171
  1. Instale Nuget.
  2. Haga clic con el botón derecho en la solución y seleccione "Habilitar restauración del paquete NuGet". En Visual Studio 2013 y versiones posteriores, seleccione "Restaurar paquetes NuGet" en su lugar.
  3. Haga clic en Aceptar en la advertencia.
  4. Cierre y vuelva a abrir la solución.

Ahora debería ser perfecto.

Frank Hagenson
fuente
2
Gracias por esto, sería bueno que dieran un mensaje de error más útil en VS para eso.
rossisdead
2
Sigo recibiendo este error a pesar de que ya no se aplica a nuget 2.7
thepaulpage
Debe hacer la solución que @Slapout menciona (comente sobre la pregunta original)
JasonS
Todavía no funciona aquí, dice que no hay más dependencias para restaurar. Ya eliminé la carpeta del paquete y la
restauré
23

Una alternativa es editar el archivo .csproj con un editor de texto y eliminar o comentar el segmento.

MeanGreen
fuente
4
Para ampliar este caso, si mueve un proyecto de una solución con un archivo .nuget \ nuget.targets explícito a uno nuevo, verá este problema (incluso después de restaurar los paquetes de NuGet). En este caso, cree el nuget .targets o editar el archivo del proyecto manualmente.
ThisGuy
También apliqué esta solución ya que mi proyecto no usó paquetes de NuGet y VS parece haber generado automáticamente estas cosas. Gracias al cielo por el control de versiones que hizo posible eliminar las líneas agregadas de .csproj.
Ivan G
¿Qué segmento se debe eliminar?
Zapnologica
18

Este error normalmente ocurre cuando intentas abrir un .csprojarchivo de solución directamente, no a través del archivo de solución, y las .csprojimportaciones de los objetivos de Nuget de esta manera:

<Import Project="$(SolutionDir)\.nuget\NuGet.targets" />

Para resolverlo, puede abrir el .slny no .csprojdirectamente ... o eliminar elimport línea de arriba.

Tenga en cuenta que el error mencionado solo ocurrirá cuando esté utilizando la solution wiserestauración de paquetes, que ya ni siquiera se recomienda.

André Pena
fuente
2
Este es el problema que tuve.
sparkyShorts
1
eliminación de "la línea de importación anterior". hizo el truco para mí. ¡¡Gracias!!
Bart
5

Me encontré con el mismo problema, pero en mi caso el problema fue un espacio en el nombre de la carpeta:

Nuget me decía que no podía encontrar "C: \ git \ My Path" pero pude navegar a "C: \ git \ My% 20Path". Eliminar el espacio en el nombre de la carpeta "solucionó" el problema.

Joe Zack
fuente
Este era mi problema exactamente, ¡muchas gracias!
D.Nielsen
2

Sé que llego tarde a la fiesta, pero aquí hay un tutorial realmente bueno sobre cómo solucionar este problema. Usé esto para arreglar mi proyecto.

Cierre Visual Studio. Si la solución que está intentando migrar está abierta en Visual Studio, es posible que se pierdan los cambios. Visual Studio puede sobrescribir / ignorar sus cambios en algunos casos y la extensión NuGet también intentará volver a habilitar Package Restore cuando vea que faltan algunos proyectos en la solución.

Si está utilizando TFS Elimine los archivos NuGet.exe y NuGet.targets de la carpeta .nuget de la solución. Asegúrese de que los propios archivos también se eliminen del espacio de trabajo de la solución. Conserve el archivo NuGet.Config para continuar sin agregar paquetes al control de código fuente. Edite cada archivo de proyecto (por ejemplo, .csproj, .vbproj) en la solución y elimine cualquier referencia al archivo NuGet.targets. Abra el (los) archivo (s) del proyecto en el editor de su elección y elimine la siguiente configuración:

cierto ... ...

<PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download

ellos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105 . El archivo que falta es {0}. Si no está utilizando TFS Elimine la carpeta .nuget de su solución. Asegúrese de que la carpeta en sí también se elimine del espacio de trabajo de la solución. Edite cada archivo de proyecto (por ejemplo, .csproj, .vbproj) en la solución y elimine cualquier referencia al archivo NuGet.targets. Abra el (los) archivo (s) del proyecto en el editor de su elección y elimine la siguiente configuración:

cierto ... ...

<PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download

ellos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105 . El archivo que falta es {0}. Script de migración Muchos usuarios han solicitado una herramienta de migración para deshabilitar la restauración de paquetes basada en MSBuild y convertirlos en Restauración automática de paquetes. El equipo de NuGet ha decidido no proporcionar una herramienta compatible para esto debido a la alta probabilidad de casos extremos que no se manejarían. Sin embargo, Owen Johnson ha creado un script de PowerShell que puede funcionar en muchos casos. Está disponible en GitHub y puede usarse bajo su propio riesgo. En otras palabras, asegúrese de comprometerse con el control de código fuente antes de ejecutarlo, en caso de que no funcione en su escenario.

Corrección de Nuget.target

JEuvin
fuente
1

Cuando obtengo el nuget.targets not founderror, utilizo el administrador de paquetes para uninstall-packageuno de los paquetes del proyecto y luego lo reinstalo usando install-package. Entonces parece que regenera el archivo nugets.target.

Miqueas
fuente
1

La solución más fácil cuando recibe este error para restaurar lo que falta NuGet.targetsen Visual Studio Solution Explorer es:

  1. Haga clic derecho en el archivo de la solución
  2. Desde el menú contextual, haga clic en la opción " Habilitar restauración de paquetes Nuget ..."

esto descargará los archivos que faltan en la .nugetcarpeta " " :)

Lo anterior asume que ya tiene Nuget instalado; de lo contrario, siga la respuesta aceptada anterior.

ACTUALIZACIÓN: tenga en cuenta que para las versiones de Visual Studio posteriores a 2013, la opción se llama " Restaurar paquetes NuGet "

Emil
fuente
1
No tengo la opción habilitar la restauración del paquete nuget. Solo tengo restore nuget packages.
Zapnologica
Se actualizó la respuesta: este es el nuevo nombre de la opción de menú después de VS2013
Emil