2016-01-05 109 views
0

当使用适用于Visual Studio的节点工具(v1.1,不再使用RC)构建/调试Node项目时,突然出现此错误。我使用的是Visual Studio Community Edition 2015。我使用Typescript,也有当前最新版本的Typescript,例如v1.7.6。“AssignTargetPath”任务意外失败

错误:

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. 

当检查问题似乎涉及与节点/ NPM的最大路径问题interwebs。 http://visual2073.rssing.com/chan-25873606/all_p116.html https://nodejstools.codeplex.com/workitem/759 https://nodejstools.codeplex.com/workitem/1340

回答

1

我花了一段时间找出来,但朋友建议从NPM 2迁移到3。下面的一些细节让其他人不必经历那些可怕的非Stackoverflow论坛和这样的:)。

问题WAS与Windows MaxPath有关。最后我设法解决了这个问题

  • 从npm 2升级到npm 3.对于Windows用户check here
  • 然后当然删除所有NPM包在我的项目rm -r node_modules
  • ,然后重新安装它们(npm install)。

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

正如你可能看到我在git bash中工作。不知何故,git bash中的版本pf npm仍然在v2上,而正常的命令promt(例如cmd)我已经有了v3。在bash,你还可以确认你确实遇到了一个问题,由于使用此命令最大路径:

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

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

相关问题