Visual Studio未知的构建错误。完全限定名称必须少于260个字符

时间:2012-07-11 13:52:57

标签: visual-studio-2010 build

我在构建WPF解决方案时遇到了麻烦。每次我尝试构建它时,都会收到以下错误消息:

  

未知的构建错误,'指定的路径,文件名或两者都是   长。完全限定的文件名必须少于260个字符,   目录名称必须少于248个字符。'

有人可以帮帮我吗?我已经验证了所有字段,并且它们的扩展路径都可以。这可能是TortoiseSVN或类似的问题吗?我最近在我的解决方案中添加了一个文件夹,可以用这个吗?

7 个答案:

答案 0 :(得分:26)

这是Windows win32 api中众所周知的限制。存储项目的目录嵌套得太深。文件的完整路径名不能超过259个字符。除此之外,许多使用MAX_PATH的C代码由于缓冲区溢出而开始失败。

将您的解决方案移动到另一个目录,一个更接近根目录的目录。

答案 1 :(得分:2)

不用担心....这个错误是因为路径名长,假设您的项目文件夹名称是" myproject"。

您只需更改项目文件夹的位置...放置您的项目" myproject"到D:\ myproject或者F:\ myproject drive.Then You Publish again..Its work ...

快乐编码......

答案 2 :(得分:2)

有些注册表方法至少可以用于Windows 10:
参数HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)的值应设置为1。 enter image description here 您甚至不需要顶部重新启动任何东西(IDE或PC)。

答案 3 :(得分:0)

构建定义工作区"构建代理文件夹位置" VS添加路径示例: $(SourceDir)E:\ Somedirectory \项目名\ 只需将$(SourceDir)保留在提交的

答案 4 :(得分:0)

我遇到了同样的问题。我的结帐路径比我的CI服务器上使用的路径短。它在CI服务器上构建好,并且所有同事都在机器上。我们的路径长度相同,因为我们公司有固定长度的用户名。由于路径较长,我是唯一无法构建解决方案的机器。

如果你去这些文件夹:

<强> C:\的Windows \ Microsoft.NET \框架

<强> C:\的Windows \ Microsoft.NET \ Framework64

<强> C:\ Users \ [用户名] \ AppData \本地\温度

找到您正在使用的解决方案的.NET版本,然后删除“Temporary ASP.NET Files”文件夹,您认为这些文件版本会影响您的版本。

你可以删除它们,你的下一个web项目构建可能需要更长的时间,因为没有预编译的程序集......

这个解决方案适用于包含ASP.NET项目的解决方案 - 它不会在其他人在答案中提到的WPF项目上工作,除非他们的解决方案还包含ASP.NET项目。

搜索错误字符串VS让你带我到这里,所以我认为它可能对其他人有帮助,如果不是带有WPF构建问题的操作。

如果这些失败 - 您可以尝试通过执行以下操作,以递归方式搜索解决方案根目录,查找路径大于260的文件/文件夹:

  • Open Powershell

  • cd <path to solution root>

  • cmd /c dir /s /b |? {$_.length -gt 260} > output.txt

这将管道包含路径&gt;的文件列表260到output.txt文件,它将在您的解决方案的根目录中新创建。

这将帮助您在解决方案中查找太长的文件。

答案 5 :(得分:0)

我遇到了类似的问题,编译器报告文件ASPNETCOMPILER存在问题。实际问题是该解决方案包含一个node_modules文件夹,该文件夹可能包含非常冗长的路径,看起来编译器无法处理此问题。

Windows 8.1和10有一个增加Win32路径限制的选项:

  • 打开组策略编辑器(按Windows + R并键入gpedit.msc并按Enter键)
  • 从“组策略编辑器”窗口中,导航到以下节点:本地计算机策略\计算机配置\管理模板\系统\文件系统
  • 双击“启用Win32长路径”选项并启用它。

这可能允许您暂时将问题文件夹移出构建,这可能允许您成功构建,然后您可以将文件夹添加回解决方案而不会影响任何内容。

答案 6 :(得分:0)

此问题是由于 Windows 操作系统对处理长度大于 260 的长路径的限制引起的。VS2019 的此问题的解决方案非常简单。但是,对于 VS2017 用户,我们可以使用一种解决方法来解决问题。

VS 2019

  • 打开 run 窗口(windows-key + r),然后输入 regedit 并按 Enter。
  • 在注册表编辑器的地址栏中,输入:HKLM\SYSTEM\CurrentControlSet\Control\FileSystem
  • 在右侧,找到键 LongPathsEnabled,双击它,将值从 0 更改为 1
  • 重新启动 VS2019,清理(如果需要)并再次构建您的项目。应该修复错误。

一般解决方法 (VS2017/VS2019)

我们可以创建一个将原始较长路径连接到较短路径的链接。然后,VS会将较短的路径视为项目根目录,问题就解决了。

  • 为项目创建一个较短的根路径,例如我们已经创建了 "D:\project" 目录
  • 现在打开 cmd(命令提示符)并使用以下命令创建符号链接:mklink /D "D:\project\myProject" "YOUR_ACTUAL_LONG_PATH_PROJECT_ROOT_DIRECTORY" [如果上述命令执行失败,您可能需要以管理员身份打开 cmd]
  • 现在,从 "D:\project\myProject" 目录打开 VS 项目,它应该可以工作了。