Таинственно провальная сборка sandcastle только при сборке TeamCity - PullRequest
1 голос
/ 02 января 2012

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

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

      [Sandcastle Help File Builder, version 1.9.3.0]
      Cached Resolve Reference  Links 2 Component.  Copyright © 2006-2011, Eric Woodruff, All Rights Reserved
      http://SHFB.CodePlex.com
  Info: CachedResolveReferenceLinksComponent: Loaded 61 cached MSDN URL entries
  Info: SaveComponent: Instantiating component.
  Info: BuildAssembler: Building topic N:MyProject
  Info: BuildAssembler: Building topic T:MyProject.ActionNotImplementedException
  Info: BuildAssembler: Building topic AllMembers.T:MyProject.ActionNotImplementedException
  Info: BuildAssembler: Building topic Methods.T:MyProject.ActionNotImplementedException
  Info: BuildAssembler: Building topic Properties.T:MyProject.ActionNotImplementedException
  Info: BuildAssembler: Building topic Overload:MyProject.ActionNotImplementedException.#ctor
  Info: BuildAssembler: Building topic M:MyProject.ActionNotImplementedException.#ctor
  Info: BuildAssembler: Building topic M:MyProject.ActionNotImplementedException.#ctor(System.String)
BUILDASSEMBLER : error : CachedCopyFromIndexComponent: An access error occured while attempting to load the file 'C:\Program Files (x86)\Sandcastle\Data\Reflection\mscorlib.xml'. The error message is: Could not find file 'C:\Program Files (x86)\Sandcastle\Data\Reflection\mscorlib.xml'. [C:\BuildAgent\work\37c2302839b8996f\Help\Output\Developer\Working\BuildReferenceTopics.proj]
    Last step completed in 00:02:31.3827
</buildStep>
<buildStep step="Failed">  

SHFB: Error BE0043: Unexpected error detected in last build step.  See output above for details.

</buildStep>
</shfbBuild>

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

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

1 Ответ

5 голосов
/ 19 января 2012

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

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

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

...