Das Öffnen des Projekts in Visual Studio schlägt fehl, da der Fehler nuget.targets nicht gefunden wurde

105

Also habe ich Twitterizer von http://www.twitterizer.net/downloads/ heruntergeladen.

Ich versuche es in Visual Studio zu öffnen und bekomme all diese Nuget-Fehler:

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.

Was ist los. Wie gehe ich damit um?

Barka
quelle
5
Nur eine Notiz für den Fall, dass jemand anderes darauf stößt. Nuget 2.7 führte eine neue Art der Paketwiederherstellung ein. Wenn Sie versuchen, ein Projekt, das den alten Stil verwendet, zu einer Lösung hinzuzufügen, die den neuen Stil verwendet, wird derselbe Fehler angezeigt. Die Möglichkeit, dies zu beheben, besteht darin, das Projekt in den neuen Stil zu migrieren: docs.nuget.org/docs/workflows/…
Slapout

Antworten:

171
  1. Installieren Sie Nuget.
  2. Klicken Sie mit der rechten Maustaste auf die Lösung und wählen Sie "NuGet Package Restore aktivieren". Wählen Sie in Visual Studio 2013 und höher stattdessen "NuGet-Pakete wiederherstellen" aus.
  3. Klicken Sie in der Warnung auf OK.
  4. Schließen Sie die Lösung und öffnen Sie sie erneut.

Sollte jetzt hunky-dory sein.

Frank Hagenson
quelle
2
Vielen Dank dafür, wäre schön, wenn sie eine hilfreichere Fehlermeldung in VS dafür geben würden.
Rossisdead
2
Ich erhalte immer noch diesen Fehler, obwohl dies nicht mehr für Nuget 2.7 gilt
thepaulpage
Sie müssen die Problemumgehung durchführen, die @ Slapout erwähnt (Kommentar zur ursprünglichen Frage)
JasonS
Es funktioniert hier immer noch nicht, es heißt, dass keine Abhängigkeiten mehr wiederhergestellt werden müssen. Ich habe den
Paketordner
23

Eine Alternative besteht darin, die .csproj-Datei mit einem Texteditor zu bearbeiten und das Segment zu entfernen oder zu kommentieren.

MeanGreen
quelle
4
Um diesen Fall zu erweitern: Wenn Sie ein Projekt von einer Lösung mit einer expliziten .nuget \ nuget.targets-Datei in eine neue verschieben, wird dieses Problem angezeigt (auch nach dem Wiederherstellen von NuGet-Paketen). Erstellen Sie in diesem Fall entweder das Nuget .Ziele oder bearbeiten Sie die Projektdatei manuell.
ThisGuy
Ich habe diese Lösung auch angewendet, da in meinem Projekt keines der NuGet-Pakete verwendet wurde und VS dieses Material anscheinend automatisch generiert hat. Vielen Dank an den Himmel für die Versionskontrolle, die es möglich gemacht hat, die hinzugefügten Zeilen von .csproj zu entfernen.
Ivan G
Welches Segment muss man entfernen?
Zapnologica
18

Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, eine .csprojdirekt und nicht über die Lösungsdatei zu öffnen und .csprojdie Nuget-Ziele wie folgt zu importieren:

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

Um es zu lösen, können Sie entweder das .slnund nicht das .csprojdirekt öffnen ... oder die importobige Zeile entfernen .

Beachten Sie, dass der erwähnte Fehler nur auftritt, wenn Sie die solution wisePaketwiederherstellung verwenden, was nicht einmal mehr empfohlen wird.

André Pena
quelle
2
Dies ist das Problem, das ich hatte.
sparkyShorts
1
Entfernen von "der Importzeile oben". hat den Trick für mich gemacht. Vielen Dank!!
Bart
4

Ich bin gerade auf dasselbe Problem gestoßen, aber in meinem Fall war das Problem ein Leerzeichen im Ordnernamen:

Nuget sagte mir, dass es "C: \ git \ My Path" nicht finden konnte, aber ich konnte zu "C: \ git \ My% 20Path" navigieren. Durch Entfernen des Leerzeichens im Ordnernamen wurde das Problem "behoben".

Joe Zack
quelle
2

Ich weiß, dass ich zu spät zur Party komme, aber hier ist ein wirklich gutes Tutorial, wie man dieses Problem behebt. Ich habe dies verwendet, um mein Projekt zu reparieren.

