L’attività “ResolveLibraryProjectImports” non è riuscita in modo imprevisto

Ho un progetto Xamarin, basato su MvvmCross . Il progetto è per iOS e Android. Ho aperto questo progetto in Visual Studio 15. Ho ricevuto alcuni errori, che ho risolto in pochissimo tempo. Ci sono alcuni errori, che sono bloccati e non ho potuto risolverli anche dopo aver cercato su Google e su Stackoverflow. Ho provato tutti i metodi trovati su Stackoverflow, ma ancora tutti gli errori rimanenti ci sono. Questo progetto utilizza librerie di terze parti come RestSharp e BoxApi.V2 (poche altre)

Sto postando il mio log degli errori qui sotto.

 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.d__26.MoveNext() BoxApi.V2 (Android) 

Questo errore si ripete per tutti i progetti inclusi in questa soluzione. Quindi sto ricevendo questo errore più volte.

Voglio anche aggiungere che il progetto è stato precedentemente realizzato su MAC e sto usando Windows, questo rende qualche problema di compatibilità o cross OS? Ho controllato tutti i riferimenti di assemblaggio e tutti stanno funzionando bene.

Ho letteralmente avuto questo con una nuovissima applicazione Xamarin.Forms in Visual Studio 2017.

La causa principale sembra essere che ho permesso a VS2017 di creare il progetto nel suo percorso predefinito “C: \ Users \ Dave \ Documents \ Visual Studio 2017 \ Projects” e questo ha portato a uno dei file che ora ha un percorso troppo lungo .

Ho spostato la soluzione nella root della mia unità D e si è sviluppata senza problemi.

Il tuo problema è molto probabilmente collegato a questo post nei forum di Xamarin e questa voce di bugzilla. Senza un campione riproducibile, tutto quello che posso consigliarti di provare è:

  • Aggiornamento di Xamarin per Visual Studio, Xamarin.Android e Xamarin.iOS alle ultime versioni stabili
  • Pulizia e ricostruzione
  • Eliminazione di tutte le cartelle bin e obj dalle directory del progetto
  • Riavvio di Visual Studio / PC

In mancanza di tutto ciò, non è probabile che ci sia qualcuno che può aiutarti senza un campione riproducibile e potenzialmente i tuoi log Xamarin.

modifica il tuo file di progetto Android (csproj) come di seguito

inserisci la descrizione dell'immagine qui

questo argomento di argomento può guidare https://github.com/xamarin/AndroidSupportComponents/issues/51

Aveva lo stesso problema. Ecco la mia soluzione

  1. Riavvia Visual Studio
  2. Apri il progetto
  3. Pulisci la soluzione
  4. Ricostruisci la soluzione
  5. Soluzione chiusa
  6. Riapri il progetto

Questo è successo a me quando ho accidentalmente installato i pacchetti di nuget in una libreria di classi che è stata inclusa nella soluzione. Ho appena dovuto disinstallare i pacchetti dal progetto della libreria di classi.

Nel mio caso, questo problema è venuto con un altro relativo al mio xaml.
Ho dovuto risolvere il secondo per eliminare questo errore. Pulisco la class con un nuovo contenuto predefinito e quindi pulisco tutti i progetti e le soluzioni. Per ultimo, chiudi lo studio visivo, aprilo, esegui il progetto e funziona sapendo .-.

Questo è ancora un problema nuovo, dopo tutti i tentativi che volevo provare a spostare il codice su un percorso più breve – tuttavia è molto lavoro visto che la gestione di svn sarà complicata, quindi volevo prima verificare se il path è davvero un problema, uno il modo per farlo era quello di verificare dove sono archiviati gli SDK di Android. Sono su mac e l’indagine ha rivelato che il percorso degli SDK era più lungo del mio percorso di progetto. Inoltre ho provato con un nuovo progetto, e questo è stato compilato correttamente.

Quindi ho abbandonato l’idea di cambiare. Invece ho usato svn e ho confrontato ciò che è cambiato dall’ultima build corretta.

Il confronto ha rivelato che il file di progetto di droid si riferiva in qualche modo al file di progetto di iOS, sembra un bug di Visual Studio. Così ho ripristinato i cambiamenti e tutti sono tornati alla normalità.

ottengo lo stesso errore e di solito risolvo questo problema chiudendo tutte le altre soluzioni xamarin aperte e c’è un altro modo in cui ho risolto questo problema -> vai al taskmanager e trova il servizio MSBUILD e termina quel servizio -> pulisci la tua soluzione -> Ricostruisci

Sto lavorando con XAML ( .xaml) e file code-behind ( .xaml.cs). Il mio problema era che avevo lo stesso nome di pagina, ma con spazi dei nomi diversi. Lo XAML e il codice dietro il file non combaciavano tra loro. Quindi alla fine è stato un problema con il mio XAML, perché ovviamente non è stato ansible trovare l’elemento vista.

Bene per me il problema era nel mio file xaml …

In qualche modo durante l’impostazione dei limiti del layout ho usato “.” come separatore invece di “,”

per esempio

AbsoluteLayout.LayoutBounds="0.5.0.3,1,0.3" avrebbe dovuto essere AbsoluteLayout.LayoutBounds="0.5,0.3,1,0.3"

Quindi cambiare il ‘.’ a “,” ha risolto il problema

Probabilmente è un problema con i tuoi riferimenti / assiemi di riferimento?

