web-dev-qa-db-fra.com

La tâche "ResolveLibraryProjectImports" a échoué de manière inattendue

J'ai un projet Xamarin basé sur MvvmCross. Le projet concerne à la fois iOS et Android. J'ai ouvert ce projet dans Visual Studio 15. J'ai eu quelques erreurs que j'ai résolues en un rien de temps. Certaines erreurs sont bloquées et je ne pouvais pas les résoudre, même après une recherche sur Google et Stackoverflow. J'ai essayé toutes les méthodes trouvées sur Stackoverflow, mais toutes les erreurs restantes sont toujours présentes .. Ce projet utilise des bibliothèques tierces comme RestSharp et BoxApi.V2

Je publie mon journal des erreurs ci-dessous.

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)

Cette erreur se répète pour tous les projets inclus dans cette solution. Donc, je reçois cette erreur plusieurs fois. 

Je souhaite également ajouter que le projet reposait auparavant sur MAC et que j'utilise Windows, est-ce que cela crée un problème de compatibilité ou de problème de fonctionnement croisé entre les systèmes d'exploitation?.

24
Zaeem Sattar

Je viens littéralement de faire cela avec une toute nouvelle application Xamarin.Forms dans Visual Studio 2017.

La cause fondamentale semble être que j'ai laissé VS2017 créer le projet à l'emplacement par défaut "C:\Utilisateurs\Dave\Documents\Visual Studio 2017\Projets", ce qui a entraîné la création d'un chemin d'accès trop long pour l'un des fichiers .

J'ai déplacé la solution à la racine de mon lecteur D et elle est construite sans problème.

32
DilbertDave

Votre problème est probablement lié à this post sur les forums Xamarin et à this bugzilla entry. Sans échantillon reproductible, tout ce que je peux vous conseiller, c'est d'essayer

  • Mise à jour de Xamarin pour Visual Studio, Xamarin.Android et Xamarin.iOS avec les dernières versions stables 
  • Nettoyage et reconstruction 
  • Suppression de tous les dossiers bin et obj de vos répertoires de projet 
  • Redémarrage de Visual Studio/votre PC

À défaut de cela, il est peu probable que quiconque puisse vous aider sans un échantillon reproductible et potentiellement vos journaux Xamarin.

10
Luke Pothier

éditez votre fichier de projet Android (csproj) comme ci-dessous

 enter image description here

ce sujet peut guider https://github.com/xamarin/AndroidSupportComponents/issues/51

7
Alper Ebicoglu

J'ai eu le même problème. Voici ma solution

  1. Redémarrer Visual Studio
  2. Ouvrez le projet
  3. Nettoyer la solution
  4. Reconstruire la solution
  5. Solution proche
  6. Rouvrir le projet
3
Valynk

Eh bien pour moi le problème était dans mon fichier xaml ...

D'une manière ou d'une autre en fixant les limites de la mise en page, j'ai utilisé "." en tant que séparateur au lieu de ',' 

par exemple 

AbsoluteLayout.LayoutBounds="0.5.0.3,1,0.3" aurait dû être AbsoluteLayout.LayoutBounds="0.5,0.3,1,0.3"

D'où le changement de '.' to ',' a résolu le problème

2
Devesh Bahuguna

Je travaille avec XAML ( .xaml) et le fichier code-behind (. Xaml.cs). Mon problème était que j'avais le même nom de page, mais sous différents espaces de noms. Le fichier XAML et le code derrière le fichier ne correspondent pas. Alors finalement, c'était un problème avec mon XAML, parce que bien sûr, il n'a pas pu trouver l'élément view.

1
testing

Cela a fonctionné pour moi: 

  • Solution propre
  • Construisez un projet à la fois en commençant par le haut - NE PAS reconstruire la solution - juste un projet à la fois
  • Essayez également de supprimer le contenu des dossiers Obj et bin
  • Une fois terminé, supprimez le projet de l'émulateur ou du périphérique avant de le réexécuter.

J'espère que cela t'aides.

1
FelixFelicis

Dans mon cas, ce problème est venu avec un autre lié à mon xaml.
J'ai dû résoudre le second pour que cette erreur disparaisse. Je nettoie la classe avec un nouveau contenu par défaut, puis je nettoie tous les projets et solutions. Pour finir, fermez visual studio, ouvrez-le, lancez le projet et ça marche sait .-.

1
Gian Gomen

Ceci est toujours un nouveau problème, après toutes les tentatives que je voulais essayer de changer le code pour un chemin plus court - cependant c'est beaucoup de travail car la gestion de svn va se compliquer, donc je voulais d'abord vérifier si le chemin est vraiment un problème Pour ce faire, il fallait vérifier où se trouvaient les kits de développement Android. Je suis sur mac et l'enquête a révélé que le chemin d'accès des SDK était plus long que celui de mon projet. De plus, j'ai essayé avec un nouveau projet, et c'était compiler correctement. 

J'ai donc abandonné l'idée de changer. Au lieu de cela, j'ai utilisé svn et comparé ce qui a changé depuis la dernière version correcte.

La comparaison a révélé que le fichier de projet de droid faisait en quelque sorte référence au fichier de projet d’iOS, ce qui semble être un bogue de Visual Studio. J'ai donc annulé les modifications et tout est revenu à la normale.

1
Kalpesh Popat

C'est ce qui m'est arrivé lorsque j'ai accidentellement installé des packages de nuget dans une bibliothèque de classes incluse dans la solution. Je viens de désinstaller les packages du projet de bibliothèque de classes.

1
Michael Jedd

