VisualStudio PathTooLongException

时间:2019-07-04 13:24:29

标签: visual-studio pathtoolongexception

我在Visual Studio中遇到了问题-2017 Pro和2019 Pro。如果尝试打开解决方案,则会出现此错误:

enter image description here

VS2019中的错误消息有些不同,但含义相同。当我调查ActivityLog文件时,关于此问题只有一个有趣的节点:

System2:~ user $ ls -laO /Library/StagedExtensions/
total 0
drwxr-xr-x@  3 root  wheel  -   96 Jun 27 15:15 .
drwxr-xr-x+ 62 root  wheel  sunlnk     1984 Jul  3 12:24 ..
drwxr-xr-x   4 root  wheel  -  128 Jul  4 16:15 Library

在System.IO.Path.LegacyNormalizePath(字符串路径,布尔型FullCheck,Int32

<entry>
<record>698</record>
<time>2019/07/03 08:14:00.064</time>
<type>Error</type>
<source>Editor or Editor Extension</source>
<description>System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.&#x000D;&#x000A;

有什么方法可以准确地找出错误的路径吗? 我怀疑是SpecFlow addid导致了此问题。但是,如果我禁用此插件,则没有任何改变。

另一个队友在使用相同的解决方案时没有这个问题。

3 个答案:

答案 0 :(得分:0)

我以某种方式摆脱了此错误消息。我不知道如何操作,但请允许我分享我所做的步骤。

  1. 我开始一个一个地从解决方案中删除项目,以找出导致问题的项目。
  2. 一旦发现不良,我将还原GIT上的所有更改。

  3. 我对该项目中的文件和文件夹重复了这种方法。当我删除一些文件并重新启动VS后,问题消失了。

  4. 再次还原了GIT上的所有更改。

  5. Voila,该错误是2017年和2019年的历史记录。SLN或CSPROJ文件中没有任何更改。

答案 1 :(得分:0)

由于我的路径很长,因此我也遇到了其中一些PathTooLongExceptions。 这是。 VS项目使用相对路径的情况。 显然,缩短路径可以解决很多问题。

但是在对开发环境进行耗时的全面检查之前,您可以做一些事情:

  1. 使用符号链接或路径较短的结点(例如mklink / J M.E.D.A Microsoft.Extensions.DependencyInjection.Abstractions)并在您的项目文件中使用它们
  2. 使用绝对路径:相对路径可能在幕后变得很长,因为Visual Studio可能会引用%(FullPath),而它会迅速超过260个字符。

以上内容解决了我的问题。

答案 2 :(得分:-2)

从MS-DOS继承的Windows,使用简单API时最大路径长度非常短。许多应用程序都为此大小固定了缓冲区–寻找MAX_PATH –因此没有简单的方法来延长时间。当10 MB是典型的HDD大小时,则为248个字符。

NTFS和Win32可以支持更长的路径(2 15 -1个字符),但是需要以正确的方式使用API​​。许多人甚至积极开发的人都没有。

我怀疑Visual Studio(即使是最新版本,更不用说所有扩展了)是否已完全更新以处理长路径。

请确认您避免在解决方案的根部走很长的路(Visual Studio的默认项目位置在此处无济于事)。