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 True
festgelegt ist, verwendet der Buildprozess kürzere Pfadnamen, um die Wahrscheinlichkeit zu verringern, dass eine PathTooLongException erzeugt wird.
Wenn UseShortFileNames
z. B. auf True
festgelegt 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.