web-dev-qa-db-de.com

Fehler beim Übergang zwischen Zweigen erstellen: Ihr Projekt verweist nicht auf das Framework ".NETFramework, Version = v4.7.2"

Wir verwenden Git und haben eine Lösung, die auf das gesamte Netz-Framework abzielt. Vor ein paar Tagen habe ich begonnen, die Lösung auf .net core zu migrieren. Leider taucht etwas auf, was mich dazu veranlasst hat, zum Master-Zweig zurückzukehren (der den Code für das vollständige .NET-Framework enthält). Immer wenn ich versuche, die App zu erstellen, erhalte ich die folgende Fehlermeldung:

1> D:\Programme (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Microsoft\NuGet\15.0\Microsoft.NuGet.targets (186,5): Fehler: Ihr Projekt verweist nicht auf die ".NETFramework, Version = v4.7.2" Framework. Fügen Sie einen Verweis auf .__ hinzu. ".NETFramework, Version = v4.7.2" im Abschnitt "frameworks" Ihres project.json und führen Sie NuGet Restore erneut aus.

Ich habe versucht, die Nuget-Pakete aufzuräumen und git reset auszuführen, aber nichts scheint zu helfen. Irgendeine Idee, was los ist?

10
Luis Abreu

Beim Upgrade einiger Projekte von 4.6.2 auf 4.7.2 hatte ich ein ähnliches Problem. Dies geschah sowohl für unsere ASP.Net Core-Lösung, die das vollständige Framework als Ziel hat, als auch für unsere WPF-Lösung. 

Anfangs schienen es zufällige Projekte zu sein, die diesen Fehler aufwiesen, andere Projekte mit nahezu gleichen csproj bauten gut und andere scheiterten. Das erneute Ausführen von NuGet restore in der Nachricht hat mich ebenfalls in die falsche Richtung gelenkt (einige dieser Projekte hatten nicht einmal NuGet-Referenzen ...)

Es scheint, dass das Problem aus dem OBJ-Ordner des Projekts stammt, der eine Datei project.assets.json enthält. Ich bin nicht sicher, wann dies generiert wurde - wahrscheinlich Relikte aus der Vergangenheit, und durch das Bereinigen des Projekts wird dies nicht entfernt. Die Datei verweist auf das vorherige Framework, in meinem Fall 4.6.2 - Manuelles Löschen der Ordner bin/obj für jedes Projekt, das nicht erstellt werden konnte. Danach wurde dieser Fehler für mich behoben. Dies würde auch erklären, warum der Repo für meinen Verstand geklont wurde.

19
MaxJ

Klingt nach Bibliotheken, die nicht Core-kompatibel sind. Wenn Nuget 4.7.2 erwartet/verlangt, ist es wahrscheinlich noch etwas, entweder in Ihrem Projekt oder in einer Bibliothek, die ich wagen würde. Erklärt auch, warum das Bereinigen und Wiederherstellen der Nuget-Pakete das Problem nicht behebt, wenn das wiederherzustellende Paket weiterhin Ziel 4.7.2 ist.

Zugehöriger Hinweis: Sind Sie sicher, dass Sie die neueste Projektstruktur verwenden? Ich habe festgestellt, dass Ihre Fehlermeldung project.json enthält, was zugunsten des neuen csproj-Formats abgelehnt wurde. Mehr Infos gibt es hier wenn es relevant ist. Mir ist keine Situation bekannt, in der Sie eine Fehlermeldung über project.json erhalten und die Lösung kein project.json hatte.

1
JosephRT