在使用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
答案 0 :(得分:1)
我花了一些时间才发现,但朋友建议从2点到3点迁移。下面是一些细节,所以其他人不必经历那些可怕的非Stackoverflow论坛等等:)。
问题WAS与Windows MaxPath有关。最后我设法通过
解决了这个问题rm -r node_modules
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气质。在尝试更激烈的操作之前,可能值得重新启动该程序。