如果Delphi无法提供组件,那么如何为Delphi构建Sandcastle Microsoft Help 2.0文档



据我了解,Windows程序有3种帮助格式:

  1. HLP-非常古老的格式,来自RichText来源,不再支持
  2. CHM-仍然受支持的格式,来自HTM来源
  3. Microsoft Help 2.0-最现代的格式,由Visual Studio,Embarcadero Delphi和许多其他程序使用。

我正在尝试构建Microsoft Help 2.0测试项目https://github.com/misiam/sandcastle-sample with sandcastle https://github.com/ewsoft.com/ewsoftware/shfb。这是我知道的唯一帮助2.0编辑器(至少开源(。即使是帮助和手册程序也不支持Help 2.0格式的输出。但是这个沙堡测试项目给出了错误:

SHFB: Error BE0065: BUILD FAILED: Project assembly does not exist: D:HelpSandcastle-Sample-masterSandcastleSampleSandcastleSample.SamplesbinDebugSandcastleSample.Samples.dll

所以 - 我想,那个沙堡期望某些.NET组件(DLL或EXE(可以提供内省,并且可以从中提取某种文档。但是,如果我正在制作Delphi程序,并且如果我不想从EXE文件中提取文档,那么我期望做什么?如何要求Sandcastle不要阅读任何二进制文件?Embarcadero和许多其他Delphi组件供应商能够在没有此内省的情况下生成其帮助文件,因此,我想,我也应该能够做到这一点。

正如其他人已经评论了HTMLHELP(HH(,也称为Compiled帮助模块(.CHM(已有20年的历史,但可在Windows 10上运行。。您知道 - Microsoft自HTML帮助(.CHM(以来已经创建了其他帮助系统,但它们与各种系统相关。

HTMLHELP现在处于"维护模式"几年。从现在开始,没有预期的新功能,只有关键更新将发生。据我所知,微软没有开发新的帮助系统。

我认为您可以猜到CHM会在这里待得更长,因为没有替代品。MS Help 2(使用的扩展名另请参见: *.HXS(仅适用于2002/2003/2005/2008,所有开发都停止了。一些Delphi版本也通过基于 *.hxs的帮助系统提供。

MS Help Viewer(.mshc(很有希望,但当时很难管理。它主要是针对Microsoft这样的公司来编码数据库的公司的。

您会发现一些观众和工具,例如Mshcmigrate,例如从.chm和.hxs-> .mshc。

一些进一步的信息(手工概念性内容(:

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

但是,您可以仅根据概念内容使用其他内容插件来生成帮助文件。为此,请通过插件插入项目属性类别将插件添加到项目中,在项目中添加概念内容,然后构建帮助文件。有关如何利用概念内容的更多信息,请参见概念内容主题。

如果需要,您可能希望打开一个从Sandcastle帮助文件构建器复制的小示例:搜索不起作用。

最新更新