如何解决 PathTooLongException 错误?

原因

Xamarin.Android 项目中生成的路径名可能很长。 例如,可能会在构建过程中生成如下路径:

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

在 Windows 上(路径的最大长度为 260 个字符),如果生成的路径超过最大长度,则在构建项目时可能会生成 PathTooLongException

Fix

默认情况下,将 UseShortFileNames MSBuild 属性设置为 True 以规避此错误。 如果将此属性设置为 True 时,构建过程将使用较短的路径名称来减少生成 PathTooLongException 的可能性。 例如,将 UseShortFileNames 设置为 True 时,以上路径将缩短为类似以下的路径:

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>

有关设置生成属性的更多信息,请参阅生成过程