Подтвердить что ты не робот

TFS 2010 - Ошибка при копировании: слишком длинный путь

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

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

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

TF270002: произошла ошибка при копировании файлов из "C:\Builds\19\Binaries" в '\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), чтобы сохранить несколько символов, но этого недостаточно. Я думаю, мы могли бы немного сократить имя сборки, но это нарушит соглашение об именовании (хорошо, это не будет большой проблемой, но это будет раздражать!), И все же это будет похоже на краткосрочное решение.

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

4b9b3361

Ответ 1

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

Например, вместо \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