【问题标题】:Visual Studio unknown build error. The fully qualified name must be less than 260 charactersVisual Studio 未知生成错误。完全限定名称必须少于 260 个字符
【发布时间】:2012-07-11 03:54:18
【问题描述】:

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

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

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

【问题讨论】:

标签: visual-studio-2010 build


【解决方案1】:

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

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

【讨论】:

  • 有什么办法可以避免那个 MAX_PATH?
  • 为我工作,当存储解决方案的文件夹名称太长时也会发生。谢谢!
【解决方案2】:

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

您只需更改项目文件夹的位置...将您的项目“myproject”放入 D:\myproject 或 F:\myproject 驱动器。然后您再次发布..它的工作...

快乐编码...

【讨论】:

  • 这不会破坏任何相关引用吗?
【解决方案3】:

构建定义工作区“构建代理文件夹位置”存在问题 VS 添加路径示例: $(SourceDir)E:\Somedirectory\ProjectName\ 只需保留 $(SourceDir) 归档

【讨论】:

    【解决方案4】:

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

    如果您转到这些文件夹:

    C:\Windows\Microsoft.NET\Framework

    C:\Windows\Microsoft.NET\Framework64

    C:\Users\[用户名]\AppData\Local\Temp

    找到您在解决方案中使用的 .NET 版本,然后从您认为影响构建的版本中删除“临时 ASP.NET 文件”文件夹。

    您可以将它们全部删除,您下一次构建 Web 项目可能需要更长的时间,因为不会有预编译的程序集...

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

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

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

    • 打开 Powershell

    • cd <path to solution root>

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

    这会将路径 > 260 的文件列表传送到 output.txt 文件,该文件将在您的解决方案的根目录中新创建。

    这将帮助您找到解决方案中过长的文件。

    【讨论】:

      【解决方案5】:

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

      Windows 8.1 和 10 可以选择增加 Win32 路径限制:

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

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

      更多参考请参见此处 - https://www.microfocus.com/documentation/filr/filr-4/filr-desktop/t47bx2ogpfz7.html

      【讨论】:

      • 我的Windows 10家庭版系统下没有FileSystem文件夹?
      • 是的,它不是文件路径。如我在第一个要点中所述,打开组策略编辑器,它将提供您可以导航的文件夹结构(它与 Windows 文件夹结构不匹配)。我将更改我的答案以明确这一点。
      • 这应该是 windows 10 和 server 16+ 上公认的解决方案。
      • gpedit 仅适用于 Windows 10 专业版和企业版。除此之外,Visual Studio 2019(社区、专业、企业)的任何一个版本似乎都不支持长路径,即使您在 Windows 中启用它...
      • 您可以添加此链接以供参考:microfocus.com/documentation/filr/filr-4/filr-desktop/…
      【解决方案6】:

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

      【讨论】:

      • 没有对我有用。我使用组策略编辑器启用了长路径,并验证此注册表项设置为 1,但 Visual Studio 2017 仍然继续抱怨我的路径长度:-(
      • @Dave.Haku 你尝试重启了吗?如果是这样,我就是我们的想法
      【解决方案7】:

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

      VS 2019

      • 打开run窗口(windows-key + r),然后输入regedit并回车。
      • 在注册表编辑器的地址栏上输入: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 项目,它应该可以工作了。

      【讨论】:

        猜你喜欢
        • 2012-04-30
        • 2011-02-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-11
        • 2016-02-03
        • 2014-05-11
        • 1970-01-01
        • 2014-09-23
        相关资源
        最近更新 更多