Vous avez toujours des problèmes? Vérifiez vos espaces de noms et votre code xaml. Parfois, lorsque vous copiez/collez des fichiers, cela peut être le problème.

1
Alejandro Bastidas

je reçois la même erreur et je résous généralement ce problème en fermant toutes les autres solutions xamarin ouvertes. Il existe un moyen supplémentaire de résoudre ce problème -> accédez au gestionnaire de tâches et recherchez le service MSBUILD et mettez fin au service -> nettoyez votre solution -> Reconstruisez

1
Ronak Shethia

Voici le problème: System.IO.PathTooLongException: le chemin spécifié, le nom du fichier ou les deux sont trop longs. Le nom de fichier complet doit comporter moins de 260 caractères et le nom de répertoire moins de 248 caractères.

Essayez de déplacer votre projet vers un autre emplacement tel que "C: /", ou modifiez le nom du projet pour un nom plus bref.

0
Sumit Pathak

J'ai eu cette erreur aussi. Dans mon cas, il était accompagné de Xamarin.Forms.Maps qui n’importait pas correctement dans l’un des fichiers xaml.g.cs. J'ai eu toutes les déclarations d'utilisation correctes. Le IDE ne montrait aucune erreur, mais il me répétait que Xamarin.Forms n'avait pas de mappage d'espace de noms. Il générait dans MapPage.xaml.g.cs comme Xamarin.Forms.Map au lieu de Xamarin.Forms.Maps.Map et je ne pouvais pas forcer manuellement un correctif. Il s'est toutefois avéré que le xmlns:maps suggéré pour les cartes était à l'origine du problème. Le IDE m'avait dit d'utiliser "http://xamarin.com/schemas/2014/forms", mais l'espace de nom correct est "clr-namespace:Xamarin.Forms.Maps;Assembly=Xamarin.Forms.Maps". Après avoir changé cela, il a été capable de construire mon App1.dll

0
Travis Fleenor

J'ai rencontré le même problème et aucune des solutions ci-dessus n'a fonctionné. Après avoir constaté une erreur sur la liste concernant la cryptographie, je savais que cela devait être lié à l'activation de FIPS (requise par un client VPN).

 Xamarin Compile Time Error

En désactivant FIPS et en redémarrant Visual Studio, le problème a été résolu.

 enter image description here

0
Geovani Martinez

C'est comme ça que j'ai eu l'erreur. Dans StackLayout, j'ai inséré une propriété Padding et séparé les 4 chiffres par un espace plutôt que par une virgule. Pour trouver le bogue, je devais mettre en commentaire les contrôles XAML individuellement, puis reconstruire pour isoler l'emplacement de l'erreur. En fin de compte, j’ai trouvé la ligne de problème…. Donc, c’est en gros le message d’erreur que j’ai reçu pour une erreur de syntaxe dans mon code XAML!. en secondes. Mais cela m'a pris quelques heures - bien que la prochaine fois, je sache quoi faire.

0
arame3333

Réponse courte: 

  1. Déplacez le répertoire contenant votre solution sur le bureau.

OR

  1. Supprimer les références à la bibliothèque en difficulté (dans la section Références)
  2. Fermer Visual Studio
  3. Dans l'Explorateur Windows, accédez au répertoire de projets de votre application (l'emplacement où se trouve votre fichier .sln "Nom du projet"). 
  4. Afficher les éléments masqués (onglet Afficher; vérifier les éléments masqués)
  5. Supprimez le dossier caché "vs" et, s’il existe un fichier nommé "sou", supprimez-le également.
  6. Redémarrez Visual Studio et lancez votre solution

Je faisais face à la même solution que OP. C’est la solution à l’erreur commise par le PO. J'ai abordé l'autre cause d'erreur qui peut survenir pour d'autres personnes ci-dessous.

Explication: Il existe généralement deux types de problèmes différents. La première inclut les fichiers de projet trop longs pour System.IO.reader, ce qui entraîne une erreur incluant du texte dans le sens de "file.path too long".

La deuxième cause d'erreur est due au fait que VS forme le nom correct pour la DLL, mais un chemin incorrect pour la ressource du projet. VS pourrait utiliser comme exemple "App1\bin\Debug\net452\temp.dll" au lieu de "App1\bin\Debug\net1.6\temp.dll". 

0
Akanni A

Ce genre de problème peut aussi arriver si par erreur vous avez une erreur syntaxique comme dans mon cas: deux cellules de texte étaient présentes dans le ListView -

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

J'ai consulté d'autres publications sur ce problème et constaté que le même problème se produisait en raison de la présence d'erreurs syntaxiques, que VS ne rapporte pas directement. Alors cherchez ceci, sinon, réinstallez la version compatible de xamarin.forms -> solutions propres -> reconstruisez en rouvrant VS.

0
Kokul Jose

J'ai fait face à ce problème mille fois, c'est en fait une chose très simple lorsque vous créez un nouveau projet, visual studio le crée dans C: Drive dans son dossier par défaut. Tout ce que vous avez à faire est de déplacer votre projet dans un autre Drive Like D :, E: Quoi que ce soit, assurez-vous de le conserver à la racine de votre lecteur, par exemple, si vous le déplacez dans D: puis placez-le comme ceci: D/Project/solutionFile 

0
G.hakim

C'est probablement un problème avec vos références/assemblages de références? 

Si vous examinez le dossier de références de chaque projet dans l'explorateur de solutions, toutes les références que visual studio ne peut pas trouver, supprimez-les et ajoutez-les à nouveau (cliquez avec le bouton droit sur le dossier de références à ajouter).

0
Kyle Burkett