在 VS19 中发布错误“无法找到路径的一部分”的原因(错误:MSB3027、MSB3021)?

Luk*_*kas 1 visual-studio asp.net-core

有几个与此相关的问题,但我尝试了许多解决方案,但它没有解决我的问题。

问题是当我发布 ASP.NET Core 2.2 项目时,出现此错误(为了便于阅读而进行了格式化):

Unable to copy file "C:\Users\lfirstname\TFS\dotnet\Project Name\Project Name\Dev\LFirstname\BranchName\Project Name\Website\wwwroot\lib\jquery-validation-unobtrusive\jquery.validate.unobtrusive.min.js"  
 
to  
 
"C:\Users\lfirstname\TFS\dotnet\Project Name\Project Name\Dev\LFirstname\BranchName\Project Name\Website\obj\Release\netcoreapp2.2\win-x64\PubTmp\Out\wwwroot\lib\jquery-validation-unobtrusive\jquery.validate.unobtrusive.min.js".  
 
Could not find a part of the path  
 
'C:\Users\lfirstname\TFS\dotnet\Project Name\Project Name\Dev\LFirstname\BranchName\Project Name\Website\obj\Release\netcoreapp2.2\win-x64\PubTmp\Out\wwwroot\lib\jquery-validation-unobtrusive\jquery.validate.unobtrusive.min.js'.
Run Code Online (Sandbox Code Playgroud)

在发布输出中,我收到警告 MSB3026、错误 MSB3027 和 MSB3021。

我设法解决这个问题的唯一方法是从我试图发布的分支中分支出来。然后,在新的分支中,发布成功了。然而,这是一个不一致的修复,因为在某一时刻我不得不再次从原始分支中分支出来,并且在发布新分支时我遇到了类似的错误(这次除了 jquery 之外还选择了一些其他文件)。

我想知道为什么会发生这种情况以及为什么分支(有时)可以解决它?

我尝试过的其他一些方法不起作用:

  • 清洁重建项目及解决方案
  • 重启VS和PC
  • 删除解决方案中的obj和文件夹bin
  • 删除项目的本地副本(及其父文件夹)并获取最新的 TFS
  • 创建新的发布配置文件

编辑:当我创建一个新分支时,它发布成功并且输出如下

Website -> C:\Users\lfirstname\TFS\dotnet\Project Name\Project Name\Dev\LFirstname\BranchName\Project Name\Website\bin\Release\netcoreapp2.2\win-x64\Website.dll
Website -> C:\Users\lfirstname\TFS\dotnet\Project Name\Project Name\Dev\LFirstname\BranchName\Project Name\Website\bin\Release\netcoreapp2.2\win-x64\Website.Views.dll
Website -> C:\Users\lfirstname\TFS\dotnet\Project Name\Project Name\Dev\LFirstname\BranchName\Project Name\Website\obj\Release\netcoreapp2.2\win-x64\PubTmp\Out\
Web App was published successfully file:///C:/Users/lfirstname/TFS/dotnet/Project%20Name/Project%20Name/Dev/LFirstname/BranchName/Project%20Name/Website/bin/Release/netcoreapp2.2/publish/
Run Code Online (Sandbox Code Playgroud)

只是想说,我注意到第三行开始失败,并给我关于无法复制 jquery js 文件的错误。

编辑2:我再次遇到这个问题。这次我注意到只有发布配置文件的配置设置之一遇到此错误。但在我同事的机器上,相同的代码可以很好地配置配置。

Luk*_*kas 5

在很多人的帮助下,我终于知道问题出在哪里了。由于项目位置和某些JS库的原因,部分文件路径超过260个字符(Windows 10的限制),导致部分文件发布失败。

解决方案是让 Windows 10 接受超过 260 个字符的文件路径

文章的注释

标准警告:注册表编辑器是一个功能强大的工具,滥用它可能会使您的系统不稳定甚至无法运行。

因此,如果您在工作计算机上并且通常不使用注册表,那么最好向上面的人寻求帮助。如果您需要自己解决此问题,请格外小心。