在不搬迁的情况下解决 xamarin android "path too long"
resolve xamarin android "path too long" without relocation
我最近开始在 xamarin.forms
中的 xamarin android 项目中收到错误 ResolveLibraryProjectImports: PathTooLongException
。当我在网上查找时,所有解决方案都说要重新定位项目。有什么方法可以更改项目属性或重新映射可以帮助我避免重新定位整个项目的方法吗?
更新:
由于赏金和下面出现的问题,这就是为什么我正在寻找搬迁的替代解决方案:
目录层次结构的存在是有原因的。如果不是每个人都会有一大堆文件夹的根目录。它们旨在让我们组织一切。我的情况也一样。我已经组织了所有基于云、代码、框架等的文件夹。在我使用过的所有框架中,我从来没有因为项目的内部要求而重新定位一个项目。所以,我看不出有什么理由需要将一个项目从所有这些文件夹中移出(这也意味着从云中移出)并将它们放在与其他项目分开的某个位置,只是因为项目需要它。
我以前遇到过同样的问题,这是我发现的:
Windows 具有 最大路径长度限制 。您可以在 Windows Naming Files, Paths, and Namespaces 中看到它:
Maximum Path Length Limitation In the Windows API (with some exceptions discussed in the following paragraphs), the maximum length for a path is MAX_PATH, which is defined as 260 characters. A local path is structured in the following order: drive letter, colon, backslash, name components separated by backslashes, and a terminating null character. For example, the maximum path on drive D is "D:\some 256-character path string" where "" represents the invisible terminating null character for the current system codepage. (The characters < > are used here for visual clarity and cannot be part of a valid path string.) This is the reason why you have the issue.
您可以缩短项目的目录路径来解决此问题,另一种解决方案是使用长路径工具。但是作为 PierceBoggan said :
the easiest way to avoid this issue is to move your source to the C:/ drive (or another location with fewer characters in the path).
更新:
此问题已在 Xamarin.Android 8.0.2.1
中修复,此版本包含在 Visual Studio 2017 版 15.4.2 版本中。您可以阅读此文档:
https://developer.xamarin.com/releases/android/xamarin.android_8/xamarin.android_8.0/#Issues_Fixed
我也遇到过这个问题。将 VS 2017 更新到 15.4.0 为我修复了它。将它移近 C:\ 并没有改变任何东西。
即使将我的项目移动到驱动器的根目录时,我也遇到了这个问题。但是,在将 Visual Studio 更新到最新版本 (15.7.0) 后,更改存档输出目录的选项已添加到 IDE:
Tools --> Options--> Android Settings : Archives Location
通过将此位置设置为尽可能靠近驱动器根目录的目录(例如 D:\Archives),此错误将消失。
从字面上看,我尝试构建的每个新 Xamarin Forms 项目都会在 Android 项目上第一次遇到 MAXPATH 错误(因为我的默认项目 Github 文件夹路径已经很长)。
我有一个简单而常规的修复程序,对我来说 100% 的时间都对我有用,因为在我的情况下,罪魁祸首是中间或 [obj] 文件夹。
试试这个:在记事本中打开 .csproj 文件。确保它是 Android 项目的 .csproj。在第一个 <PropertyGroup>
标签下添加此元素:
`<BaseIntermediateOutputPath>C:/Intermediate/Android/YourProjectName</BaseIntermediateOutputPath>`
现在只需重新加载项目并再次尝试构建。希望这对您有所帮助!
我最近开始在 xamarin.forms
中的 xamarin android 项目中收到错误 ResolveLibraryProjectImports: PathTooLongException
。当我在网上查找时,所有解决方案都说要重新定位项目。有什么方法可以更改项目属性或重新映射可以帮助我避免重新定位整个项目的方法吗?
更新:
由于赏金和下面出现的问题,这就是为什么我正在寻找搬迁的替代解决方案:
目录层次结构的存在是有原因的。如果不是每个人都会有一大堆文件夹的根目录。它们旨在让我们组织一切。我的情况也一样。我已经组织了所有基于云、代码、框架等的文件夹。在我使用过的所有框架中,我从来没有因为项目的内部要求而重新定位一个项目。所以,我看不出有什么理由需要将一个项目从所有这些文件夹中移出(这也意味着从云中移出)并将它们放在与其他项目分开的某个位置,只是因为项目需要它。
我以前遇到过同样的问题,这是我发现的:
Windows 具有 最大路径长度限制 。您可以在 Windows Naming Files, Paths, and Namespaces 中看到它:
Maximum Path Length Limitation In the Windows API (with some exceptions discussed in the following paragraphs), the maximum length for a path is MAX_PATH, which is defined as 260 characters. A local path is structured in the following order: drive letter, colon, backslash, name components separated by backslashes, and a terminating null character. For example, the maximum path on drive D is "D:\some 256-character path string" where "" represents the invisible terminating null character for the current system codepage. (The characters < > are used here for visual clarity and cannot be part of a valid path string.) This is the reason why you have the issue.
您可以缩短项目的目录路径来解决此问题,另一种解决方案是使用长路径工具。但是作为 PierceBoggan said :
the easiest way to avoid this issue is to move your source to the C:/ drive (or another location with fewer characters in the path).
更新:
此问题已在 Xamarin.Android 8.0.2.1
中修复,此版本包含在 Visual Studio 2017 版 15.4.2 版本中。您可以阅读此文档:
https://developer.xamarin.com/releases/android/xamarin.android_8/xamarin.android_8.0/#Issues_Fixed
我也遇到过这个问题。将 VS 2017 更新到 15.4.0 为我修复了它。将它移近 C:\ 并没有改变任何东西。
即使将我的项目移动到驱动器的根目录时,我也遇到了这个问题。但是,在将 Visual Studio 更新到最新版本 (15.7.0) 后,更改存档输出目录的选项已添加到 IDE:
Tools --> Options--> Android Settings : Archives Location
通过将此位置设置为尽可能靠近驱动器根目录的目录(例如 D:\Archives),此错误将消失。
从字面上看,我尝试构建的每个新 Xamarin Forms 项目都会在 Android 项目上第一次遇到 MAXPATH 错误(因为我的默认项目 Github 文件夹路径已经很长)。
我有一个简单而常规的修复程序,对我来说 100% 的时间都对我有用,因为在我的情况下,罪魁祸首是中间或 [obj] 文件夹。
试试这个:在记事本中打开 .csproj 文件。确保它是 Android 项目的 .csproj。在第一个 <PropertyGroup>
标签下添加此元素:
`<BaseIntermediateOutputPath>C:/Intermediate/Android/YourProjectName</BaseIntermediateOutputPath>`
现在只需重新加载项目并再次尝试构建。希望这对您有所帮助!