wake-up-neo.net

Die Task "ResolveLibraryProjectImports" ist unerwartet fehlgeschlagen

Ich habe ein Xamarin-Projekt, das auf MvvmCross basiert. Das Projekt ist sowohl für iOS als auch für Android. Ich habe dieses Projekt in Visual Studio 15 geöffnet. Ich habe einige Fehler bekommen, die ich in kürzester Zeit gelöst habe. Es gibt einige Fehler, die stecken bleiben und ich konnte sie auch nach der Suche bei Google und Stackoverflow nicht lösen. Ich habe jede auf Stackoverflow gefundene Methode ausprobiert, aber alle verbleibenden Fehler sind noch vorhanden .. Dieses Projekt verwendet Bibliotheken von Drittanbietern wie RestSharp und BoxApi.V2 (einige mehr).

Ich poste mein Fehlerprotokoll unten.

Severity    Code    Description Project File    Line    Suppression State
Error       The "ResolveLibraryProjectImports" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load Assembly 'RestSharp(Android), Version=0.0.0.0, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'RestSharp(Android).dll'
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName, ReaderParameters parameters)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(String fullName)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.GetAssembly(String fileName)
   at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Extract(DirectoryAssemblyResolver res, ICollection`1 jars, ICollection`1 resolvedResourceDirectories, ICollection`1 resolvedAssetDirectories, ICollection`1 resolvedEnvironments)
   at Xamarin.Android.Tasks.ResolveLibraryProjectImports.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() BoxApi.V2 (Android)

Dieser Fehler wird für alle in dieser Lösung enthaltenen Projekte wiederholt. Ich bekomme diesen Fehler also mehrmals. 

Ich möchte auch hinzufügen, dass das Projekt zuvor auf MAC erstellt wurde und ich Windows verwende. Macht dies Kompatibilitäts- oder Cross OS-Probleme? Ich habe alle Assembly-Referenzen überprüft und funktioniert einwandfrei.

24
Zaeem Sattar

Ich hatte das buchstäblich gerade mit einer brandneuen Xamarin.Forms-Anwendung in Visual Studio 2017.

Die Hauptursache scheint zu sein, dass ich VS2017 das Projekt an seinem Standardspeicherort 'C:\Benutzer\Dave\Dokumente\Visual Studio 2017\Projekte' erstellen lasse. Dies hat dazu geführt, dass eine oder mehrere Dateien jetzt einen Pfad haben, der zu lang ist .

Ich habe die Lösung in das Stammverzeichnis meines D-Laufwerks verschoben und es wird ohne Probleme erstellt.

32
DilbertDave

Ihr Problem ist höchstwahrscheinlich mit this post in den Xamarin-Foren und this bugzilla-Einträgen verknüpft. Ohne ein reproduzierbares Muster kann ich Ihnen nur raten:

  • Aktualisieren von Xamarin für Visual Studio, Xamarin.Android und Xamarin.iOS auf die neuesten stabilen Versionen 
  • Reinigen und Umbauen 
  • Löschen Sie alle Ordner bin und obj aus Ihren Projektverzeichnissen 
  • Starten Sie Visual Studio/Ihren PC neu

Wenn Sie all das nicht schaffen, gibt es wahrscheinlich niemanden, der Ihnen ohne eine reproduzierbare Probe und möglicherweise Ihre Xamarin-Protokolle helfen kann.

10
Luke Pothier

bearbeiten Sie Ihre Android-Projektdatei (csproj) wie unten

 enter image description here

in diesem Thema finden Sie möglicherweise Anleitungen https://github.com/xamarin/AndroidSupportComponents/issues/51

7
Alper Ebicoglu

Hatte dasselbe Problem. Hier ist meine Lösung

  1. Starten Sie Visual Studio neu
  2. Öffnen Sie das Projekt
  3. Reinigen Sie die Lösung
  4. Erstellen Sie die Lösung neu
  5. Lösung schließen
  6. Öffnen Sie das Projekt erneut
3
Valynk

Nun, das Problem lag für mich in meiner XAML-Datei ...

Irgendwie habe ich beim Festlegen der Layout-Grenzen '.' als Trennzeichen anstelle von ',' 

z.B 

