Udostępnij za pomocą


Jak mogę usunąć błąd PathTooLongException?

Przyczyna

Nazwy ścieżek wygenerowanych w projekcie platformy Xamarin.Android mogą być dość długie. Na przykład ścieżka podobna do następującej może zostać wygenerowana podczas kompilacji:

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

W systemie Windows (gdzie maksymalna długość ścieżki to 260 znaków), można utworzyć wyjątek PathTooLongException podczas kompilowania projektu, jeśli wygenerowana ścieżka przekracza maksymalną długość.

Napraw

Właściwość UseShortFileNames MSBuild jest domyślnie ustawiona na True obejście tego błędu. Gdy ta właściwość jest ustawiona na Truewartość , proces kompilacji używa krótszych nazw ścieżek, aby zmniejszyć prawdopodobieństwo utworzenia elementu PathTooLongException. Jeśli na przykład UseShortFileNames ustawiono wartość True, powyższa ścieżka zostanie skrócona do ścieżki podobnej do następującej:

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

Aby ręcznie ustawić tę właściwość, dodaj następującą właściwość MSBuild do pliku .csproj projektu:

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

Jeśli ustawienie tej flagi nie spowoduje naprawienia błędu PathTooLongException, innym podejściem jest określenie typowego pośredniego katalogu wyjściowego dla projektów w rozwiązaniu przez ustawienie IntermediateOutputPath w pliku csproj projektu. Spróbuj użyć stosunkowo krótkiej ścieżki. Na przykład:

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

Aby uzyskać więcej informacji na temat ustawiania właściwości kompilacji, zobacz Proces kompilacji.