2012-01-02 3 views
1

나는 다소 큰 솔루션을 가지고 있습니다.이 솔루션에는 Sandcastle + Sandcastle Help File Builder (SHFB) 기반의 두 가지 문서 프로젝트가 있습니다. 이 프로젝트는 모두 명령 줄 (msbuild project.shfb)에서 올바르게 빌드되며 베타 버전의 SHFB Visual Studio 2010 통합을 사용합니다.Teamcast에서 빌드했을 때만 신비하게 실패한 sandcastle 빌드

TeamCity에서 빌드를 실행하면 문서 빌드 내에서 신비한 빌드 오류가 발생합니다. 물론 충분히

  [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>

, 샌드캐슬은 (mscorlib.xml)를 찾고 파일이없는 경우 : SHFB 로그이 말한다. 그러나 TeamCity 외부에서 작동하므로 Teamcast가 onvolved 인 경우 Sandcastle은 해당 파일에 대해 인 것으로 보입니다.입니다. 그래서, 왜 이것이 TeamCity에서만 실패하고 msbuild 내의 명령 줄에서는 실패하지 않습니까? 내가 영감을 잃어서 문제 해결에 도움이 될만한 점이 있으면 고맙겠습니다.

설명 (thanks @ Sayed) : TeamCity 빌드 에이전트는 명령 행 빌드를 successfulyl 실행할 수있는 컴퓨터와 동일하므로 위의 모든 것에 대해 동일한 컴퓨터입니다. TeamCity Server는 다른 컴퓨터이지만 빌드에는 아무런 영향을 미치지 않습니다.

+0

"하지만 빌드는 TeamCity 외부에서 작동하므로 TeamCity가 켜져있을 때만 Sandcastle이 해당 파일을 찾고 있다고 결론을 내릴 수 있습니다." 그러면 Team City가 사용하는 것과 동일한 컴퓨터에서 작동한다는 의미입니까? –

+0

@Sayed - 네, 미안 해요. TeamCity 빌드 에이전트는 수동 빌드가 올바르게 작동하는 컴퓨터와 동일합니다. 이를 반영하기 위해 질문을 업데이트 할 것입니다. –

+0

그게 재미있어. 명령 줄에서 msbuild.exe를 호출 할 때/fl을 사용하여 로그를 만들 수 있으면 TC 로그와 대조하여 다른 것을 확인해야합니다. 당신이 그것을 이해하지 못한다면 나에게 로그를 보내고 나는 볼 수있다. 트위터 SayedIhashimi에서 저를 핑 (ping)하십시오. –

답변

5

오늘 같은 문제가 발생하여 결국 해결할 수있었습니다. %USERPROFILE%\AppData\Local\EWSoftware\Sandcastle Help File Builder\Cache 폴더의 캐시 파일 만 삭제하면됩니다.

(참고 : 문제가 인 TeamCity 관련이 있기 때문에, 아마도 파일 대신 인 TeamCity 데이터 폴더에있는) 내 경우

, 내가 캐시 파일이 SHFB의 이전 버전으로 생성 된했기 때문에 그것은 생각 , 새 버전과 호환되지 않았습니다.

+0

흠, 내 TeamCity 빌드 에이전트가 LocalSystem으로 실행되므로 어디서나 EWSoftware 폴더를 찾을 수 없습니다. LocalSystem 사용자의 AppData 폴더가 어디에 있는지 궁금합니다. –

+0

@TimLong, Win7에서 LocalSystem 사용자 프로필은'C : \ Windows \ system32 \ config \ systemprofile'에 있습니다. XP에서는'C : \ Documents and Settings \ LocalService'에 있습니다. –

+0

토마스에게 도움을 주셔서 감사합니다. 경우 폐쇄. –