2017-12-11 6 views
0

Ich habe kürzlich mein Win VS 2017 Xamarin-Projekt auf Xamarin Forms 2.5.0.212934 aktualisiert. Ich habe einige andere Pakete aktualisiert und Microsoft.AppCenter 1.0.1 gleichzeitig hinzugefügt. Abhängigkeiten von einer Anzahl von Paketen im Xamarin.Android-Namespace zwangen sie dazu, auf 26.1.0.1 zu aktualisieren. Jetzt, wenn ich baue bekomme ich den folgenden Fehler:Referenz zu Xamarin.Android.Support.Vector.Drawable-Paket break builds

"Dieses Projekt verweist auf NuGet Paket (s), die auf diesem Computer fehlen. Verwenden Sie NuGet Package Restore, um sie herunterzuladen. Weitere Informationen finden Sie unter http://go.microsoft.com/fwlink/?LinkID=322105. Die fehlende Datei ist. ... \ packages \ Xamarin.Android.Support.Vector.Drawable.23.3.0 \ build \ Xamarin.Android.Support.Vector.Drawable.targets. "

Offenbar besteht ein Verweis auf die alte Version. NuGet-Optionen in VS sind so eingestellt, dass Pakete automatisch geprüft und heruntergeladen werden. Ich habe zahlreiche Kombinationen von Wiederherstellung, Deinstallation, Neuinstallation ausprobiert, kann dieses Problem jedoch nicht beheben. Ich habe das Projekt nach Verweisen auf die alte Version durchsucht, aber keine gefunden. Es ist durchaus möglich, dass ich nicht weiß, wo ich hinschauen soll, da das NuGet-Paketmanagement für mich immer noch ein schwarzes Loch ist. Ich glaube, es ist höher als die Projektebene. Wenn ich meine Projektdateien von der Quellcodeverwaltung in einen bekannten guten Zustand zurückversetze, erhalte ich den gleichen Fehler.

Wo würde ich nach dieser Abhängigkeit suchen, oder gibt es eine Möglichkeit, es mit NuGet automatisch zu lösen, die ich vermisse?

Antwort

0

Ich konnte dieses Problem lösen, obwohl die Ursache immer noch ein Mysterium ist. Ich werde meine Entschließung dokumentieren, falls sie in Zukunft für andere hilfreich sein wird.

Ich bemerkte, dass der Pfad zu der 'fehlenden' Datei relativ war und nur zwei Verzeichnisse nachgeschlagen. Aus irgendeinem Grund, als dieses Projekt erstellt wurde (aus einer VS/Xamarin-Vorlage), wurde es unter einen Ordner "src" gestellt, was den relativen Pfad in diesem Fehler falsch machte. Um dies zu testen, kopierte ich die fehlende Datei in den relativen Pfad, auf den sich der Fehler bezog, und tatsächlich wurde der Build fortgesetzt. Zu diesem Zeitpunkt gab es weitere Fehler, die vermutlich darauf zurückzuführen waren, dass das Out-of-Place-Paket versuchte, andere Ressourcen zu finden.

Um das Problem zu lösen, habe ich das Projekt aus meiner VS-Lösung entfernt, die Projektdateien in einen Ordner verschoben und das Projekt erneut zur Lösung hinzugefügt. Dies führte zu den korrekten relativen Pfaden in allen Paketverweisen und einem erfolgreichen Build. Meine einzige Sorge ist jetzt, dass das vielleicht andere geheime Abhängigkeiten in dem Projekt sind, die ich unwissentlich gebrochen habe. Die Zeit wird es zeigen ... wirklich kein Fan von NuGet Magie im Moment. Hätte ich die tatsächliche Zeile mit dem falschen relativen Pfad in einer Datei irgendwo finden können, hätte ich sie manuell korrigieren können.