Ошибка сборки TFS - "Указанный путь, имя файла или оба слишком длинные..."

Я пишу пользовательские действия шаблона процесса сборки. Я получил следующую проблему, когда строю деятельность.

>XamlBuildTask : error XC1043: Extension 'Microsoft.Activities.Build.BeforeInitializeComponentExtension' threw an exception of type 'System.IO.PathTooLongException' :  '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.'.

Есть ли у вас какие-либо идеи? Пожалуйста помоги!

2 ответа

Решение

Я нахожу один совет здесь. Надеюсь, что это может быть полезно для вас.

В настоящее время существует два обходных пути:

Уменьшите пространство имен в рабочем потоке x: свойство Class. Это делает сгенерированный файл с более коротким именем.

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

Это все еще происходит в 2015 году TFS

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

  1. Диалоговое окно свойств агента сборки определяет "Рабочий каталог" для агента сборки, по умолчанию используется значение "$(SystemDrive)\Builds\$(BuildAgentId)\$(BuildDefinitionPath)". Основываясь на приведенной выше ссылке, я собираюсь перейти с "$ (SystemDrive) \ B \ $ (BuildDefinitionId)" - это должно убрать "uilds" из базового каталога, имя проекта TFS (19 символов), обратную косую черту и имя сборки (7 символов), и замените их просто 32-битным числом (которое должно быть не более 10 цифр, но поскольку оно начинается с 1, оно, скорее всего, будет 3-4 цифрами), сэкономив мне минимум 23 символа
  2. Возможно, мне не удалось сократить $(SourceDir), но это просто "$(BuildDir)\Sources", верно? Я могу просто настроить сборку так, чтобы она перетаскивала код в "$ (BuildDir) \ S" вместо "$ (SourceDir)", и мне нужно сохранить еще 6 символов, что даст мне 29 сохраненных символов, чего должно быть достаточно
Другие вопросы по тегам