Visual Studio schließen Wenn die Lösung, die Sie migrieren möchten, in Visual Studio geöffnet ist, gehen möglicherweise Änderungen verloren. In einigen Fällen kann Visual Studio Ihre Änderungen überschreiben / ignorieren, und die NuGet-Erweiterung versucht auch, die Paketwiederherstellung wieder zu aktivieren, wenn bei einigen Projekten in der Lösung diese fehlen.

Wenn Sie TFS verwenden Entfernen Sie die Dateien NuGet.exe und NuGet.targets aus dem Ordner .nuget der Lösung. Stellen Sie sicher, dass die Dateien selbst auch aus dem Lösungsarbeitsbereich entfernt werden. Behalten Sie die Datei NuGet.Config bei, um das Hinzufügen von Paketen zur Quellcodeverwaltung weiter zu umgehen. Bearbeiten Sie jede Projektdatei (z. B. .csproj, .vbproj) in der Lösung und entfernen Sie alle Verweise auf die Datei NuGet.targets. Öffnen Sie die Projektdatei (en) im Editor Ihrer Wahl und entfernen Sie die folgenden Einstellungen:

wahr ... ...

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

Sie. Weitere Informationen finden Sie unter http://go.microsoft.com/fwlink/?LinkID=322105 . Die fehlende Datei ist {0}. Wenn Sie TFS nicht verwenden Entfernen Sie den Ordner .nuget aus Ihrer Lösung. Stellen Sie sicher, dass der Ordner selbst auch aus dem Lösungsarbeitsbereich entfernt wird. Bearbeiten Sie jede Projektdatei (z. B. .csproj, .vbproj) in der Lösung und entfernen Sie alle Verweise auf die Datei NuGet.targets. Öffnen Sie die Projektdatei (en) im Editor Ihrer Wahl und entfernen Sie die folgenden Einstellungen:

wahr ... ...

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

Sie. Weitere Informationen finden Sie unter http://go.microsoft.com/fwlink/?LinkID=322105 . Die fehlende Datei ist {0}. Migrationsskript Viele Benutzer haben ein Migrationstool angefordert, um die MSBuild-basierte Paketwiederherstellung zu deaktivieren und in die automatische Paketwiederherstellung zu konvertieren. Das NuGet-Team hat beschlossen, kein unterstütztes Tool dafür bereitzustellen, da die Wahrscheinlichkeit hoch ist, dass Randfälle nicht behandelt werden. Owen Johnson hat jedoch ein PowerShell-Skript erstellt, das in vielen Fällen funktionieren kann. Es ist auf GitHub verfügbar und kann auf eigenes Risiko verwendet werden. Mit anderen Worten, stellen Sie sicher, dass Sie sich zur Quellcodeverwaltung verpflichten, bevor Sie sie ausführen, nur für den Fall, dass sie in Ihrem Szenario nicht funktioniert.

Nuget.target Fix

JEuvin
quelle
1

Wenn ich den nuget.targets not foundFehler erhalte , verwende ich den Paketmanager für uninstall-packageeines der Pakete im Projekt und installiere es dann mit neu install-package. Es scheint, als würde die Datei nugets.target dann neu generiert.

Micah
quelle
1

Die einfachste Lösung, wenn Sie diesen Fehler erhalten, um die NuGet.targetsim Visual Studio Solution Explorer fehlenden Fehler wiederherzustellen, ist:

  1. Klicken Sie mit der rechten Maustaste auf die Lösungsdatei
  2. Klicken Sie im Kontextmenü auf die Option " Nuget Package Restore aktivieren ..."

Dadurch werden die fehlenden Dateien im .nugetOrdner " " heruntergeladen :)

Das oben Gesagte setzt voraus, dass Sie Nuget bereits installiert haben - wenn nicht, folgen Sie der oben akzeptierten Antwort!

UPDATE: Bitte beachten Sie, dass für Visual Studio-Versionen nach 2013 die Option " NuGet-Pakete wiederherstellen " heißt.

Emil
quelle
1
Ich habe nicht die Option zum Wiederherstellen des Nuget-Pakets aktivieren. Ich habe nur restore nuget packages.
Zapnologica
Die Antwort wurde aktualisiert - dies ist der neue Name der
Emil