Multiple output locations

Topics: User Forum
Mar 10, 2010 at 10:02 PM

When creating the help file (.chm, htm, asp.net) it takes about 5 minutes to generate all of the files, but they are all in the same directory.  I would like to drop these into their own directories.  The only way that have found to do this easily is to HelpFileFormat (specifying only one type) and OutputPath through msbuild.   So calling this 3 times ends up being 15 minutes.

Here is what we currently do:

  • msbuild helpbuild.shfbproj /p:SHFBROOT="C:\Program Files\EWSoftware\Sandcastle Help File Builder",HelpFileFormat=HtmlHelp1,OutputPath=\help\chm
  • msbuild helpbuild.shfbproj /p:SHFBROOT="C:\Program Files\EWSoftware\Sandcastle Help File Builder",HelpFileFormat=MSHelpViewer,OutputPath=\help\mshc
  • msbuild helpbuild.shfbproj /p:SHFBROOT="C:\Program Files\EWSoftware\Sandcastle Help File Builder",HelpFileFormat=Website,OutputPath=\help\www

Is there a better approach?  Is there a way to cache the data from one iteration through the next so it doesn't have to parse the whole thing each time?

Coordinator
Mar 11, 2010 at 2:55 AM

You can set the project to build all three types and then use the Output Deployment plug-in to copy the output to the individual target folders.  The core build used to generate the topics is identical, it's just the final compilation step that differs.  After the help output is generated, it is copied to the target folder by the plug-in.  As such, your build time should drop back down to around 5 minutes or so for all three.

Eric