diff --git a/Deployment/InstallerConfiguration.xml b/Deployment/InstallerConfiguration.xml index a00ffbff..1a525f7f 100644 --- a/Deployment/InstallerConfiguration.xml +++ b/Deployment/InstallerConfiguration.xml @@ -1,7 +1,7 @@  - + @@ -13,7 +13,7 @@ - diff --git a/Documentation/SandcastleBuilder/CommonTokens.tokens b/Documentation/SandcastleBuilder/CommonTokens.tokens index 48f22796..86757348 100644 --- a/Documentation/SandcastleBuilder/CommonTokens.tokens +++ b/Documentation/SandcastleBuilder/CommonTokens.tokens @@ -6,6 +6,6 @@ https://GitHub.com/EWSoftware/SHFB _blank - v2022.12.30.0 + v2023.3.4.0 Visual Studio 2017 \ No newline at end of file diff --git a/Documentation/SandcastleBuilder/Content/VersionHistory/VersionHistory.aml b/Documentation/SandcastleBuilder/Content/VersionHistory/VersionHistory.aml index ee8933c1..c60c2bc6 100644 --- a/Documentation/SandcastleBuilder/Content/VersionHistory/VersionHistory.aml +++ b/Documentation/SandcastleBuilder/Content/VersionHistory/VersionHistory.aml @@ -20,6 +20,12 @@ updating third-party components, plug-ins, presentation styles, and syntax gener version of the help file builder. + + + + + + diff --git a/Documentation/SandcastleBuilder/Content/VersionHistory/v2023.3.4.0.aml b/Documentation/SandcastleBuilder/Content/VersionHistory/v2023.3.4.0.aml new file mode 100644 index 00000000..ce45b3f2 --- /dev/null +++ b/Documentation/SandcastleBuilder/Content/VersionHistory/v2023.3.4.0.aml @@ -0,0 +1,74 @@ + + + + + Release notes for version 2023.3.4.0. See the prior version release notes for information on the +breaking changes made to the presentation styles implementation. + + +
+ Build Tools + + + + Updated the MSHC Component to add whitespace before and after the title element to work around +an apparent bug in the help viewer that causes it to render a blank TOC. + + + + Updated the Resolve Reference Links component to issue a better warning describing the issue of +missing/empty cref attribute values. + + + + Fixed some issues in MRefBuilder so that it handles some variations of the template argument +comparisons when trying to match inherited members. + + + + +
+ +
+ Sandcastle Help File Builder + + + + Removed wording about using the HTML website option if a local web server cannot be found to +view the output. + + + + Fixed an odd case where selecting the wrong framework type to document assemblies caused +duplicate TOC entries. + + + +
+ +
+ Presentation Styles + + + + Fixed handling of section elements without a title when building the auto-outline. + + + + Added handling of empty types and enumerations. + + + + Updated the presentation styles to handle missing or blank cref +attribute values. + + + +
+ + + + + +
+
diff --git a/Documentation/SandcastleBuilder/SandcastleBuilder.content b/Documentation/SandcastleBuilder/SandcastleBuilder.content index 57bf341d..bde266e1 100644 --- a/Documentation/SandcastleBuilder/SandcastleBuilder.content +++ b/Documentation/SandcastleBuilder/SandcastleBuilder.content @@ -1369,12 +1369,17 @@ + + + + + - + diff --git a/Documentation/SandcastleBuilder/SandcastleBuilder.shfbproj b/Documentation/SandcastleBuilder/SandcastleBuilder.shfbproj index 0b0e7267..8e4340cf 100644 --- a/Documentation/SandcastleBuilder/SandcastleBuilder.shfbproj +++ b/Documentation/SandcastleBuilder/SandcastleBuilder.shfbproj @@ -31,11 +31,11 @@ .NET Core/.NET Standard/.NET 5.0+ Sandcastle Help File Builder Documentation https://GitHub.com/EWSoftware/SHFB - [v{%40HelpFileVersion}] Copyright \xA9 2006-2022, Eric Woodruff, All rights reserved + [v{%40HelpFileVersion}] Copyright \xA9 2006-2023, Eric Woodruff, All rights reserved Eric%40EWoodruff.us Default2022 Standard - 2022.12.30.0 + 2023.3.4.0 @@ -404,6 +404,7 @@ + diff --git a/NuGet/SHFB.nuspec b/NuGet/SHFB.nuspec index 9cf66931..fbb68c27 100644 --- a/NuGet/SHFB.nuspec +++ b/NuGet/SHFB.nuspec @@ -2,7 +2,7 @@ EWSoftware.SHFB - 2022.12.30.0 + 2023.3.4.0 Sandcastle Help File Builder Eric Woodruff Eric Woodruff @@ -13,7 +13,7 @@ https://raw.githubusercontent.com/EWSoftware/SHFB/master/NuGet/SHFB.png false This package allows you to deploy the Sandcastle Help File Builder tools inside of a project to build help files without installing the tools manually such as on a build server. Some limitations apply. You will also need to install the reflection data set packages that you need for your projects. - Eric Woodruff (c) 2006-2022 + Eric Woodruff (c) 2006-2023 SHFB documentation sandcastle help XML comments diff --git a/SHFB/Source/PresentationStyles/VS2013/VisualStudio2013PresentationStyle.cs b/SHFB/Source/PresentationStyles/VS2013/VisualStudio2013PresentationStyle.cs index 1a5688cc..35db136a 100644 --- a/SHFB/Source/PresentationStyles/VS2013/VisualStudio2013PresentationStyle.cs +++ b/SHFB/Source/PresentationStyles/VS2013/VisualStudio2013PresentationStyle.cs @@ -2,8 +2,8 @@ // System : Sandcastle Tools Standard Presentation Styles // File : VisualStudio2013PresentationStyle.cs // Author : Eric Woodruff (Eric@EWoodruff.us) -// Updated : 08/06/2022 -// Note : Copyright 2014-2022, Eric Woodruff, All rights reserved +// Updated : 03/03/2023 +// Note : Copyright 2014-2023, Eric Woodruff, All rights reserved // // This file contains the presentation style definition for the Visual Studio 2013 presentation style. // @@ -20,7 +20,6 @@ using System; using System.Collections.Generic; using System.IO; -using System.Linq; using System.Reflection; using Sandcastle.Core; @@ -52,6 +51,9 @@ public VisualStudio2013PresentationStyle() this.SupportsNamespaceGrouping = this.SupportsCodeSnippetGrouping = true; + // This is the legacy format and requires the HTML extract build step for website output + this.RequiresHtmlExtractBuildStep = true; + this.DocumentModelApplicator = new StandardDocumentModel(); this.ApiTableOfContentsGenerator = new StandardApiTocGenerator(); this.TopicTransformation = new VisualStudio2013Transformation(this.SupportedFormats, this.ResolvePath); diff --git a/SHFB/Source/SandcastleBuilderUtils/BuildEngine/BuildProcess.cs b/SHFB/Source/SandcastleBuilderUtils/BuildEngine/BuildProcess.cs index cf8c9844..7fd0abd0 100644 --- a/SHFB/Source/SandcastleBuilderUtils/BuildEngine/BuildProcess.cs +++ b/SHFB/Source/SandcastleBuilderUtils/BuildEngine/BuildProcess.cs @@ -1,9 +1,9 @@ -//=============================================================================================================== +//=============================================================================================================== // System : Sandcastle Help File Builder Utilities // File : BuildProcess.cs // Author : Eric Woodruff (Eric@EWoodruff.us) -// Updated : 10/07/2022 -// Note : Copyright 2006-2022, Eric Woodruff, All rights reserved +// Updated : 03/03/2023 +// Note : Copyright 2006-2023, Eric Woodruff, All rights reserved // // This file contains the thread class that handles all aspects of the build process. // @@ -1324,7 +1324,7 @@ public void Build() // to be ran for website output anymore. if((project.HelpFileFormat & HelpFileFormats.HtmlHelp1) != 0 || ((project.HelpFileFormat & HelpFileFormats.Website) != 0 && - presentationStyle.BasePath == "VS2013")) + presentationStyle.RequiresHtmlExtractBuildStep)) { this.ReportProgress(BuildStep.ExtractingHtmlInfo, "Extracting HTML info for HTML Help 1 and/or website..."); @@ -1345,7 +1345,7 @@ public void Build() this.ExecutePlugIns(ExecutionBehaviors.After); - // Keep the HTML extract tool around until after the help file is build as plug-ins + // Keep the HTML extract tool around until after the help 1 file is built as plug-ins // may rely on it for values such as the localized file folder. } } @@ -1622,8 +1622,7 @@ public void Build() this.ExecutePlugIns(ExecutionBehaviors.After); - if(componentContainer != null) - componentContainer.Dispose(); + componentContainer?.Dispose(); } catch(Exception ex) { @@ -1642,8 +1641,7 @@ public void Build() if(this.CurrentBuildStep == BuildStep.Completed && !project.KeepLogFile) File.Delete(this.LogFilename); - if(resolver != null) - resolver.Dispose(); + resolver?.Dispose(); } } } @@ -1723,33 +1721,27 @@ protected void ReportProgress(BuildStep step, string message, params object[] ar "{0:00}:{1:00}:{2:00.0000}", Math.Floor(runtime.TotalSeconds / 3600), Math.Floor((runtime.TotalSeconds % 3600) / 60), (runtime.TotalSeconds % 60))); - if(swLog != null) - swLog.WriteLine(pa.Message); + swLog?.WriteLine(pa.Message); - if(this.ProgressReportProvider != null) - this.ProgressReportProvider.Report(pa); + this.ProgressReportProvider?.Report(pa); } - if(this.ProgressReportProvider != null) - this.ProgressReportProvider.Report(new BuildProgressEventArgs(this.CurrentBuildStep, false, - "-------------------------------")); + this.ProgressReportProvider?.Report(new BuildProgressEventArgs(this.CurrentBuildStep, false, + "-------------------------------")); stepStart = DateTime.Now; this.CurrentBuildStep = step; - if(swLog != null) - swLog.WriteLine("\r\n", step); + swLog?.WriteLine("\r\n", step); } pa = new BuildProgressEventArgs(this.CurrentBuildStep, stepChanged, args == null || args.Length == 0 ? message : String.Format(CultureInfo.CurrentCulture, message, args)); // Save the message to the log file - if(swLog != null) - swLog.WriteLine(HttpUtility.HtmlEncode(pa.Message)); + swLog?.WriteLine(HttpUtility.HtmlEncode(pa.Message)); - if(this.ProgressReportProvider != null) - this.ProgressReportProvider.Report(pa); + this.ProgressReportProvider?.Report(pa); } #endregion diff --git a/SHFB/Source/SandcastleBuilderUtils/GlobalSuppressions.cs b/SHFB/Source/SandcastleBuilderUtils/GlobalSuppressions.cs index 8b18e23b..6a6bf98f 100644 --- a/SHFB/Source/SandcastleBuilderUtils/GlobalSuppressions.cs +++ b/SHFB/Source/SandcastleBuilderUtils/GlobalSuppressions.cs @@ -54,3 +54,4 @@ [assembly: SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "", Scope = "member", Target = "~M:SandcastleBuilder.Utils.BuildEngine.MarkdownContentGenerator.Execute~System.Boolean")] [assembly: SuppressMessage("Globalization", "CA1308:Normalize strings to uppercase", Justification = "", Scope = "member", Target = "~M:SandcastleBuilder.Utils.BuildEngine.MarkdownContentGenerator.ApplyChanges(System.String,System.Xml.Linq.XDocument)~System.String")] [assembly: SuppressMessage("Maintainability", "CA1508:Avoid dead conditional code", Justification = "", Scope = "member", Target = "~M:SandcastleBuilder.Utils.BuildEngine.BuildProcess.ReportProgress(SandcastleBuilder.Utils.BuildEngine.BuildStep,System.String,System.Object[])")] +[assembly: SuppressMessage("Style", "IDE0270:Use coalesce expression", Justification = "", Scope = "member", Target = "~M:SandcastleBuilder.Utils.BuildEngine.BuildProcess.Build")] diff --git a/SHFB/Source/SandcastleBuilderUtils/Properties/AssemblyInfoShared.cs b/SHFB/Source/SandcastleBuilderUtils/Properties/AssemblyInfoShared.cs index 15741170..547e70f1 100644 --- a/SHFB/Source/SandcastleBuilderUtils/Properties/AssemblyInfoShared.cs +++ b/SHFB/Source/SandcastleBuilderUtils/Properties/AssemblyInfoShared.cs @@ -2,8 +2,8 @@ // System : Sandcastle Help File Builder // File : AssemblyInfoShared.cs // Author : Eric Woodruff (Eric@EWoodruff.us) -// Updated : 12/30/2022 -// Note : Copyright 2006-2022, Eric Woodruff, All rights reserved +// Updated : 03/04/2023 +// Note : Copyright 2006-2023, Eric Woodruff, All rights reserved // // Sandcastle Help File Builder common assembly attributes. // @@ -90,14 +90,14 @@ internal static partial class AssemblyInfo // // This is used to set the assembly file version. This will change with each new release. MSIs only // support a Major value between 0 and 255 so we drop the century from the year on this one. - public const string FileVersion = "22.12.30.0"; + public const string FileVersion = "23.3.4.0"; // Common product version // // This may contain additional text to indicate Alpha or Beta states. The version number will always match // the file version above but includes the century on the year. - public const string ProductVersion = "2022.12.30.0"; + public const string ProductVersion = "2023.3.4.0"; // Assembly copyright information - public const string Copyright = "Copyright \xA9 2006-2022, Eric Woodruff, All Rights Reserved"; + public const string Copyright = "Copyright \xA9 2006-2023, Eric Woodruff, All Rights Reserved"; } diff --git a/SHFB/Source/SandcastleCore/PresentationStyle/PresentationStyleSettings.cs b/SHFB/Source/SandcastleCore/PresentationStyle/PresentationStyleSettings.cs index 3aed4ed2..7667c211 100644 --- a/SHFB/Source/SandcastleCore/PresentationStyle/PresentationStyleSettings.cs +++ b/SHFB/Source/SandcastleCore/PresentationStyle/PresentationStyleSettings.cs @@ -2,8 +2,8 @@ // System : Sandcastle Tools - Sandcastle Tools Core Class Library // File : PresentationStyleSettings.cs // Author : Eric Woodruff (Eric@EWoodruff.us) -// Updated : 11/11/2022 -// Note : Copyright 2012-2022, Eric Woodruff, All rights reserved +// Updated : 03/03/2023 +// Note : Copyright 2012-2023, Eric Woodruff, All rights reserved // // This file contains a class that is used to contain settings information for a specific presentation style // @@ -87,6 +87,13 @@ public abstract class PresentationStyleSettings /// in the project. public bool SupportsCodeSnippetGrouping { get; protected set; } + /// + /// This is used to get or set whether or not the presentation style requires the HTML extract build step + /// for website output. + /// + /// This is false by default and is currently only used by the legacy VS2013 presentation style + public bool RequiresHtmlExtractBuildStep { get; protected set; } + /// /// This read-only property returns the list of help content file locations /// diff --git a/SHFB/Source/SandcastleCore/Properties/AssemblyInfoShared.cs b/SHFB/Source/SandcastleCore/Properties/AssemblyInfoShared.cs index f91cadd9..076b6c40 100644 --- a/SHFB/Source/SandcastleCore/Properties/AssemblyInfoShared.cs +++ b/SHFB/Source/SandcastleCore/Properties/AssemblyInfoShared.cs @@ -1,8 +1,8 @@ //=============================================================================================================== // System : Sandcastle Tools // File : AssemblyInfoShared.cs -// Updated : 12/30/2022 -// Note : Copyright 2006-2022, Microsoft Corporation, All rights reserved +// Updated : 03/04/2023 +// Note : Copyright 2006-2023, Microsoft Corporation, All rights reserved // // Sandcastle tools common assembly attributes. // @@ -73,15 +73,15 @@ internal static partial class AssemblyInfo // // This is used to set the assembly file version. This will change with each new release. MSIs only // support a Major value between 0 and 255 so we drop the century from the year on this one. - public const string FileVersion = "22.12.30.0"; + public const string FileVersion = "23.3.4.0"; // Common product version // // This may contain additional text to indicate Alpha or Beta states. The version number will always match // the file version above but includes the century on the year. - public const string ProductVersion = "2022.12.30.0"; + public const string ProductVersion = "2023.3.4.0"; // Assembly copyright information - public const string Copyright = "Copyright \xA9 2006-2022, Microsoft Corporation, All Rights Reserved.\r\n" + - "Portions Copyright \xA9 2006-2021, Eric Woodruff, All Rights Reserved."; + public const string Copyright = "Copyright \xA9 2006-2023, Microsoft Corporation, All Rights Reserved.\r\n" + + "Portions Copyright \xA9 2006-2023, Eric Woodruff, All Rights Reserved."; } diff --git a/SHFB/Source/SandcastleInstaller/InstallerConfiguration.xml b/SHFB/Source/SandcastleInstaller/InstallerConfiguration.xml index 37a4fa26..fb0d1971 100644 --- a/SHFB/Source/SandcastleInstaller/InstallerConfiguration.xml +++ b/SHFB/Source/SandcastleInstaller/InstallerConfiguration.xml @@ -4,7 +4,7 @@ - + @@ -16,7 +16,7 @@ - diff --git a/SHFB/Source/SandcastleInstaller/InstallerPages/SandcastleHelpFileBuilderPage.xaml b/SHFB/Source/SandcastleInstaller/InstallerPages/SandcastleHelpFileBuilderPage.xaml index 448d3c31..06437e02 100644 --- a/SHFB/Source/SandcastleInstaller/InstallerPages/SandcastleHelpFileBuilderPage.xaml +++ b/SHFB/Source/SandcastleInstaller/InstallerPages/SandcastleHelpFileBuilderPage.xaml @@ -30,8 +30,10 @@ for it to work correctly and must be installed first. IMPORTANT: Use of the standalone GUI requires installation of the Build Tools for Visual Studio -2017 or later. If you will only use Visual Studio 2017 or later, the installing the build tools -separately is not required. +2017 or later. Visual Studio 2017 or later is the preferred method of managing help file builder +projects using the package installed in the next step. When using Visual Studio, installing the build tools +separately is not required. The standalone GUI is typically only used in situations where Visual Studio is +unavailable. See the topics in the Getting Started section of the Sandcastle Help File Builder help file for information on additional tools that you may find useful and how to create your first diff --git a/SHFB/Source/VSIX_VS2017/source.extension.vsixmanifest b/SHFB/Source/VSIX_VS2017/source.extension.vsixmanifest index f42519ea..fb2253fe 100644 --- a/SHFB/Source/VSIX_VS2017/source.extension.vsixmanifest +++ b/SHFB/Source/VSIX_VS2017/source.extension.vsixmanifest @@ -1,7 +1,7 @@  - + SHFB (VS2017 and VS2019) Visual Studio integration for the Sandcastle Help File Builder. https://ewsoftware.github.io/SHFB/html/bd1ddb51-1c4f-434f-bb1a-ce2135d3a909.htm diff --git a/SHFB/Source/VSIX_VS2022/source.extension.vsixmanifest b/SHFB/Source/VSIX_VS2022/source.extension.vsixmanifest index c5b75d16..91ba90fe 100644 --- a/SHFB/Source/VSIX_VS2022/source.extension.vsixmanifest +++ b/SHFB/Source/VSIX_VS2022/source.extension.vsixmanifest @@ -1,7 +1,7 @@  - + SHFB (VS2022 and Later) Visual Studio integration for the Sandcastle Help File Builder. https://ewsoftware.github.io/SHFB/html/bd1ddb51-1c4f-434f-bb1a-ce2135d3a909.htm