Je reçois une erreur en essayant de compiler un projet Android dans VS2017 avec Xamarin. J'obtenais une erreur de type chaîne non autorisée et une des suggestions était de mettre à jour toutes mes références Xamarin.Android. J'ai trouvé celui qui traitait des observables pour le Xamarin.Core alors je l'ai installé. Depuis lors, j'ai eu l'erreur de résolution. J'ai essayé de supprimer les répertoires obj et bin et de redémarrer vs et mon ordinateur portable.
Voici le texte de l'erreur
Error The "ResolveLibraryProjectImports" task failed unexpectedly.
System.IO.PathTooLongException: The specified path, file name, or both are too >long. The fully qualified file name must be less than 260 characters, and the >directory name must be less than 248 characters.
at System.IO.PathHelper.GetFullPathName()
at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 > maxPathLength, Boolean expandShortPaths)
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 >maxPathLength, Boolean expandShortPaths)
at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 >maxPathLength)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, >Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, >FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean >bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess >access, FileShare share)
at System.IO.File.Open(String path, FileMode mode)
at Xamarin.Tools.Zip.ZipEntry.DoExtract(IntPtr zipFile, String >destinationPath, FileMode outputFileMode, EntryExtractEventArgs args)
at Xamarin.Tools.Zip.ZipEntry.Extract(String destinationDir, String >destinationFileName, FileMode outputFileMode)
at Xamarin.Android.Tools.Files.ExtractAll(ZipArchive Zip, String >destination, Action`2 progressCallback)
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.ITaskExecutio>nHost.Execute()
at >Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() LayoutExample.Android
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.
la solution est d’éditer votre fichier de projet Android (csproj) comme ci-dessous
https://github.com/xamarin/AndroidSupportComponents/issues/51
Je viens de répondre à cette question sur une autre SO question ( https://stackoverflow.com/a/44780549/31580 ).
Le point crucial est que si votre solution est enregistrée dans un emplacement avec un long chemin, certains fichiers peuvent avoir un chemin qui dépasse le maximum pour Windows (260 caractères).
Essayez de déplacer la solution à la racine de votre C ou D (si vous en avez une).
J'avais compris cela lorsque j'ai ajouté une référence à Xamarin.GooglePlayServices.Ads à mon projet via NuGet. Dès que j'ai fait cela, j'ai eu le même problème que l'OP. Déplacer mon code dans le répertoire racine de mon lecteur C n’a pas aidé non plus, malheureusement; cependant, selon la suggestion d'Alper Ebicoglu, j'ai ajouté ...
<UseShortFileNames>True</UseShortFileNames>
... vers mon fichier de projet dans le groupe de propriétés pour mes configurations de construction. Après avoir rechargé le projet dans Visual Studio, j'ai pu construire mon projet.
J'espère que cela t'aides!
J'ai eu le même problème. Voici comment je l'ai réparé