" AssignTargetPath"任务意外失败

时间:2016-01-05 12:41:35

标签: typescript npm visual-studio-2015 ntvs

在使用Visual Studio的Node Tools(v1.1,而不是RC)构建/调试我的Node项目时,我突然遇到此错误。我使用的是Visual Studio Community Edition 2015。我使用Typescript,并且还有当前最新版本的Typescript,例如v1.7.6。

错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Node.js Tools\Microsoft.NodejsTools.targets(119,5): error MSB4018: The "AssignTargetPath" task failed unexpectedly.
System.ArgumentException: Illegal characters in path.
at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
at System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String fullPath, Boolean checkForDuplicates, Boolean needFullPath)
at Microsoft.Build.Tasks.AssignTargetPath.Execute()
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()
Done building project "BuyCo.njsproj" -- FAILED.

Build FAILED.

检查互联网时,问题似乎与Node / npm的MAXPATH问题有关。 http://visual2073.rssing.com/chan-25873606/all_p116.html https://nodejstools.codeplex.com/workitem/759 https://nodejstools.codeplex.com/workitem/1340

2 个答案:

答案 0 :(得分:1)

我花了一些时间才发现,但朋友建议从2点到3点迁移。下面是一些细节,所以其他人不必经历那些可怕的非Stackoverflow论坛等等:)。

问题WAS与Windows MaxPath有关。最后我设法通过

解决了这个问题
  • 从npm 2升级到npm 3.对于Windows用户check here
  • 然后当然删除项目rm -r node_modules
  • 中的所有npm包
  • 然后重新安装它们(npm install)。

npm3中,他们设法拥有更平坦的文件夹结构。虽然它的一个缺点可能是npm团队已经表明它仍处于测试阶段,而且对于真正的稳定性和迁移,你必须等到npm4。我对细节知之甚少。无论如何npm3为我工作。

你可能会看到我在git bash工作。不知何故,git bash中的版本pf npm仍然在v2上,而正常的命令promt(例如cmd)我已经有了v3。在bash中,您还可以通过此命令确认您确实遇到了由MAXTPATH引起的问题:

(find | awk '{ print length(), NR, $0 | "sort -rn" }' | less)

你被放入(少)编辑器中。检查第一列/数字,行是按长度排序的,所以只需检查第一行。长度应低于260.使用:q :)退出编辑器。请注意,您应该自己添加基本路径长度,因为指示了当前文件夹中的长度。也许bash向导可以提供更好的命令。

答案 1 :(得分:0)

我在VS 2019中仍然遇到相同的问题,但是如果我关闭并重新打开它,问题会消失一阵子,我能够构建我的项目,但是过了一会儿它又必须关闭并重新打开。 如果您遇到问题,可能是VS气质。在尝试更激烈的操作之前,可能值得重新启动该程序。