Задача "AssignTargetPath" неожиданно завершилась неудачей
Я неожиданно получил эту ошибку при сборке / отладке моего Node-проекта с помощью Node Tools for Visual Studio (v1.1, больше не RC). Я использовал 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.
При проверке взаимосвязей проблемы, похоже, связаны с проблемой MAXPATH с Node / npm. 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. . Ниже приведены некоторые подробности, чтобы другим не пришлось проходить через эти ужасные форумы, не связанные с Stackru, и тому подобное:).
Проблема была связана с Windows MaxPath. В конце концов мне удалось это исправить
- обновление с npm 2 до npm 3. Для пользователя Windows проверьте здесь.
- а затем, конечно, удалив все пакеты npm в моем проекте
rm -r node_modules
- а затем переустановить их (
npm install
).
В npm3
им удалось иметь более плоские структуры папок. Хотя недостатком этого может быть то, что команда npm указала, что он все еще находится в бета-версии, и что для реальной стабильности и миграции вам придется подождать до npm4. Я не знаю достаточно о специфике. Во всяком случае, у меня работает npm3.
Как вы могли заметить, я работал в git bash. Каким-то образом версия pf npm в git bash все еще была на v2, в то время как обычная командная строка (например, cmd
) У меня уже был v3. В bash вы также можете подтвердить, что у вас действительно есть проблема из-за MAXPATH с помощью этой команды:
(find | awk '{ print length(), NR, $0 | "sort -rn" }' | less)
Вы попали в (менее) редактор. Проверьте первый столбец / число, строки упорядочены по длине, поэтому просто проверьте первую строку. Длина должна быть ниже 260. Выйдите из редактора с помощью :q
:). Обратите внимание, что вы должны добавить длину базового пути самостоятельно, так как указана длина в текущей папке. Возможно, мастер bash может предоставить лучшую команду.
У меня все еще возникает та же проблема в VS 2019, но затем, если я закрою и снова открою ее, проблема исчезнет на некоторое время, и я могу построить свой проект, но затем через некоторое время он вернется, и я должен закрыть и снова открыть еще раз. Если у вас возникла проблема, возможно, VS был темпераментным. Возможно, стоит перезапустить программу, прежде чем пытаться что-то более серьезное.