TFS 2010 - Произошла ошибка при копировании: Path too long

У нас есть проект ASP.NET MVC, из которого мы хотим создать пакет для публикации во время автоматизированной сборки. Сборка использует немодифицированный шаблон по умолчанию с Arguments /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 символов, так что все должно быть в порядке.

Теперь проблема заключается в пути к папке drop, хотя корневой путь сам по себе не такой длинный \\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), чтобы сэкономить несколько символов, но этого недостаточно. Я думаю, мы могли бы немного сократить имя сборки, но это нарушило бы используемое соглашение об именовании (хорошо, это не было бы действительно большой проблемой, но это было бы раздражающим!), и все же это было бы похоже на краткосрочное решение.

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

20
задан Dylan Smith 11 October 2013 в 10:32
поделиться