Partager via


Comment faire résoudre une erreur PathTooLongException ?

Cause

Les noms de chemins générés dans un projet Xamarin.Android peuvent être assez longs. Par exemple, un chemin d’accès semblable à ce qui suit peut être généré lors d’une build :

C:\Some\Directory\Solution\Project\obj\Debug\library_projects\Xamarin.Forms.Platform.Android\library_project_imports\assets

Sur Windows (où la longueur maximale d’un chemin d’accès est de 260 caractères), une exception PathTooLongException peut être générée lors de la génération du projet si un chemin d’accès généré dépasse la longueur maximale.

Fix

La UseShortFileNames propriété MSBuild est définie sur True pour contourner cette erreur par défaut. Lorsque cette propriété a la Truevaleur , le processus de génération utilise des noms de chemin d’accès plus courts pour réduire la probabilité de produire une PathTooLongException. Par exemple, lorsque UseShortFileNames est défini sur True, le chemin d’accès ci-dessus est raccourci en chemin d’accès semblable à ce qui suit :

C:\Some\Directory\Solution\Project\obj\Debug\lp\1\jl\assets

Pour définir cette propriété manuellement, ajoutez la propriété MSBuild suivante au fichier .csproj du projet :

<PropertyGroup>
    <UseShortFileNames>True</UseShortFileNames>
</PropertyGroup>

Si la définition de cet indicateur ne résout pas l’erreur PathTooLongException , une autre approche consiste à spécifier une racine de sortie intermédiaire commune pour les projets dans votre solution en définissant IntermediateOutputPath dans le fichier .csproj du projet. Essayez d’utiliser un chemin relativement court. Par exemple :

<PropertyGroup>
    <IntermediateOutputPath>C:\Projects\MyApp</IntermediateOutputPath>
</PropertyGroup>

Pour plus d’informations sur la définition des propriétés de build, consultez Processus de génération.