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

  • hlp-很老的格式,来自RichText来源,不再受支持
  • chm-仍受支持的格式,来自htm来源
  • Microsoft帮助2.0-最现代的格式,由Visual Studio,Embarcadero Delphi和许多其他程序使用。

  • 我正在尝试使用SandCaSTLe https://github.com/misiam/Sandcastle-Sample构建Microsoft Help 2.0测试项目https://github.com/EWSoftware/SHFB。这是我所知道的唯一的Help 2.0编辑器(至少是开源的)。甚至HelpAndManual程序也不支持Help 2.0格式的输出。但是此SandCaSTLe测试项目给出了错误:
    SHFB: Error BE0065: BUILD FAILED: Project assembly does not exist: D:\Help\Sandcastle-Sample-master\SandcastleSample\SandcastleSample.Samples\bin\Debug\SandcastleSample.Samples.dll
    

    所以-我想,SandCaSTLe期望可以提供自省(introspection)功能并可以从中提取某种文档的.NET程序集(dll或exe)。但是,如果我要编写Delphi程序,并且不想从exe文件中提取文档,那该怎么办?如何要求SandCaSTLe不要读入任何二进制文件? Embarcadero和其他许多Delphi组件供应商都能够在没有这种自省(introspection)的情况下生成他们的帮助文件,因此,我想,我也应该能够做到这一点。

    最佳答案

    正如其他人已经提到的那样,HTMLHelp(HH)也称为编译帮助模块(.chm)已有20年的历史,但是可以在Windows 10上运行。Windows 95和更高版本附带了运行时。您知道-自HTML帮助(.chm)以来,Microsoft创建了其他帮助系统,但它们与各种系统相关。

    HTMLHelp处于“维护模式”已有好几年了。预计不会有任何新功能,并且从现在开始将仅进行重要更新。据我所知,Microsoft没有开发新的帮助系统。

    我想您可能会猜到,由于没有替代品,因此CHM将在这里停留很长时间。 MS Help 2(使用的扩展名,另请参见:*.HXS)仅用于VS 2002/2003/2005/2008,并且所有开发都已停止。某些Delphi版本也附带了基于* .hxs的帮助系统。

    MS帮助查看器(.mshc)很有前途,但当时很难管理。它主要是为像Microsoft这样的公司编写的,这些公司从数据库中编码其帮助。

    您会发现一些查看器和工具,例如MshcMigrate。让您摆脱.CHM和.HxS-> .mshc的困扰。

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

    SandcaSTLe旨在根据反射信息文件中的一组XML注释和API信息来记录代码。因此,它至少需要一个程序集才能生成包含API文档的帮助文件。如果您不包括至少一个程序集,而该程序集的 namespace 包含至少一个公共(public)类,则无法生成帮助文件。

    但是,您可以使用Additional Content Only Plug-In仅基于概念性内容来生成帮助文件。为此,请通过Plug-Ins项目属性类别将插件添加到项目中,将conceptual content添加到项目中,并构建帮助文件。请参阅概念性内容主题,以获取有关如何利用概念性内容的更多信息。

    如果需要,您可能需要打开从small example复制的SandCastle Help File Builder: Search not working

    关于html - 如果Delphi无法提供程序集,如何为Delphi构建SandcaSTLe Microsoft Help 2.0文档?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56036161/

    10-14 09:38