AbsoluteLayout.LayoutBounds="0.5.0.3,1,0.3" hätte AbsoluteLayout.LayoutBounds="0.5,0.3,1,0.3" sein sollen

Daher das '.' zu ',' das Problem gelöst

2
Devesh Bahuguna

Ich arbeite mit XAML ( .xaml) und Code-Behind-Datei (. Xaml.cs). Mein Problem war, dass ich denselben Seitennamen hatte, jedoch unter verschiedenen Namespaces. Die XAML und der Code hinter der Datei stimmen nicht überein. Es war also endlich ein Problem mit meiner XAML, da es das View-Element natürlich nicht finden konnte.

1
testing

Das hat für mich funktioniert: 

  • Lösung reinigen
  • Erstellen Sie jeweils ein Projekt von oben - KEINE Lösung neu erstellen - sondern nur ein Projekt
  • Löschen Sie auch den Inhalt des Ordners "Obj" und "Bin"
  • Wenn Sie fertig sind, löschen Sie das Projekt vom Emulator oder Gerät, bevor Sie es erneut ausführen

Hoffe das hilft.

1
FelixFelicis

In meinem Fall kam dieses Problem mit einem anderen in Zusammenhang mit meinem Xaml.
Ich musste die zweite lösen, damit dieser Fehler verschwand. Ich bereinige die Klasse mit einem neuen Standardinhalt und bereinige dann alle Projekte und Lösungen. Als letztes schließen Sie das Visual Studio, öffnen Sie es, führen Sie das Projekt aus und es funktioniert.

1
Gian Gomen

Dies ist immer noch ein neues Problem. Nach allen Versuchen wollte ich versuchen, den Code auf einen kürzeren Pfad zu verschieben. Dies ist jedoch eine Menge Arbeit, da das svn-Management kompliziert wird. Daher wollte ich zunächst prüfen, ob der Pfad wirklich ein Problem ist Um dies zu erreichen, wurde überprüft, wo die Android-SDKs gespeichert sind. Ich bin auf Mac und die Untersuchung ergab, dass der SDKs-Pfad länger war als mein Projektpfad. Außerdem habe ich es mit einem neuen Projekt versucht, und das wurde korrekt kompiliert. 

Also habe ich die Idee der Verschiebung fallen gelassen. Stattdessen habe ich svn verwendet und verglichen, was sich seit dem letzten richtigen Build geändert hat.

Der Vergleich ergab, dass sich die Projektdatei von Droid irgendwie auf die Projektdatei von iOS bezog, es scheint ein Fehler in Visual Studio zu sein. Also habe ich die Änderungen rückgängig gemacht und dann haben sich alle wieder normalisiert.

1
Kalpesh Popat

Wir sind auch auf dieses Problem gestoßen. Es scheint eine Art Race-Condition zu sein, wenn mehrere Projekte und ein sehr tiefer/komplexer Abhängigkeitsbaum erstellt werden (unser Beispiel enthält über 100 Projekte).

Die einzige Möglichkeit, dies zu beheben (über die kontinuierliche Neuerstellung hinaus), besteht darin, die parallelen Erstellungsfunktionen von Visual Studio 2017 zu deaktivieren (Extras-> Optionen-> Projekte und Lösungen-> Erstellen und Ausführen -> "1" Maximale Anzahl paralleler Projekte) baut).

