次の方法で共有


PathTooLongException エラーを解決する方法

原因

Xamarin.Android プロジェクトで生成されるパス名は、非常に長くなることがあります。 たとえば、ビルド中に次のようなパスが生成される可能性があります。

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

Windows の場合 (パスの最大長は 260 文字)、生成されたパスが最大長を超えた場合、プロジェクトをビルドするときに、PathTooLongException が発生する可能性があります。

固定

既定でこのエラーを回避するため、UseShortFileNames MSBuild プロパティは True に設定されています。 このプロパティが True に設定されている場合、ビルド プロセスでは短いパス名が使用されて、PathTooLongException が発生する可能性は低くなります。 たとえば、UseShortFileNamesTrue に設定されていると、上記のパスは次のようなパスに短縮されます。

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

このプロパティを手動で設定するには、次の MSBuild プロパティをプロジェクトの .csproj ファイルに追加します。

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

このフラグを設定しても PathTooLongException エラーが解決しない場合は、別の方法として、プロジェクトの .csproj ファイルで IntermediateOutputPath を設定し、ソリューションのプロジェクトに対して共通中間出力ルートを指定します。 比較的短いパスを使用してください。 次に例を示します。

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

ビルド プロパティの設定について詳しくは、「ビルド プロセス」を参照してください。