Version 2025.3.22.0

Release notes for version 2025.3.22.0.

  Important

Breaking Change: Several changes were made to the presentation style API to support rendering of user-defined notices. If you have created custom build components, syntax generators, plug-ins, or presentation styles, you will need to rebuild them against the latest release of the help file builder NuGet packages.

  Note

This will likely be the last release to support Visual Studio 2017 and 2019. Future releases will only support Visual Studio 2022 and later. I do not use the older versions anymore, it will allow me to simplify the extension projects and keep the package references more up to date without the risk of breaking the build, and implement future features without regard to maintaining backward compatibility with the older versions.

Build Tools

  • Fixed compiler generated ObsoleteAttribute removal so that it applies to constructors on types with required fields/properties as well.

  • Fixed XML reader creation to consistently close the XML comments files in the working folder so that they do not remain open and cause subsequent builds to fail because they cannot be replaced.

  • Fixed handling of string and character literals with characters not valid in XML. MRefBuilder will now write them out to the reflection data file in their encoded form (\x001B, \t, \r, etc.) rather than setting the entire value to an empty string.

  • Added support to MRefBuilder for writing out constant decimal values and setting the properties on the member to use the const keyword rather than static readonly to match the code.

  • Added support for the required modifier on fields and properties in the C# syntax generator.

  • Added support for using the new XML format solution files (.slnx) as documentation sources.

Sandcastle Help File Builder

  • Updated handling of resource item files so that it includes them in the build based on the project language if their filename ends with a language identifier.

  • Updated the resource item file editor to account for the language of the file being edited if the filename ends with a language identifier.

  • Made some usability improvements to the Entity References tool window (focus the list on search, double-click an item to copy it to the clipboard, moved the Insert As options to the toolbar so that they take up less space).

  • Added a new Additional Notices Plug-In that can be used to define additional notice items to render in topics and on member list pages based on attributes or XML comments elements.

Presentation Styles

  • Fixed a couple of instances of incorrect member name formatting in table of contents and page titles.

  • Added support for ExperimentalAttribute to add tags to API members similar to ObsoleteAttribute in all presentation styles.

  • Based on a suggestion from Tim Unie, reimplemented how notices are rendered in member topics and member list pages in all presentation styles to allow for user-defined notices based on attributes or XML comments elements.

  • Removed PreliminaryElement and its handler entries as it is now handled by the new notice rendering code.

  • Added a new Notice type to define notices.

  • Added a new CreateNoticeDefinitions abstract method used to create default notice instances for a presentation style.

See Also

Other Resources