在VS19中发布错误"could not find a part of the path"的原因(错误:MSB3027,MSB3021)?



有几个问题发布,但我尝试了许多解决方案,但它并没有解决我的问题。

问题是当我发布我的ASP。NET Core 2.2项目,我得到了这个错误(为了更容易阅读而格式化(:

Unable to copy file "C:UserslfirstnameTFSdotnetProject NameProject NameDevLFirstnameBranchNameProject NameWebsitewwwrootlibjquery-validation-unobtrusivejquery.validate.unobtrusive.min.js"  

to  

"C:UserslfirstnameTFSdotnetProject NameProject NameDevLFirstnameBranchNameProject NameWebsiteobjReleasenetcoreapp2.2win-x64PubTmpOutwwwrootlibjquery-validation-unobtrusivejquery.validate.unobtrusive.min.js".  

Could not find a part of the path  

'C:UserslfirstnameTFSdotnetProject NameProject NameDevLFirstnameBranchNameProject NameWebsiteobjReleasenetcoreapp2.2win-x64PubTmpOutwwwrootlibjquery-validation-unobtrusivejquery.validate.unobtrusive.min.js'.

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

我设法绕过它的唯一方法是从我试图发布的分支中分支出来。然后,在新的分支机构中,出版业取得了成功。然而,这是一个不一致的修复方法,因为有一次我不得不再次从原始分支中分支出来,并且在发布新分支时也出现了类似的错误(这次除了jquery之外,它还挑选了一些其他文件(。

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

我尝试过的其他一些东西都不起作用:

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

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

Website -> C:UserslfirstnameTFSdotnetProject NameProject NameDevLFirstnameBranchNameProject NameWebsitebinReleasenetcoreapp2.2win-x64Website.dll
Website -> C:UserslfirstnameTFSdotnetProject NameProject NameDevLFirstnameBranchNameProject NameWebsitebinReleasenetcoreapp2.2win-x64Website.Views.dll
Website -> C:UserslfirstnameTFSdotnetProject NameProject NameDevLFirstnameBranchNameProject NameWebsiteobjReleasenetcoreapp2.2win-x64PubTmpOut
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/

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

第二版:我又遇到这个问题了。这一次,我注意到只有一个发布配置文件的配置设置遇到此错误。但在我的同事的机器上,相同的代码发布的配置很好。

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

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

文章注释

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

所以,如果你在工作机器上,通常不使用注册表,最好向上面的人寻求帮助。如果你需要自己解决这个问题,请格外小心。

最新更新