如果Delphi无法提供程序集,如何为Sandphi构建Sandcastle Microsoft Help 2.0文档?

时间:2019-05-08 08:04:56

标签: html delphi chm sandcastle

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

  1. hlp-非常老的格式,来自RichText来源,不再受支持
  2. chm-仍受支持的格式,来自htm来源
  3. 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期望可以提供自省功能并可以从中提取某种文档的某些.NET程序集(dll或exe)。但是,如果我要编写Delphi程序,并且不想从exe文件中提取文档,那该怎么办?如何要求SandCastle不要读取任何二进制文件? Embarcadero和其他许多Delphi组件供应商都能够在没有这种自省的情况下生成他们的帮助文件,因此,我想我也应该能够这样做。

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

一些其他信息(手工概念内容):

Sandcastle旨在根据反射信息文件中的一组XML注释和API信息来记录代码。这样,它至少需要一个程序集才能生成包含API文档的帮助文件。如果您不包含至少一个带有至少包含一个公共类的名称空间的程序集,则无法生成帮助文件。

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

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