This project has moved. For the latest updates, please go here.

Compatibility of *.shfbproj with MSBuild schema

Topics: Developer Forum
Feb 17, 2009 at 5:31 PM

I have opened the *.shfbproj file (build in SHFB in Visual Studio 2008 and I found out, that it is not compatible with MSBuild schema e.g. ItemGroup should contain Items (according to MSBuild schema from VS 2008) but in fact it contains e.g. Images.

Where I can find schema for *.shfbproj files or what should I do to make this file comaptiblie with MSBuild schema?

Feb 17, 2009 at 6:12 PM
I haven't released a VSPackage that supports the SHFB project files natively within Visual Studio yet.  For now, use the supplied standalone GUI to edit the project file settings and build the help files or use MSBuild.exe to build them from the command line (see the related help file topics).

I don't believe there's any requirement that MSBuild projects must conform to the schema since they are extensible.  ItemGroup can contain user-defined items, not just Item elements.  You could create a schema that defines the additional elements specific to SHFB and add it as an include to C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Build.xsd (or the copy in \Program Files\Microsoft Visual Studio 8\xml\Schemas\1033) but I see no real reason to do that as there isn't any great need to do any extensive hand editing of the SHFB project files and they build just fine without any extra schema info.

Feb 17, 2009 at 6:38 PM

Thanks for quick reply.


Feb 18, 2009 at 7:20 AM
Edited Feb 18, 2009 at 7:55 AM
I guess this is relevant  for this thread... Anyway:
Is there anyway i can make a MSBuild target where i got an argument telling SHFB that i want build documentation for a specific assembly? And without creating a shfbproj file for each of my assemblies...

I got a build script which loops through a list of assemblies and i want to build the documentation for each one of them... This possible to do with SHFB?
Feb 18, 2009 at 3:44 PM
You can override any project property from the command line.  The Documenation Sources property is XML based and may be a little hard to override from the command line since you'd have to specify the property using the XML format in one long string.  You can probably use one or more response files or more likely target override files (set using the CustomBeforeSHFBTargets property override) to make it easier.  See the Building Projects Outside the GUI help file topic for more information.