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.