BC0043 Error in Team Build

Topics: Developer Forum, User Forum
Jan 15, 2010 at 2:47 AM

I'm having a devil of a time trying to figure this one out; hopefully someone's already solved it. The shfbproj builds fine on my pc from within the Sandcastle Builder GUI (Windows 7, 64 bit), but fails on the TFS 2008 build box (Windows XP, 32 bit).

Trying to build MSHelp2 using a TFS team build script. The target is

   <Target Name="GenerateDocumentation">
      <MSBuild Projects="$(SolutionRoot)\EnterpriseData Service\entdataservice_docs.shfbproj"
          Properties="Configuration=Release;Platform=AnyCPU;OutDir=$(OutDir)" />
   </Target>

Looking at the build log, I see it gets pretty far:

Target "GenerateDocumentation" in file "C:\Temp\29\BuildType\TFSBuild.proj" from project "C:\Temp\29\BuildType\TFSBuild.proj":
Task "MSBuild"
  Global Properties:
    Configuration=Release
    Platform=AnyCPU
    OutDir=C:\Temp\29\Binaries\Release\
Project "C:\Temp\29\BuildType\TFSBuild.proj" (1) is building "C:\Temp\29\Sources\EnterpriseData Service\entdataservice_docs.shfbproj" (15) on node 0 (default targets).
Building with tools version "3.5".
Target "CoreBuildHelp" in file "C:\Program Files\EWSoftware\Sandcastle Help File Builder\SandcastleHelpFileBuilder.targets" from project "C:\Temp\29\Sources\EnterpriseData Service\entdataservice_docs.shfbproj":
Using "BuildHelp" task from assembly "C:\Program Files\EWSoftware\Sandcastle Help File Builder\\SandcastleBuilder.Utils.dll".
Task "BuildHelp"
  Building C:\Temp\29\Sources\EnterpriseData Service\entdataservice_docs.shfbproj
  Initializing
  FindingTools
  ValidatingDocumentationSources
  GenerateSharedContent
  GenerateApiFilter
  GenerateReflectionInfo
  GenerateNamespaceSummaries
  ApplyVisibilityProperties
  TransformReflectionInfo
  ModifyHelpTopicFilenames
  CopyStandardContent
  CopyAdditionalContent
  MergeTablesOfContents
  CreateBuildAssemblerConfigs
  MergeCustomConfigs
  BuildReferenceTopics
  GenerateIntermediateTableOfContents
  ExtractingHtmlInfo
  GenerateHelpFormatTableOfContents
  UpdateTableOfContents
  GenerateHelpProject
  CompilingHelpFile
SHFB : error BE0043: Unexpected error detected in last build step.  See output above for details.
  Failed
  Build details can be found in C:\Temp\29\Sources\EnterpriseData Service\Help\LastBuild.log
Done executing task "BuildHelp" -- FAILED.
Done building target "CoreBuildHelp" in project "entdataservice_docs.shfbproj" -- FAILED.
Done Building Project "C:\Temp\29\Sources\EnterpriseData Service\entdataservice_docs.shfbproj" (default targets) -- FAILED.
Done executing task "MSBuild" -- FAILED.
Done building target "GenerateDocumentation" in project "TFSBuild.proj" -- FAILED.

Looking further into LastBuild.log, I see

<buildStep step="CompilingHelpFile">
Compiling MS Help 2 file...
[C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe]
C:\Temp\29\Sources\EnterpriseData Service\Help\Working\Build2xHelpFile.proj(62,5): error MSB6006: &quot;HXCOMP.EXE&quot; exited with code 3.
  Microsoft Help Compiler Version 2.07.61224.0 Copyright (c) Microsoft Corp.
  
  Error HXC4001: File file:///C:/Temp/29/Sources/EnterpriseData%20Service/Help/Working/Output/EnterpriseDataAPI.HxC, Line 2, Char 77: XML syntax error: No data is available for the requested resource.
  
  Error processing resource 'MS-Help://Hx/Resources/HelpCollection.dtd'.
  
  
  Fatal Error HXC2056: Failed to parse the XML file: C:\Temp\29\Sources\EnterpriseData Service\Help\Working\Output\EnterpriseDataAPI.HxC
    Last step completed in 00:00:01.9532
</buildStep>
<buildStep step="Failed">

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

</buildStep>

The HxC file is quite small. Its output is

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE HelpCollection SYSTEM "MS-Help://Hx/Resources/HelpCollection.dtd">
<HelpCollection DTDVersion="1.0" FileVersion="1.0.0.0" LangId="1033" Title="EnterpriseData API Documentation">
  <CompilerOptions OutputFile="EnterpriseDataAPI.HxS" CreateFullTextIndex="Yes" CompileResult="Hxs" StopWordFile="StopWordList.txt">
    <IncludeFile File="EnterpriseDataAPI.HxF" />
  </CompilerOptions>
  <TOCDef File="EnterpriseDataAPI.HxT" />
  <KeywordIndexDef File="EnterpriseDataAPI_A.HxK" />
  <KeywordIndexDef File="EnterpriseDataAPI_B.HxK" />
  <KeywordIndexDef File="EnterpriseDataAPI_F.HxK" />
  <KeywordIndexDef File="EnterpriseDataAPI_K.HxK" />
  <KeywordIndexDef File="EnterpriseDataAPI_NamedURLIndex.HxK" />
  <KeywordIndexDef File="EnterpriseDataAPI_S.HxK" />
  <ItemMoniker Name="!DefaultTOC" ProgId="HxDs.HxHierarchy" InitData="EnterpriseDataAPI" />
  <ItemMoniker Name="!DefaultFullTextSearch" ProgId="HxDs.HxFullTextSearch" InitData="FTS" />
  <ItemMoniker Name="!DefaultAssociativeIndex" ProgId="HxDs.HxIndex" InitData="A" />
  <ItemMoniker Name="!DefaultDynamicLinkIndex" ProgId="HxDs.HxIndex" InitData="B" />
  <ItemMoniker Name="!DefaultContextWindowIndex" ProgId="HxDs.HxIndex" InitData="F" />
  <ItemMoniker Name="!DefaultKeywordIndex" ProgId="HxDs.HxIndex" InitData="K" />
  <ItemMoniker Name="!DefaultNamedUrlIndex" ProgId="HxDs.HxIndex" InitData="NamedUrlIndex" />
  <ItemMoniker Name="!DefaultSearchWindowIndex" ProgId="HxDs.HxIndex" InitData="S" />
</HelpCollection>

and since it was complaining about line 2, character 77, I counted the characters there and it appears that character 77 is the EOL.

Hopefully this is enough information that someone with more experience in this arena than I can spot the issue. The help build is quite large (takes about 13 minutes to compile before it fails), so trying different things and not succeeding is eating up the day quite quickly :-)

Thanks for any help available.

-- Michael

 

Coordinator
Jan 15, 2010 at 3:24 PM

It's most likely something wrong with the Help 2 compiler installation.  A quick search of Google turned up this thread: http://social.msdn.microsoft.com/Forums/en/devdocs/thread/e9a92631-3e30-49de-b29a-a83785eef4d3

If reinstalling it via the SDK doesn't help, try using Namespace# 2.0 as noted at the end of the thread above to register a namespace since I saw that mentioned in a couple of places along with clearing the IE cache.

Eric

 

Jan 20, 2010 at 6:12 PM

Turns out that Namespace# 2.0 helped immensely. There was no "Resources" title under the "Hx" collection. Putting that back solved the problem.

Thanks!