I have a C# project with two namespaces in one solution. I've documented all the classes/functions/members/etc in both namespaces. As this project is a small research project, the namespaces are DocTestLibrary
and DocTestLibrary.Events
. However, when I try to create documentation from it via Sandcastle, it will only create documentation for the DocTestLibrary
namespace. Is there any setting that I need to make in Sandcastle to make this work? I doubt it though, as I've scoured through most of them.
The strange thing is, Doxygen is able to generate documentation just fine.
As to provide some more information, I've checked the log that Sandcastle produces for the build. It seems that this entry is causing the rest not to be displayed.
Warn: ResolveReferenceLinksComponent2: Unknown reference link target 'T:DocTestLibrary.Events.DemoEvent'.
I also found out something else.
The DocTestLibrary
namespace consists of two classes:
- TestClass
- StaticHelper
As the name implies, the StaticHelper is a helper-class with only static methods. Yet Sandcastle also denies to process this file. Only the TestClass get's processed. It only boggles me that there isn't an entry about this in the log though.
I've found this issue can be fixed by manually setting the classes you want documented in Edit API Filter under Project Properties -> Visibility.
Are all your types in
DocTestLibrary.Events
internal by any chance? By default, I believe Sandcastle only generates documentation for public types.It seems that this issue is fixed by setting the
DocumentInternals
in theVisibility
properties section in the Sandcastle project. I wonder why this is, as no code is declared internal...I guess I'll be playing around some more...
In my sandcastle project it would always only include a single namespace of a total 5. The problem was that I did not check Include root namespace container under the section Help File.
Now all my namespaces are listed unter a root namespace.