我在构建WPF解决方案时遇到了麻烦。每次我尝试构建它时,都会收到以下错误消息:
有人可以帮帮我吗?我已经验证了所有字段,并且它们的扩展路径都可以。这可能是TortoiseSVN或类似的问题吗?我最近在我的解决方案中添加了一个文件夹,可以用这个吗?未知的构建错误,'指定的路径,文件名或两者都是 长。完全限定的文件名必须少于260个字符, 目录名称必须少于248个字符。'
答案 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。
您甚至不需要顶部重新启动任何东西(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路径限制的选项:
这可能允许您暂时将问题文件夹移出构建,这可能允许您成功构建,然后您可以将文件夹添加回解决方案而不会影响任何内容。
答案 6 :(得分:0)
此问题是由于 Windows 操作系统对处理长度大于 260 的长路径的限制引起的。VS2019 的此问题的解决方案非常简单。但是,对于 VS2017 用户,我们可以使用一种解决方法来解决问题。
VS 2019
run
窗口(windows-key + r),然后输入 regedit
并按 Enter。HKLM\SYSTEM\CurrentControlSet\Control\FileSystem
LongPathsEnabled
,双击它,将值从 0
更改为 1
一般解决方法 (VS2017/VS2019)
我们可以创建一个将原始较长路径连接到较短路径的链接。然后,VS会将较短的路径视为项目根目录,问题就解决了。
"D:\project"
目录mklink /D "D:\project\myProject" "YOUR_ACTUAL_LONG_PATH_PROJECT_ROOT_DIRECTORY"
[如果上述命令执行失败,您可能需要以管理员身份打开 cmd]"D:\project\myProject"
目录打开 VS 项目,它应该可以工作了。