Version 1.8.0.0 was released on October 20th, 2008.
A New Project File Format and a New Look
The main goal of this release was to rework the help file builder project file format and build engine to ready them for use in a Visual Studio package that will provide full Visual Studio integration in a future release. This resulted in a number of major changes.
Although Visual Studio integration is planned for a future release, the standalone GUI will still be produced and supported for those who do not use Visual Studio. |
The help file builder now uses an MSBuild project file to store its settings. Along with the associated MSBuild tasks and target definition file, this allows you to build help file builder projects using MSBuild. It also makes it possible to create a Visual Studio package that will let you work with help file builder projects from within Visual Studio just like any other project in a solution file (planned for a future release).
A SHFBROOT environment variable is now used to locate the root help file builder folder for various tools. The value should point to the root installation folder. The installer will create the environment variable automatically but you may need to reboot in order for it to take effect. You will also need to manually define it on any system to which you manually copy the help file builder tools.
With the use of an MSBuild project file format, SandcastleBuilderConsole.exe was rendered obsolete and has been removed. Use MSBuild, Team Build, or another such tool to build a help file project from the command line or in automtated scripts.
Due to the change in format, help file builder projects from prior versions will need to be converted before use with the latest release. Once converted, they cannot be changed back or used with prior versions of the help file builder. See the Project File Converters topic for details.
Several project properties have been removed or altered and their functionality has moved elsewhere in the standalone GUI. See the Where Did That Feature Go? section below for details.
The NDoc-style GUI has been replaced by one that looks more like Visual Studio. This was required as by moving to an MSBuild project format, the conceptual content and supporting files are now part of the project and appear in the project file as build items. The new GUI provides a Project Explorer window that lets you manage these items. The Properties window retains the NDoc-like property grid and is used to edit the various non-file project properties.
NoteSee the Sandcastle Help File Builder Overview topic for more information on the new GUI and how to use it effectively.
The underlying namespace in the code for the GUI changed so any prior user preferences will not be carried forward when you first open the new version. You can set them up again via the File | User Preferences menu option.
NoteIt is no longer necessary to define external editors in the User Preferences dialog to edit files such as XML files, stylesheets, HTML files, etc. Common text-based file types recognized by filename extension will be edited within the GUI by default. As such, you do not need to add any custom editor associations for them in your user preferences.
Assemblies to Document are now referred to using the more generic term Documentation Sources. A documentation source can be an individual assembly (executable or DLL), an individual XML comments file, a Visual Studio project file (C#, VB.NET, or J#), a Visual Studio solution file containing one or more of the noted project types, or a wildcard item that results in a list of one or more of the previously mentioned file types. Documentation sources are now managed using the Documentation Sources project node in the Project Explorer window.
TipGiven that solutions and projects are supported as documentation sources, you may find it easier to add them as documentation sources instead of the assemblies, comments, and references that they contain. When a solution or project is used, these items are imported from them automatically at build time.
A Configuration and a Platform option can be defined to determine which assemblies are used in solution and project documentation sources.
Dependencies are now referred to using the term References. The old Dependencies property has been removed from the Properties window. They are now managed via the References project node in the Project Explorer window. References can be GAC entries, assembly files, COM objects, or Visual Studio project files.
NoteWhile COM references are supported in the project file and will be handled correctly at build time, they cannot be added to the project via the standalone GUI. An alternative is to add the COM-callable wrapper assemblies as references instead.
All build step script files (.bat) have been replaced with MSBuild project files (.proj) with corresponding build tasks. This allows for better extensibility either directly or through plug-ins. In addition, it allows for support of Unicode values in such properties as the help filename.
The code has been heavily refactored and some project option collection classes and property names have been changed to reflect their purpose in relation to the MSBuild project file format. Others have been removed as they are no longer relevant. As such, expect build errors in any custom plug-ins that you have created. Most of the affected objects and properties are listed below.
Old Item
New Item
DependencyItem
Replaced by ReferenceItem (GAC or file), COMReferenceItem (COM object), and ProjectReferenceItem (Visual Studio project).
DependencyItemCollection
Replaced by ReferenceItemCollection.
DocumentAssembly
Replaced by DocumentationSource.
DocumentAssemblyCollection
Replaced by DocumentationSourceCollection.
SandcastleProject.Assemblies
Renamed SandcastleProject.DocumentationSources.
SandcastleProject.Dependencies
Renamed SandcastleProject.References.
BuildStep.CopyDependencies
Deleted as it was no longer relevant.
BuildStep.ValidatingAssemblies
Renamed BuildStep.ValidatingDocumentationSources.
Where Did That Feature Go?
Several features and project options were removed and their functionality is now handled in a different manner. The following items will help you locate the old feature and determine how to do the same thing in the new version of the help file builder.
Bug Fixes
Fixed a couple of bugs in the Hierarchical TOC plug-in that caused the namespaces to be nested incorrectly.
Fixed the Code Block Component so that nested code blocks in conceptual content are imported correctly.
Fixed a bug in the Split TOC option that caused the TOC items to be excluded if it was set on the first content item.
Exceptions in the namespace generation step in partial builds are now ignored so that you can get into the Namespace Comments dialog to fix the issue.
Fixed a bug in the HTML extract tool that caused it to fail on nodes without an associated file.
Other Changes and New Features
Documented assemblies and reference (dependency) assemblies are no longer copied to the working folder for the build. Instead, they are resolved and parsed in place at their given location. This prevents issues with similarly named assemblies overwriting each other in the working folder.
XML comments files are still copied to the working folder as they may be modified. Duplicates are given a unique name if a file by the same name already exists in the working folder. This prevents the loss of comments due to XML comments files in different projects that use the same name.
The project used by the build process is a clone of the active project. As such, it can be modified without affecting the active project.
All tool/build engine warnings and errors are now reported with a code and in a format compatible with the Visual Studio Error List tool window. The warning and error codes are documented and provide information about what the error means along with possible solutions.
Just prior to building a Help 1 (CHM) file, warnings are issued if the working path, the HTMLHelpName property, or any filename contains ".h" or a comma. Paths or files containing ".h" or a comma can cause odd compiler crashes. If you see this warning and the help compiler fails, change the names of the paths or files listed in the warning(s).
Added an allowMissingSource option to the Code Block Component to allow missing source code files/regions to generate warnings rather than errors. It also gives a more descriptive error when it fails to find a required attribute.
Added All and None buttons to the Namespace Comments dialog to check or uncheck all namespaces at once.
The default presentation style in new projects has changed from Prototype to VS2005.
Implemented basic find and replace support in the topic editor window (Ctrl+F and Ctrl+H). Also added Goto Line (Ctrl+G) and expanded the number of elements that can be inserted from the toolbar.
All help windows are now opened non-modally.
Thanks to Golo Roden for the Python keywords and code colorizer rule definitions. Use the language ID python or py to colorize a code block as Python code.
In the code download, all help file builder solutions and projects are now in Visual Studio 2008 SP1 format.
The help file content has been converted to MAML and uses the VS2005 style.