如何在 Sandcastle C# 文档构建中链接第三方文档

Posted

技术标签:

【中文标题】如何在 Sandcastle C# 文档构建中链接第三方文档【英文标题】:How to Link third-party documentation in Sandcastle C# documentation build 【发布时间】:2022-01-15 14:31:32 【问题描述】:

我正在为我为第三方应用程序编写的插件构建文档,该插件具有我在插件中使用的自己的 API。 API 记录在其他地方(网站),我知道如何为每种 API 类型生成 url。

在我的插件的文档构建期间,SandCastle 自然会抱怨缺少第三方 API 类型,因为它们没有在我的插件程序集中定义,并且是我在插件项目中引用的主机应用程序 API 程序集的一部分.

我想知道如何配置 SandCastle 以将缺少的类型解析为正确的 url,并将其作为超链接包含在生成的 .chm 或网站文件中。

SandCastle 已经为所有 dotnet 类型执行此操作,并将它们正确路由到 MSDN 文档。 SandCastle 似乎在内部为这些已知来源内置了 url 解析器,但我没有看到任何扩展它的方法,添加我自己的解析器。

【问题讨论】:

【参考方案1】:

应用程序文档很难找到准确的答案,因为很大程度上依赖于您的需求和环境(Visual Studio 插件、SHFB 独立)。

您知道 - Sandcastle 旨在根据反射信息文件中的一组 XML cmets 和 API 信息记录代码。因此,它需要至少一个程序集才能生成包含 API 文档的帮助文件。如果您没有包含至少一个具有包含至少一个公共类的命名空间的程序集,则无法生成帮助文件。

我不太确定它是否符合您的要求;你应该在另一个上下文中检查我几年前的答案 (Documenting external dll's with sandcastle)。

但是,正如第二个解决方案(以上链接)所述,您可以使用Additional Content Only Plug-In 仅根据概念内容生成帮助文件。为此,请通过 Plug-Ins 项目属性类别将插件添加到项目中,将 conceptual content 添加到项目中,然后构建帮助文件。有关如何利用概念内容的更多信息,请参阅概念内容主题。

您可能想打开一个small example。

仅供参考 - 如需更多信息,请按标签搜索 SO,例如https://***.com/questions/tagged/sandcastle

【讨论】:

我实际上最终创建了一个 SandCastle 插件(第一个 beta 版本):github.com/mcneel/ResolveThirdPartyReferenceLinks

以上是关于如何在 Sandcastle C# 文档构建中链接第三方文档的主要内容,如果未能解决你的问题,请参考以下文章

文档API生成神器SandCastle使用心得

从 C# 源文件中提取文档注释 [关闭]

使用Sandcastle 基于代码注释生成接口文档

使用 Sandcastle 生成代码帮助文档

Mongodb 如何使用 C# 驱动程序更新许多文档

使用 MarkDown & DocFX 升级 Rafy 帮助文档