Condividi tramite


Ricerca per categorie risolvere un errore PathTooLongException?

Causa

I nomi di percorso generati in un progetto Xamarin.Android possono essere molto lunghi. Ad esempio, è possibile generare un percorso simile al seguente durante una compilazione:

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

In Windows (dove la lunghezza massima per un percorso è di 260 caratteri), è possibile generare un'eccezione PathTooLongException durante la compilazione del progetto se un percorso generato supera la lunghezza massima.

Fix

La UseShortFileNames proprietà MSBuild è impostata su True per aggirare questo errore per impostazione predefinita. Quando questa proprietà è impostata su True, il processo di compilazione usa nomi di percorso più brevi per ridurre la probabilità di produrre un oggetto PathTooLongException. Ad esempio, quando UseShortFileNames è impostato su True, il percorso precedente viene abbreviato in percorso simile al seguente:

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

Per impostare questa proprietà manualmente, aggiungere la proprietà MSBuild seguente al file con estensione csproj del progetto:

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

Se l'impostazione di questo flag non corregge l'errore PathTooLongException, un altro approccio consiste nel specificare una radice di output intermedia comune per i progetti nella soluzione impostando IntermediateOutputPath nel file con estensione csproj del progetto. Provare a usare un percorso relativamente breve. Ad esempio:

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

Per altre informazioni sull'impostazione delle proprietà di compilazione, vedere Processo di compilazione.