Das Problem scheint in ResolveLibraryProjectImports.cs ( https://github.com/xamarin/xamarin-Android/blob/93ddf96f86710ad848d5189858567dd7fe964579/src/Xamarin.Android.Build.Tasks/Tasks/Resol .cs ) Es gibt höchstwahrscheinlich eine Racebedingung mit ihrer Logik, um die Dateinamen zu verkürzen.

Es gibt keine Tests, was bedeutet, dass es höchstwahrscheinlich etwas zweifelhaften Code gibt.

Ich werde versuchen, mehr zu graben und ein Problem bei GitHub zu lösen, aber es wird wahrscheinlich sehr schwierig sein, ein zuverlässiges Repo zu finden.

1
aolszowka

Dies passierte mir, als ich versehentlich Nuget-Pakete in einer Klassenbibliothek installierte, die in der Lösung enthalten war. Ich musste nur die Pakete aus dem Klassenbibliothekprojekt deinstallieren.

1
Michael Jedd

Habe immer noch Probleme? Überprüfen Sie Ihre Namespaces und Ihren XAML-Code. Wenn Sie einige Dateien kopieren/einfügen, kann dies manchmal das Problem sein.

1

Ich bin mir nicht sicher, ob es jemandem von euch helfen wird. In meinem Fall kommentiere ich die fehlerhafte Klasse (z. B. die mit fehlenden Referenzen), und sie wird anfangen, alles aufzunehmen und neu aufzubauen.

1
hmheng

ich bekomme den gleichen Fehler und normalerweise löse ich das Problem, indem ich alle anderen geöffneten Xamarin-Lösungen schließe. Es gibt noch einen weiteren Weg, auf den ich dieses Problem gelöst habe -> zum Taskmanager gehen und den MSBUILD-Dienst finden und den Dienst beenden -> Lösung reinigen -> Neu erstellen

1
Ronak Shethia

Hier ist das Problem: System.IO.PathTooLongException: Der angegebene Pfad, Dateiname oder beide sind zu lang. Der vollständig qualifizierte Dateiname muss aus weniger als 260 Zeichen und der Verzeichnisname aus weniger als 248 Zeichen bestehen.

Versuchen Sie, Ihr Projekt an einen anderen Ort wie "C: /" zu verschieben, oder ändern Sie den Namen des Projekts, um es kurz zu machen

0
Sumit Pathak

Ich hatte auch diesen Fehler. In meiner Situation wurde Xamarin.Forms.Maps nicht korrekt in eine der xaml.g.cs-Dateien importiert. Ich hatte alle Verwendungsaussagen richtig. Die IDE zeigte keine Fehler, sagte mir aber ständig, dass Xamarin.Forms keine Namensraum-Map hat. Es wurde in MapPage.xaml.g.cs als Xamarin.Forms.Map anstelle von Xamarin.Forms.Maps.Map generiert, und ich konnte keine Korrektur manuell erzwingen. Es stellte sich jedoch heraus, dass der vorgeschlagene xmlns:maps für Karten das Problem verursachte. Die IDE hatte mir gesagt, dass ich "http://xamarin.com/schemas/2014/forms" verwenden soll, aber der korrekte Namespace ist "clr-namespace:Xamarin.Forms.Maps;Assembly=Xamarin.Forms.Maps". Nachdem ich das geändert hatte, konnte ich meinen App1.dll bauen

0
Travis Fleenor

Ich bin heute mit dem gleichen Problem konfrontiert. Nach zwei Tagen Suche habe ich die Lösung gefunden hier . Das Problem ist, dass die Xamarin.Forms-Bibliothek nicht alle abhängigen Nuget-Pakete installiert, während das erste Projekt mit einer plattformübergreifenden Mobile-Projektvorlage (Xamarin.Forms) aus Visual Studio 2017 erstellt wird. Ich muss die aktualisierten abhängigen Nuget-Pakete manuell installieren, um das zu erstellen erfolgreich projektieren. Außerdem haben Sie Xamarin.Forms am Ende entfernt und hinzugefügt, wodurch das Problem behoben wird.

Wenn zwei Instanzen von Visual Studio 2017 ausgeführt werden, kann es auch zu Problemen kommen. Stellen Sie sicher, dass nur eine Instanz ausgeführt wird, da dieses Problem ebenfalls aufgetreten ist.

0
Subhajit Ray

Ich bin auf das gleiche Problem gestoßen und keine der oben genannten Lösungen hat funktioniert. Nachdem ich einen Fehler in der Liste bezüglich Cryptography festgestellt hatte, wusste ich, dass es mit der Aktivierung von FIPS zusammenhängen musste (dies ist für einen VPN-Client erforderlich).

 Xamarin Compile Time Error

Durch Deaktivieren von FIPS und Neustarten von Visual Studio wurde das Problem behoben.

 enter image description here

0

So bekam ich den Fehler. In einem StackLayout habe ich eine Padding-Eigenschaft eingefügt und die 4 Ziffern durch ein Leerzeichen und nicht durch ein Komma getrennt .. Um den Fehler zu finden, musste ich die XAML-Steuerelemente einzeln auskommentieren und neu aufbauen, um zu ermitteln, wo der Fehler ist und Irgendwann fand ich die Problemlinie ... Im Grunde war dies die Fehlermeldung, die ich wegen eines Syntaxfehlers in meinem XAML-Code bekam. In jeder anderen Sprache würde ich davon ausgehen, dass der Fehler informiert ist, sodass ich ihn beheben kann in Sekunden. Aber das dauerte einige Stunden - obwohl ich das nächste Mal weiß, was ich tun soll.

0
arame3333

Kurze Antwort: 

  1. Verschieben Sie das Verzeichnis mit Ihrer Lösung auf den Desktop

OR

  1. Verweise auf die gestörte Bibliothek löschen (im Abschnitt Verweise)
  2. Schließen Sie Visual Studio
  3. Wechseln Sie in Windows Explorer zum Projektverzeichnis Ihrer Anwendung (Speicherort der "Projektnamen" .sln-Datei). 
  4. Ausgeblendete Elemente einblenden (Registerkarte "Ansicht"; Ausgeblendete Elemente überprüfen)
  5. Löschen Sie den versteckten Ordner "vs", und löschen Sie auch den Ordner "sou".
  6. Starten Sie Visual Studio neu und starten Sie Ihre Lösung

Ich stand vor der gleichen Lösung wie OP. Dies ist die Lösung für den Fehler, den das OP hatte. Die andere Fehlerursache, die bei anderen auftreten kann, habe ich angesprochen.

Erläuterung: Normalerweise gibt es zwei verschiedene Arten von Problemen. Die erste beinhaltet, dass die Projektdateien für System.IO.reader zu lang sind und zu einem Fehler führen, der Text in der Zeile von "file.path too long" enthält.

Die zweite Fehlerursache ist darauf zurückzuführen, dass VS den richtigen Namen für die DLL formuliert, jedoch einen falschen Pfad für die Projektressource. Ein Beispiel könnte VS sein, das "App1\bin\Debug\net452\temp.dll" anstelle von "App1\bin\Debug\net1.6\temp.dll" verwendet. 

0
Akanni A
xmlns:maps="clr-namespace:Xamarin.Forms.Maps; Assembly=Xamarin.Forms.Maps"

Das Problem war auf den oben angegebenen Abstand zwischen dem Semikolon und der Assembly zurückzuführen. Sobald die Lücke geschlossen ist, kompiliert sie.

0
user11633781

Diese Art von Problem kann auch auftreten, wenn Sie versehentlich einen syntaktischen Fehler wie in meinem Fall haben: In der ListView waren zwei Textzellen vorhanden -

<ListView x:Name="ProductsView">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding ProductId}" />
            <TextCell Text="{Binding ProductDescription}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Ich habe in diesem Artikel andere Beiträge durchgesehen und festgestellt, dass das gleiche Problem aufgrund von syntaktischen Fehlern aufgetreten ist, die VS nicht direkt berichtet. Also, suchen Sie nach diesem, sonst installieren Sie die kompatible Version von xamarin.forms -> clean solutions -> neu, indem Sie VS erneut öffnen.

0
Kokul Jose

Ich habe dieses Problem tausend Mal gesehen. Es ist eigentlich eine sehr einfache Sache, wenn Sie ein neues Projekt erstellen. Visual Studio erstellt es in C: Drive in seinem Standardordner. Alles, was Sie tun müssen, ist, Ihr Projekt in ein anderes Laufwerk zu verschieben. E: was auch immer, stellen Sie sicher, dass Sie es im Stammverzeichnis Ihres Laufwerks behalten, dh, wenn Sie es in D verschieben: Dann platzieren Sie es wie dieses D/Project/solutionFile 

0
G.hakim

Es ist wahrscheinlich ein Problem mit Ihren Referenzen/Referenzbaugruppen? 

Wenn Sie im Projektmappen-Explorer unter dem Verweisordner des jeweiligen Projekts nachsehen, können alle Verweise, die von Visual Studio nicht gefunden werden, diese suchen, löschen und erneut hinzufügen.

0
Kyle Burkett