-
-
Notifications
You must be signed in to change notification settings - Fork 367
Description
Hello Eric,
We are noticing that some of our custom classes that depend on inherited Microsoft types (ex: System.Net.Http.HttpRequestMessage) hyperlink out to older MSDN documentation sources that are no longer being maintained by Microsoft.
Here is the configuration of our build machine:
- Windows 10 version 1709 (OS Build 16299.1087)
- Visual Studio Enterprise 2017 version 15.9.12
- SHFB 2019.4.14.0
Here are the steps to reproduce the issue:
ONE: Use Visual Studio 2017 to create a WPF App (.NET Framework). Choose the Target Framework as .NET Framework 4.6.1. Call the name of the solution TestApp.sln.
TWO: Replace the code in the MainWindow.xaml.cs file with the following:
using System.Windows;
namespace TestApp
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
/// <summary>
/// This is the Main Window.
/// </summary>
public MainWindow()
{
InitializeComponent();
}
}
/// <summary>
/// This is the Test Http Request Message.
/// </summary>
public class TestHttpRequestMessage : System.Net.Http.HttpRequestMessage
{
}
}
THREE: In the Project Properties > Build tab, check on the XML documentation file check box. Then build the project to create the TestApp.exe and TestApp.xml files. Here is a screen shot with the relevant parts of the Visual Studio project:

FOUR: Create a Visual Studio 2017 SandCastle documentation project. Reference the TestApp.exe and TestApp.xml files. Set the Framework version to .NET Framework 4.6.1. Then build the SandCastle documentation project.
FIVE: Examine the resulting .chm file for the TestHttpRequestMessage Class. In the Inheritance Hierarchy section of the document, click on the System.Net.Http.HttpRequestMessage link.

You will find that the hyperlink goes to the following MSDN Url:
https://docs.microsoft.com/en-us/previous-versions/visualstudio/hh159020(v=vs.118)
Microsoft states that the content for this set of MSDN docs is not longer being updated regularly.

Most likely, the hyperlink that is generated by SandCastle should probably be going to the following Url:
https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httprequestmessage?view=netframework-4.6.1
NOTE: What is interesting to note is that clicking on the "System.Obect" type in the Inheritance Hierarchy section for the same page generated in the .chm file takes you to a much updated MSDN document URL (albeit it is a .NET Framework 4.8 rather than 4.6.1 but at least is is not outdated):
https://docs.microsoft.com/en-us/dotnet/api/system.object?redirectedfrom=MSDN&view=netframework-4.8

Do you have a suggestion on how to have SandCastle point to the correct version of the .NET Framework 4.6.1 of the MSDN documentation for the inherited Microsoft Type: System.Net.Http.HttpRequestMessage? Or do you think that might be a bug that could get resolved in another version of the SHFB?
Thanks,
Don Kemlage
[email protected]
