Ошибка публикации TeamCity DNU из-за слишком длинного пути

Мой шаг публикации DNU не работает в TeamCity из-за того, что длина пути в конечном итоге выходит из-под контроля:

[14:35:29][Step 1/1] Using Package dependency Microsoft.Extensions.Configuration.FileProviderExtensions 1.0.0-rc1-final
[14:35:29][Step 1/1]     Source C:\Users\TFSSERVICE\.dnx\packages\Microsoft.Extensions.Configuration.FileProviderExtensions\1.0.0-rc1-final
[14:35:29][Step 1/1]     Target D:\TeamCity\buildAgent\work\31745f64510dfced\artifacts\Company.Auth.IdentityProvider\approot\packages\Microsoft.Extensions.Configuration.FileProviderExtensions\1.0.0-rc1-final
[14:35:29][Step 1/1] Using Package dependency Microsoft.Extensions.FileSystemGlobbing 1.0.0-rc1-final
[14:35:29][Step 1/1]     Source C:\Users\TFSSERVICE\.dnx\packages\Microsoft.Extensions.FileSystemGlobbing\1.0.0-rc1-final
[14:35:29][Step 1/1]     Target D:\TeamCity\buildAgent\work\31745f64510dfced\artifacts\Company.Auth.IdentityProvider\approot\packages\Microsoft.Extensions.FileSystemGlobbing\1.0.0-rc1-final
[14:35:29][Step 1/1] Error: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
[14:35:29][Step 1/1] Process exited with code 1
[14:35:29][Step 1/1] Step DNU publish (Command Line) failed

Я уже обновил путь агента правил проверки, чтобы корневой каталог проекта был ближе к каталогу агента сборки.

Возможное решение может заключаться в том, чтобы настроить выходные данные публикации ближе к корню диска. Однако этап сборки TeamCity DNU не поддерживает изменение выходного каталога. Кроме того, я буду нести ответственность за управление этим каталогом.

Идеальным решением было бы минимальное количество ручной настройки агента сборки, поскольку у меня их несколько.


person Benjamin Soddy    schedule 21.01.2016    source источник


Ответы (3)


Мы (команда ASP.NET) используем TeamCity и достигли предела пути в Windows. К сожалению, это было вызвано путем node.js, и мы не можем его контролировать, поэтому нам пришлось переместить рабочий каталог ближе к корню диска. Прямо сейчас находится в D:\ba (ba = агент сборки).

Итак, единственное решение, которое у меня есть для вас прямо сейчас, это попытаться приблизить проект к корню диска.

Команда публикации DNU работает правильно в Windows 10, но не в любой предыдущей версии Windows, включая Server 2012 R2. На данный момент я могу подозревать только черную магию чернокнижника (преобразование в пути NT и обратно?)

dnu должен работать на Win 7 (с последним SP), Win 2008 R2, Win 8, Win 2012, Win 10 и Win 2016 Server. Если у вас возникнут проблемы с определенной платформой, откройте сообщение об ошибке на Github (aspnet).

person Victor Hurdugaci    schedule 23.01.2016
comment
Я реализовал собственный выходной каталог в качестве временного решения, так как это было переломным моментом для нарушения длины пути. Приведение агента сборки ближе к корню диска является идеальным решением, но для установки, с которой я работаю, это будет более сложно, поскольку существуют устаревшие сборки, которые неправильно настроены. - person Benjamin Soddy; 25.01.2016
comment
Что касается публикации DNU, которая ведет себя странно в разных версиях Windows, то она была неуловимой. Некоторые из наших компьютеров с Windows 10 без проблем публикуют что-то с нарушением длины пути на другом компьютере. Однако машины с Windows 10 могут и будут иметь нарушение длины пути в какой-то момент. Скорее всего PEBKAC. - person Benjamin Soddy; 25.01.2016

Возможное решение — изменить конфигурацию агента сборки Team City, чтобы использовать более короткий путь для рабочей папки. то есть изменить

D:\TeamCity\buildAgent\work

Что-то вроде

D:\work

или даже

D:\w

person James Reed    schedule 21.01.2016

Вы можете поделиться папкой со специальным коротким именем.

Также здесь вы можете найти похожий вопрос с несколькими ответами.

person Lukasz Pyrzyk    schedule 21.01.2016