Version 2016.4.9.0

Release notes for version 2016.4.9.0.

Breaking Changes

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. Most of these changes were made to facilitate a single BuildAssembler step that generates all conceptual and API topics rather than as two separate steps.

  • Removed BuildStep.BuildConceptualTopics and BuildStep.BuildReferenceTopics and replaced them with a common BuildStep.BuildTopics step that generates both the conceptual and API topics.

  • Removed all separate conceptual and API BuildAssembler configuration files and merged the settings into a common BuildAssembler.config configuration file in all presentation styles. The Switch Component is used to identify the MAML and API component groups.

  • Any components that modify the BuildAssembler manifest files need to be aware of the new type attribute that must appear on each topic element. It defines whether the topic is a MAML topic or an API topic.

  • BuildAssembler now creates the root document element of the skeleton document and adds a type attribute indicating the topic type as defined in the manifest (MAML or API).

  • Updated the Clone Component, For Each Component, If-Then Component, Multi-Format Output Component, Switch Component, and Syntax Component so that they can differentiate between topics using a group ID. This is necessary in the combined conceptual/reference topic builds since each group of components uses the common component event to handle pre-transform and post-transform tasks.

  • Updated the presentation style component and all presentation styles by replacing the ConceptualBuildConfiguration and ReferenceBuildConfiguration properties with a single BuildAssemblerConfiguration property.

  • Updated all BuildAssembler configuration files to copy the content of the skeleton document's root element to the root element of the given topic rather than replacing it entirely. This is necessary to preserve the topic type attribute added by BuildAssembler.

Sandcastle Tools

  • Fixed the VB syntax generator so that it correctly handles C++ assignment operators.

  • Merged changes from tlgkccampbell into MRefBuilder to allow customization of dependency property and routed event type names.

  • Made various changes to BuildAssembler and some of the build components to improve their performance and to support the combined API/MAML topic build.

  • Added support for the .NET Framework 4.6.1, .NET Micro Framework 4.4, and .NET Portable 5.0 frameworks. Regenerated the affected reflection data and NuGet packages to include these updates.

  • Regenerated the Universal Windows (.NETCore 5.0/.NETPortable 5.0) reflection data to include updated assembly information.

  • Regenerated all other framework reflection data to remove the unnecessary AllMembersTopic entries.

Sandcastle Help File Builder

  • Fixed the build task so that it works correctly with MSBuild 14.0.

  • Fixed a bug/incompatibility between Visual Studio 2015 and the MPF project system that only occurs when opening the project properties via the context menu.

  • Fixed the FrameworkVersionShort substitution tag so that it includes the build number when appropriate.

  • Modified the build engine so that the help project being built attempts to retrieve the SolutionPath macro from the help project in order to use it as the default for the solution macros when extracting the targets from project documentation sources. This allows documentation source projects that use solution macros in their output path to resolve properly as long as the help project is built as part of the containing solution.

  • Merged a fix from qmfrederik to fix the Lightweight Website Style Plug-in problem caused by empty URL values.

  • Updated the Entity References tool window so that the root namespace container topic ID is returned if you search for "R:".

  • Added a component cache that loads the component information asynchronously and is shared amongst the property pages that need it to improve UI responsiveness in both Visual Studio and the standalone GUI. Changing the component path property also triggers a refresh which should remove the need to unload and reload a project after changing it to see the components in the new location.

  • The Save Component now uses a pipeline to generate and write the topics in parallel. A Save Component cache capacity project option was added to allow limiting the number of topics the Save Component will accumulate while waiting to write them out.

  • The IntelliSense Component also uses a pipeline to generate and save the XML comments elements to the various IntelliSense files. A similar cache capacity option was added to the IntelliSense component to limit the number of members it accumulates while waiting to write them out.

  • Changed the Lightweight website style plug-in to generate the TOC info files in parallel to improve performance.

  • Changed the website full text index generation so that it processes the files in parallel to improve performance.

  • Modified the MPF and SHFB project system to allow for excluding the content of the output path and working folders when doing Show All Files. This is a quick hack to work around the very slow performance when using Show All Files due to the large number of files in the output and working folders when website output is produced. The output folder itself is still included but subfolders are not. This would prevent the inclusion of those subfolders in the project in cases where the project does not produce website output but chances are most people won't want to include these folders in the project anyway.

  • Merged changes from Sam Harwell to fix issues in Visual Studio 2015 XML comments completion with certain elements.

Presentation Styles

  • Fixed the encoding on the German language content files in all presentation styles.

  • Merged a fix from tylerohlsen into the legacy TOC.js file that added a dash (-) to the allowed set of characters on the query string to fix direct links with GUIDs.

  • Updated the presentation styles to correctly show the proper title for the root namespace container link in see, seealso, and codeEntityReference link elements.

  • Removed the IncludeInheritedOverloadTopics parameter from the ApplyVSDocModel.xsl transformation as it served no useful purpose.

  • Added Japanese content file translations from bleis-tift to all presentation styles.

See Also

Other Resources