Partilhar via


Como fazer resolve um erro PathTooLongException?

Causa

Os nomes de caminho gerados em um projeto Xamarin.Android podem ser muito longos. Por exemplo, um caminho como o seguinte pode ser gerado durante um build:

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

No Windows (em que o comprimento máximo de um caminho é de 260 caracteres), um PathTooLongException pode ser produzido durante a criação do projeto se um caminho gerado exceder o comprimento máximo.

Fix

A UseShortFileNames propriedade MSBuild é definida como True para contornar esse erro por padrão. Quando essa propriedade é definida como True, o processo de build usa nomes de caminho mais curtos para reduzir a probabilidade de produzir um PathTooLongException. Por exemplo, quando UseShortFileNames é definido como True, o caminho acima é encurtado para o caminho semelhante ao seguinte:

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

Para definir essa propriedade manualmente, adicione a seguinte propriedade MSBuild ao arquivo .csproj do projeto:

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

Se a configuração desse sinalizador não corrigir o erro PathTooLongException , outra abordagem será especificar uma raiz de saída intermediária comum para projetos em sua solução definindo IntermediateOutputPath no arquivo .csproj do projeto. Tente usar um caminho relativamente curto. Por exemplo:

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

Para obter mais informações sobre como definir propriedades de build, consulte Processo de build.