TFS 2010 - во время копирования произошла ошибка: слишком длинный путь - PullRequest
20 голосов
/ 09 февраля 2012

У нас есть проект ASP.NET MVC, из которого мы хотим создать пакет публикации во время автоматической сборки.В сборке используется неизмененный шаблон по умолчанию с аргументами /p:DeployOnBuild=True /p:CreatePackageOnPublish=True.

. Если я делаю WebDeploy напрямую с сервером, он работает нормально (если я изменяю / p: CreatePackageOnPublish на false), но я бы предпочел простосоздайте пакет, который я могу развернуть во время сборки Lab.

Сообщение об ошибке выглядит следующим образом:

TF270002: Произошла ошибка при копировании файлов из 'C: \ Builds \ 19 \Двоичные файлы 'to' \ nas \ Build \ Drop \ MyProject \ MyProject_Development.Test \ 20120209.1 '.Подробности: указанный путь, имя файла или оба они слишком длинные.Полное имя файла должно быть не более 260 символов, а имя каталога должно быть не более 248 символов.

Первая часть проблемы заключалась в том, что путь к папке сборки был слишком длинным (274 символа)но после изменения рабочего каталога с $(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath) на $(SystemDrive)\Builds\$(BuildDefinitionId) длина до 230 символов сокращается, поэтому все должно быть в порядке.

Теперь проблема заключается в пути в папке удаления, хотя сам по себе корневой путь не такой длинный \\nas\Build\Drop\MyProject, имя сборки и формат номера сборки быстро увеличиваются до длины MyProject_Development.Test\MyProject_Development.Test_20120208.1.После этого все их вложенные пути создают действительно глубокие структуры папок _PublishedWebsites\MyProject.Web_Package\Archive\Content\C_C\Builds\19\Sources\MyProject\Source\MyProject.Web\obj\Debug\Package\PackageTmp\Content\ui-lightness\Images\ui-bg_diagonals-thick_18_b81900_40x40.png.

Так есть ли способ обойти эту проблему?Я сократил формат номера сборки с $(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r) до $(Date:yyyyMMdd)$(Rev:.r), чтобы сохранить несколько символов, но этого недостаточно.Я думаю, мы могли бы немного сократить имя сборки, но это нарушило бы используемое соглашение об именах (хорошо, это не было бы действительно большой проблемой, но это было бы раздражающим!), И все же это было бы похоже на краткосрочное решение.

Что еще можно сделать?

1 Ответ

13 голосов
/ 09 февраля 2012

Короткий ответ: ограничение длины пути действительно раздражает, и вам придется потратить некоторое (больше) время на настройку структуры файлов / папок, чтобы эта работа работала.

Например, вместо\ nas \ Build \ Drop \ MyProject, просто выполните \ nas \ Build \ Drop (или \ nas \ Builds), так как имя проекта также содержится в имени сборки.

Выровняйте структуру папок в своих проектах (сделайтевам действительно нужна папка с исходным кодом в MyProject?).

Также, проголосуйте за предложение UserVoice для команды TFS, чтобы исправить ограничения длины пути: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2156195-fix-260-character-file-name-length-limitation

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...