Таинственно провальная сборка sandcastle только при сборке TeamCity

У меня есть довольно большое решение, которое содержит два проекта документации, основанные на Sandcastle + Sandcastle Help File Builder (SHFB). Эти проекты правильно собираются из командной строки (msbuild project.shfb), а также с помощью бета-версии интеграции SHFB Visual Studio 2010.

Когда я запускаю сборку в TeamCity, я получаю загадочный сбой сборки в сборке документации. Журнал SHFB говорит это:

 [Sandcastle Help File Builder, версия 1.9.3.0]
      Ссылка в кэше Resolve Reference 2 Компонент.  Copyright © 2006-2011, Эрик Вудрафф, Все права защищены.
      http://SHFB.CodePlex.com
  Информация: CachedResolveReferenceLinksComponent: загружено 61 кэшированных записей URL-адресов MSDN
  Информация: SaveComponent: Создание компонента.
  Информация: BuildAssembler: Создание темы N: MyProject
  Информация: BuildAssembler: создание темы T:MyProject.ActionNotImplementedException
  Информация: BuildAssembler: создание темы AllMembers.T:MyProject.ActionNotImplementedException
  Информация: BuildAssembler: Создание темы Methods.T:MyProject.ActionNotImplementedException
  Информация: BuildAssembler: создание темы Properties.T:MyProject.ActionNotImplementedException
  Информация: BuildAssembler: Создание темы Перегрузка:MyProject.ActionNotImplementedException.# Ctor
  Информация: BuildAssembler: создание темы M:MyProject.ActionNotImplementedException.# Ctor
  Информация: BuildAssembler: создание темы M:MyProject.ActionNotImplementedException.# Ctor(System.String)
BUILDASSEMBLER: ошибка: CachedCopyFromIndexComponent: при попытке загрузить файл "C:\Program Files (x86)\Sandcastle\Data\Reflection\mscorlib.xml" произошла ошибка доступа. Сообщение об ошибке: Не удалось найти файл "C:\Program Files (x86)\Sandcastle\Data\Reflection\mscorlib.xml". [C:\BuildAgent\ работа \37c2302839b8996f\Help\Output\Developer\Working\BuildReferenceTopics.proj]
    Последний шаг завершен в 00:02:31.3827  

SHFB: ошибка BE0043: на последнем этапе сборки обнаружена непредвиденная ошибка. Смотрите вывод выше для деталей.

Конечно же, файла, который ищет Sandcastle (mscorlib.xml), там нет. Но сборка работает за пределами TeamCity, поэтому я бы пришел к выводу, что Sandcastle ищет этот файл только тогда, когда TeamCity включен. Итак, почему это вызывает только сбой в TeamCity, а не из командной строки в msbuild? Буду признателен за любые советы по устранению неполадок, потому что я вне вдохновения.

Пояснение (спасибо @Sayed): Агент сборки TeamCity - это тот же компьютер, на котором я могу успешно запустить сборку из командной строки, так что это тот же компьютер для всего, что упомянуто выше. Сервер TeamCity - это другой компьютер, но он не участвует в сборке.

1 ответ

Решение

Сегодня я столкнулся с той же проблемой, и в конце концов мне удалось ее решить: вам просто нужно удалить файлы кэша в %USERPROFILE%\AppData\Local\EWSoftware\Sandcastle Help File Builder\Cache папка.

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

В моем случае, я думаю, это потому, что файлы кэша были сгенерированы с более старой версией SHFB и не были совместимы с новой версией.

Другие вопросы по тегам