Freigeben über


Gewusst wie einen PathTooLongException-Fehler beheben?

Ursache

Generierte Pfadnamen in einem Xamarin.Android-Projekt können sehr lang sein. Beispielsweise kann während eines Builds ein Pfad wie der folgende generiert werden:

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

Unter Windows (wobei die maximale Länge für einen Pfad 260 Zeichen beträgt) kann beim Erstellen des Projekts eine PathTooLongException erstellt werden, wenn ein generierter Pfad die maximale Länge überschreitet.

Fix

Die UseShortFileNames MSBuild-Eigenschaft ist auf True festgelegt, um diesen Fehler standardmäßig zu umgehen. Wenn diese Eigenschaft auf Truefestgelegt ist, verwendet der Buildprozess kürzere Pfadnamen, um die Wahrscheinlichkeit zu verringern, dass eine PathTooLongException erzeugt wird. Wenn UseShortFileNames z. B. auf Truefestgelegt ist, wird der obige Pfad in Pfad gekürzt, der dem folgenden ähnelt:

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

Um diese Eigenschaft manuell festzulegen, fügen Sie der CSPROJ-Projektdatei die folgende MSBuild-Eigenschaft hinzu:

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

Wenn das Festlegen dieses Flags den PathTooLongException-Fehler nicht behebt, besteht ein anderer Ansatz darin, einen allgemeinen Zwischenausgabestamm für Projekte in Ihrer Projektmappe anzugeben, indem Sie in der CSPROJ-Projektdatei festlegenIntermediateOutputPath. Versuchen Sie, einen relativ kurzen Pfad zu verwenden. Beispiel:

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

Weitere Informationen zum Festlegen von Buildeigenschaften finden Sie unter Buildprozess.