Die angegebene Abhängigkeit war X, endete aber mit Y

8

Ich habe die project.json einer Klassenbibliothek aktualisiert, um netstandard1.3 und net64 zu erreichen.

Mit dieser Änderung:

%Vor%

Ich veröffentliche eine Bibliothek und muss wirklich auf netstandard1.3 / net46 ausrichten.

Wie kann ich feststellen, warum stattdessen eine höhere Version verwendet wird?

    
Drew Noakes 12.10.2016, 13:28
quelle

4 Antworten

6

Ich habe dies auf einem NuGet Problem verfolgt und @emgarten hat darauf hingewiesen, dass das NETStandard.Library -Paket nur habe eine Version 1.6.0, aber diese Version 1.6.0 enthält Assemblies für netstandard1.3 .

In diesem Fall existiert die Version 1.3, die ich angefordert habe, nirgendwo und die Warnung ist eine Benachrichtigung, dass sie stattdessen eine höhere Version verwendet.

Die Diagnose könnte jedoch noch informativer sein. Sie können über das Problem abstimmen , wenn es Sie ebenfalls stört und Sie möchten, dass es klarer wird.

    
Drew Noakes 13.10.2016 07:51
quelle
1

Wenn Sie nicht mit NuGet, aber in meinem Fall mit Ihren eigenen Projekten arbeiten, kann dieser Fehler auch auftreten.

Als erstes sollten Sie sicherstellen, dass Sie die korrekte Version in Solution Items -> global.json haben.

Dann müssen Sie möglicherweise jedes project.json, das auf dieses Projekt verweist, aktualisieren, da VS2015 nicht immer korrekt aktualisiert wird:

  1. Öffnen Sie die Datei project.json und schneiden Sie die Zeile mit der Warnung ab
  2. Speichern Sie die Datei und warten Sie, bis die Meldung 'Pakete wiederherstellen ...' verschwindet
  3. Fügen Sie die Zeile wieder in
  4. ein
  5. Speichern Sie die Datei erneut

Eine andere Möglichkeit zum Erzwingen einer Aktualisierung besteht darin, dotnet restore --no-cache auf der Lösungs- oder Projektebene auszuführen.

    
MeanGreen 23.02.2017 10:15
quelle
0

Ich hatte dieses Problem, wenn ein gemeinsames Bibliotheksprojekt in mehr als einer Lösung war.

Der Verzeichnispfad des Bibliotheksprojekts wurde geändert und die Datei global.json wurde in einer einzigen Lösung aktualisiert.

In der anderen wurde die SLN-Datei für den neuen Speicherort des Projekts aktualisiert. Allerdings die global.json nicht. Da das Projekt in ein höheres Verzeichnis verschoben wurde, verweist die alte global.json-Datei auf einen bestimmten Speicherort.

    
NickBeaugié 24.04.2017 13:42
quelle
0

Für mich funktionierte nur das Löschen der Sperrdatei ( project.lock.json ). Nach dem Löschen dieser Datei hat Nuget alle Pakete automatisch wiederhergestellt und das Problem ist verschwunden.

Haftungsausschluss

Obwohl es für mich funktionierte, bin ich mir nicht sicher, ob dies ein tiefgreifender Weg ist, Dinge zu tun, die für alle funktionieren. Bitte beachten Sie also, was Sie tun, bevor Sie diese Datei löschen.

    
Hinrich 07.03.2018 13:19
quelle