并非所有命名空间都包含在Sandcastle构建文档中

我有一个C#项目,在一个解决方案中有两个名称空间。 我已经记录了两个命名空间中的所有类/函数/成员/等。 由于该项目是一个小型研究项目,因此命名空间是DocTestLibraryDocTestLibrary.Events 。 但是,当我尝试通过Sandcastle从中创建文档时,它只会为DocTestLibrary命名空间创建文档。 我是否需要在Sandcastle中进行任何设置才能使其工作? 我对此表示怀疑,因为我已经仔细研究了大部分内容。

奇怪的是,Doxygen能够很好地生成文档。


为了提供更多信息,我检查了Sandcastle为构建生成的日志。 看来这个条目导致其余的不显示。

 Warn: ResolveReferenceLinksComponent2: Unknown reference link target 'T:DocTestLibrary.Events.DemoEvent'. 

我还发现了别的东西。

DocTestLibrary命名空间由两个类组成:

  • 识别TestClass
  • StaticHelper

顾名思义,StaticHelper是一个只有静态方法的辅助类。 然而,Sandcastle也否认要处理这个文件。 只有TestClass得到了处理。 只是让我感到震惊的是,日志中没有关于此的条目。

在我的sandcastle项目中,它总是只包含一个总共5个的命名空间。问题是我没有在帮助文件部分下检查包含根命名空间容器

现在我的所有命名空间都列在根命名空间之下。

DocTestLibrary.Events所有类型DocTestLibrary.Events内部的吗? 默认情况下,我认为Sandcastle只生成公共类型的文档。

似乎通过在Sandcastle项目的Visibility属性部分中设置DocumentInternals来解决此问题。 我想知道为什么会这样,因为没有代码被声明为内部…

我想我会玩更多……

我发现可以通过手动设置要在“项目属性” – >“可见性”下的“编辑APIfilter”中记录的类来修复此问题。