Compartir a través de


¿Cómo se puede resolver un error PathTooLongException?

Causa

Los nombres de ruta de acceso generados en un proyecto de Xamarin.Android pueden ser bastante largos. Por ejemplo, se podría generar una ruta de acceso como la siguiente durante una compilación:

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

En Windows (donde la longitud máxima de una ruta de acceso es 260 caracteres), se podría producir un error PathTooLongException al compilar el proyecto si una ruta de acceso generada supera la longitud máxima.

Fix

La propiedad UseShortFileNames de MSBuild está establecida en True para evitar este error de forma predeterminada. Cuando esta propiedad se establece en True, el proceso de compilación usa nombres de ruta de acceso más cortos para reducir la probabilidad de producir un error PathTooLongException. Por ejemplo, cuando UseShortFileNames se establece en True, la ruta de acceso anterior se acorta a una ruta de acceso similar a la siguiente:

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

Para establecer esta propiedad manualmente, agregue la siguiente propiedad de MSBuild al archivo .csproj del proyecto:

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

Si no se corrige el error PathTooLongException, otro método consiste en especificar una raíz de salida intermedia común para los proyectos de la solución. Para ello, establezca IntermediateOutputPath en el archivo .csproj del proyecto. Intente usar una ruta de acceso relativamente corta. Por ejemplo:

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

Para obtener más información sobre cómo establecer las propiedades de compilación, vea Proceso de compilación.