Version 2015.7.25.0
This release removes all deprecated features and makes a significant number of changes to the
build engine. These changes were necessary to move forward with new features and to make supporting the existing
features more manageable. Review the sections below for details.
Release notes for version 2015.7.25.0.
Effective with this release, the following changes were made to remove deprecated features that are
no longer supported:
Removed unused tools: AggregateByNamespace, ChmBuilder, DBCSFix, MergeXml, SegregateByAssembly
Removed the /internal MRefBuilder command line option.
Removed the obsolete platform configuration options from the MRefBuilder configuration file.
Removed the Prototype style and Microsoft Help 2 production XSL transformations.
Removed the deprecated presentation styles: Prototype, Hana, and VS2005
Removed the Hierarchical TOC plug-in. It did not work with MS Help Viewer output and was
superseded by the namespace grouping support in the presentation styles.
Removed support for the Microsoft Help 2 file format and all related project properties:
HtmlHelp2xCompilerPath, CollectionTocStyle,
MSHelp2SdkLinkType, IncludeStopWordList,
PlugInNamespaces, and HelpAttributes.
Removed the CppCommentsFixup property and all related code. Use the
Member ID Fix-Ups Plug-In instead.
Removed support for topic (.topic) file transformation and the
TopicTransform build action.
Removed the file system based additional content model used to add HTML topics to the table of
contents. HTML files can still be included but a site map file must be added to the project to define their
layout in the table of contents.
Removed all HTML file transformation options (code import, code colorizing, replacement tags,
etc.). HTML files can still be included and referenced via a site map file but they will not receive any
transformation.
Removed support for HTML files from the content layout file editor. Only MAML topics can
appear in a content layout file.
Removed support for the project item metadata element ExcludeFromToc.
Removed the old project format converters and the New Project from Other Format option in the
standalone GUI and Visual Studio package. I could not guarantee they worked well now anyway and they were
getting in the way of other changes I want to make to the build engine.
Dropped support for Visual Studio 2010 and 2012 from the Visual Studio package.
Dropped support for installing the schemas and snippets in Visual Studio 2008-2012 in the
guided installer.
If you use the ESent or SQL Server data caching components, they will need to be removed and added
back to your projects in order to obtain changes made to their configuration elements. If you have created
custom build components, syntax generators, plug-ins, or presentation styles, carefully read the following items
as you may need to update your components based on these changes. If you need help in determining how to update
a component so that it can be used with the new build engine, please open an issue at the project site on
GitHub.
Updated all projects to use .NET 4.5 and made it the minimum framework version in the guided
installer.
Changed the build engine so that it can be ran in the background as an asynchronous task rather
than requiring a separate thread.
Removed lots of obsolete code from the build engine and changed the SandcastleProject
class so that it is a read-only wrapper around the underlying MSBuild project. This prevents inadvertent changes
to the underlying project during builds and allows building sub-projects without first having to clone the
sub-project in case it is already in the global project collection.
Reworked documentation source component enumeration to simplify usage.
Reworked conceptual content item enumeration and added the ability to add conceptual content
items directly to the build process instance without having to use a temporary project instance from which
the items are copied to the build process.
Moved the manual visibility and API filter methods from the build engine into a new Manual
Visibility/API Filter plug-in. If your plug-in made use of the old methods in the build engine that manually
applied the API filter and/or visibility options, remove the related code and note in your plug-in's
documentation and description that the new plug-in should be used in conjunction with it.
The BuildAssembler configuration files in any custom presentation styles will need to be
updated by replacing any references to {@SHFBFolder}Data\{@TargetFrameworkIdentifier}
with {@FrameworkReflectionDataFolder}. This will allow them to find the reflection
data files.
The Sandcastle Tools help file has been removed. All of its former content has been merged into
this help file. Additional topics have been added to document the underlying Sandcastle tools.
Fixed the HelpLibraryManagerLauncher tool so that it adds the default catalog name to the
command line arguments if one is not explicitly specified.
Merged changes from Sam Harwell to correct issues with the extended XML comment element
auto-completion in Visual Studio 2015.
Removed loading of the reflection information file in the build engine and replaced it with
XML stream axis methods which greatly reduces memory usage in the build engine for large builds.
Reworked how the default topic was determined. This corrects an issue that caused it to not
determine the default topic and fail the build under certain conditions.
Moved clearing the prior web/markdown content to the start of the build where the other format
output is deleted. This allows other output generated by the build such as IntelliSense comments files to be
placed in the output folder without being lost when the web/markdown content is generated.
Moved the Help File Version property to the Help File
property page. It does not have to be in the form of a version number anymore.
Added a new Visibility category option to support documenting public
compiler generated types and members. Private, internal, and protected compiler generated members are always
excluded as before.
Modified the build engine so that it utilizes the new reflection data set dictionary to find
and load information about the available frameworks. This effectively allows framework information to be treated
like any other project-specific component. See the Reflection Data Manager Tool
topic for more information on generating framework reflection data.
Added separate NuGet reflection data packages for each of the framework types. This works
around the NuGet package size limitation and allows you to install the core help file builder NuGet package and
only the reflection data for the frameworks that you actually need. See the
XCOPY/NuGet Build Server Deployment topic for more information.
Fixed a case in the AddNamespaceGroups tool where it would not always create groups correctly
under certain conditions (submitted by dgedge33).
Fixed the extension method parameter comparisons in the MRefBuilder extension method add-in so
that it does not add extension methods to types with matching method signatures.
Fixed the API filter in MRefBuilder so that an internal type in one assembly does not hide a
public type of the same name in another assembly if the internal one is seen first.
Fixed MRefBuilder so that internal interfaces are not listed on types that implement them.
Fixed VersionBuilder so that when the rip option is enabled, it correctly removes extension
methods when they no longer appear in the latest release.
Added support for including public compiler generated types and members in the MRefBuilder
visibility options.
Added the Reflection Data Manager tool which is now used to define reflection data set files
and build the reflection data for the various frameworks.
Added support for running SegregateByAssembly as an MSBuild task.
Fixed the keyword lookup script in the VS2013 presentation style so that it initializes the
word dictionary object correctly to prevent keywords being interpreted as property names (i.e. "length").
Fixed the VS2013 presentation style so that the content does not go under the vertical
scrollbar in the Help 1 and MS Help Viewer formats.
Merged a change from Drew Gross that closes an XSS vulnerability in the legacy website script
used by the VS2010 presentation style.
Added the missing CodeExample.png image to the Open XML presentation style.
Added an includeEnumValues transformation argument to all presentation
styles. If set to true, the default, a column for the numeric value of each field is included in enumerated type
topics. If set to false, the numeric value column is excluded.
Updated the order of the sections on the member list pages in all presentation styles to more
closely match the order on MSDN. Also updated the table of contents transformation to order the type subtopics
so that they're consistent with the order in the member list pages.