Version 1.4.0.0

Version 1.4.0.0 was released on March 11, 2007.

Changes in This Release

  • Added support for the March 2007 CTP of Sandcastle.

  • NOTE: The default configurations for the CodeBlockComponent and PostTransformComponent have changed and must be reset and reconfigured if you customized them via the ComponentConfigurations project option. Line numbering and outlining are now off by default. A new option "Connect code blocks to language filter" has been added to allow connecting the code blocks to the language filter. If enabled (the default), code blocks are shown or hidden based on the language filter setting. If disabled, code blocks are always shown regardless of the language filter setting. Options are also present to set the location of the "Copy" image and the file path for it.

  • Made some significant performance improvements. Build times in some cases involving extremely large numbers of topics can be reduced by up to 50% or more. The larger the number of topics to document, the more significant the decrease in build time.

    • Optimized loading and saving of the reflection information file and the XML comments files within the build engine.

    • Optimized the purge item code and duplicate checking in the name generation code to eliminate unnecessary XPath lookups.

    • The processing for the ShowMissing* options has been moved into a new build component (ShowMissingComponent). On extremely large documentation builds (tens of thousands of topics), the XPath queries that were used to look up the member comments and the information in the reflection file took an extremely long time. By moving the processing to a build component, the amount of information to search is greatly reduced and the time to add missing item comments is now negligible.

    • The version information lookup part of the PostTransformComponent was split out into a new VersionInfoComponent that runs before transformation of the topic occurs. This allows for an optimized lookup of the version information and the whole reflection file does not need to be loaded thus reducing memory usage for large builds and speeding up the searches for version information.

    • Added build step timing information so that it is easier to see which steps are taking the longest during a build.

  • The console mode builder can now accept project properties as command line options to override or add settings to a project. A response file can also be used to avoid problems with long command lines. See the Building Projects Outside the GUI topic for details.

  • Added the WorkingPath property so that you can specify an alternate location with a shorter path in which to perform the build if it fails due to long file path names.

  • The following file and folder project properties have been converted from strings to objects. This allows them to be persisted as paths relative to the current project location rather than as absolute paths at your choosing. In addition, environment variables such as %DXROOT%, %WINDIR%, etc. can be specified in the paths and they will be expanded at build time to the value of the specified environment variable. Properties affected:

    • SandcastleProject.HtmlHelp1xCompilerPath

    • SandcastleProject.HtmlHelp2xCompilerPath

    • SandcastleProject.SandcastlePath

    • SandcastleProject.WorkingPath

    • DocumentAssembly.AssemblyPath

    • DocumentAssembly.XmlCommentsPath

    • ContentItem.SourcePath

    • DependencyItem.DependencyPath

    The OutputPath property is still a string. If relative, it is always relative to the project folder and thus should not point at the prior location if the project is saved in a new folder. For similar reasons, the DestinationPath property of additional content items has also been left as a string.

    All fully qualified paths in the affected properties in projects created by prior versions of the help file builder will become relative paths automatically when opened in the latest version. If you need a fixed path, expand the property and set the IsFixedPath property to true so that it is saved as an absolute rather than a relative path.

  • It is now possible to resolve project option values and shared content items in additional content files.

  • Fixed a bug in the code to resolve links to namespace content from additional content that caused it to add too many relative path parts to the URLs. Fixed a bug that caused it to miss the default page setting if the page was associated with a folder. Also fixed a bug that caused it to ignore the page if it was associated with a folder and it was the only file in the folder.

  • Fixed a bug in the code colorizer caused by the description for the collapsed region not being HTML encoded. Also fixed up the definitions so that it doesn't colorize preprocessor text within quotes and comments and handles XML attribute names containing colons.

  • Fixed the CodeBlockComponent and the code colorizer so that they recognize VB.NET style #Else If, #End If, and #End Region statements.

  • The code colorizer now renders a "Copy" icon and text to the right of each title line on the code blocks and allows you to copy the code to the clipboard. The code is copied as plain text without the highlighting and line numbers if used. Default titles are also used on code block that do not have a title. The default title is based on the language specified.

  • Modified the C++ comments fix-up code so that it only strips out the unnecessary characters if they appear in a declaration involving the System.Collections.Generic namespace.

  • The PresentationStyle property now uses a type converter that allows you to select any folder under the .\Presentation folder in the main Sandcastle installation folder. This allows you to create custom versions of the Prototype and VS2005 styles using different names and select them for use from within a help file builder project.

  • The build process now tries to delete the help file first if it exists so that it stops immediately if the help file is open and cannot be overwritten.

  • Made the file extension checks case-insensitive when adding assemblies and comments files to the project and when examining additional content files during the build.

  • When documenting internals, private fields backing events are now removed as they can never be documented with comments.

  • Removed extraneous paragraph tags from the formatted footer replacement tag values.

  • Modified the comments shared content item so that the e-mail link in the page footers now appends the current topic's title to the help file's title for the e-mail's subject.

  • Added a FooterText property to the project that lets you add additional text to the footer of each page without having to modify the shared content file. The text is inserted at the start of the footer shared content item.

  • The post-transform component now turns off all file attributes when copying the highlighter and logo files so that they can be deleted at the end of the build when CleanIntermediates is set to true.

  • Added placement and alignment attributes to the logoFile element of the post-transform component. This allows the logo to be placed to the left, right, or above the topic title. When placed above the topic title, it can be aligned to the left or right or centered.

  • Moved the version information text to the end of the location information shared content items. The PostTransformComponent now moves the location/version text to the end of the footer in the Prototype style.

  • Added a Delete button to the Namespaces dialog that lets you remove old namespaces from the list that no longer appear in the assemblies.

  • Added Help1xAndHelp2x and Help1xAnd2xAndWebsite options to the HelpFileFormat project option.

  • Added an ExcludeItems property to the additional content items. If set to true, the file or files matching the source path are excluded. If used with a wildcard source path, all matching files in subfolders are excluded as well.

See Also