Version 2015.7.25.0

  Important

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.

Deprecated Features Removed

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.

Breaking Changes

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.

Documentation

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.

Help File Builder

  • 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.

Sandcastle Tools

  • 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.

Presentation Styles

  • 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.

See Also

Other Resources