Se si guarda nella cartella dei riferimenti di ciascun progetto in Solution Explorer, qualsiasi riferimento che Visual Studio non è in grado di trovare, eliminare e riaggiungere (fare clic sulla cartella di riferimento del clic destro per aggiungerla).

Ho affrontato questo problema migliaia di volte in realtà è una cosa molto semplice quando crei un nuovo progetto Visual Studio lo crea in C: Drive nella sua cartella predefinita tutto ciò che devi fare è spostare il tuo progetto in qualche altro Drive come D :, E: qualunque cosa semplicemente assicurati di tenerlo nella root del tuo Drive, cioè se lo sposti in D: quindi posizionalo come questo D / Project / solutionFile

Risposta breve:

  1. Sposta la directory contenente la soluzione sul desktop

O

  1. Elimina riferimenti alla libreria in difficoltà (nella sezione Riferimenti)
  2. Chiudi Visual Studio
  3. In Esplora risorse di Windows Passare alla directory di progetto dell’applicazione (la posizione in cui si trova il file “.sln” Nome progetto “).
  4. Scopri gli oggetti nascosti (Visualizza il tab, controlla gli oggetti nascosti)
  5. Elimina la cartella “vs” nascosta e se c’è un file chiamato “sou” cancella anche quello.
  6. Riavviare Visual Studio e avviare la soluzione

Stavo affrontando la stessa soluzione dell’OP. Questa è la soluzione all’errore che l’OP stava avendo. Ho affrontato l’altra causa di errore che può verificarsi per gli altri di seguito.

Spiegazione: Di solito ci sono due diversi tipi di problemi che possono verificarsi. Il primo include i file di progetto troppo lunghi per System.IO.reader che porta a un errore che include del testo lungo le linee di “file.path troppo lungo”.

La seconda causa di errore è dovuta al VS che forma il nome corretto per la DLL ma un percorso errato per la risorsa del progetto. Un esempio potrebbe essere VS che utilizza “App1 \ bin \ Debug \ net452 \ temp.dll” invece di “App1 \ bin \ Debug \ net1.6 \ temp.dll”.

Ecco il problema: System.IO.PathTooLongException: il percorso, il nome file o entrambi sono troppo lunghi. Il nome file completo deve essere inferiore a 260 caratteri e il nome della directory deve essere inferiore a 248 caratteri.

Prova a spostare il tuo progetto in un’altra posizione come “C: /”, o cambia il nome del progetto per qualcosa di più breve

Ho riscontrato lo stesso problema e nessuna delle soluzioni sopra ha funzionato. Dopo aver notato e l’errore nell’elenco relativo alla crittografia, sapevo che doveva essere correlato all’triggerszione di FIPS (richiesto da un client VPN)

Xamarin Compile Time Error

Disabilitando FIPS e riavviando Visual Studio il problema è stato risolto.

inserisci la descrizione dell'immagine qui

Ho avuto anche questo errore. Nella mia situazione era accompagnato da Xamarin.Forms.Maps non importava correttamente in uno dei file xaml.g.cs Ho avuto tutte le istruzioni usando corrette. L’IDE non mostrava errori ma continuava a dirmi che Xamarin.Forms non aveva una mappa dello spazio dei nomi. MapPage.xaml.g.cs generando in MapPage.xaml.g.cs come Xamarin.Forms.Map invece di Xamarin.Forms.Maps.Map e io non potevamo forzare una correzione manualmente. Si è scoperto però che xmlns:maps suggerito xmlns:maps per le mappe stavano causando il problema. L’IDE mi ha detto di usare "http://xamarin.com/schemas/2014/forms" ma lo spazio dei nomi corretto è "clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps" . Dopo averlo modificato, è stato in grado di creare App1.dll

Abbiamo anche riscontrato questo, sembra essere un qualche tipo di condizione di competizione quando si costruiscono più progetti e un albero di dipendenza molto profondo / complesso (il nostro esempio ha oltre 100 progetti).

L’unico modo in cui siamo riusciti a risolvere questo problema (oltre la ricostruzione continua) consiste nel disabilitare le abilità di Parallel Build di Visual Studio 2017 (Strumenti-> Opzioni-> Progetti e soluzioni-> Costruisci ed esegui -> “1” Numero massimo di progetti paralleli costruisce).

Il problema sembra essere in ResolveLibraryProjectImports.cs ( https://github.com/xamarin/xamarin-android/blob/93ddf96f86710ad848d5189858567dd7fe964579/src/Xamarin.Android.Build.Tasks/Tasks/ResolveLibraryProjectImports.cs ) molto probabilmente c’è una gara condizione con la loro logica per abbreviare i nomi dei file.

Ci sono zero test intorno a questo, il che significa che c’è molto probabilmente un codice dubbia.

Cercherò di scavare di più e ottenere un problema aperto su GitHub ma trovare un repository affidabile sarà probabilmente molto difficile.

Questo è stato il modo in cui ho ricevuto l’errore. In uno StackLayout ho inserito una proprietà Padding e ho separato le 4 cifre di uno spazio anziché una virgola. Per trovare il bug, ho dovuto commentare i controlli XAML singolarmente e ribuild per isolare il punto dell’errore, e alla fine ho trovato la riga del problema. Quindi in pratica questo era il messaggio di errore che ho ricevuto per un errore di syntax nel mio codice XAML! In qualsiasi altra lingua mi aspetterei di essere informato su quale sia l’errore, quindi posso correggerlo in pochi secondi. Ma mi ci sono volute alcune ore – anche se la prossima volta so cosa fare.