Как можно создать документацию Sandcastle для Microsoft Help 2.0 для Delphi, если Delphi не может обеспечить сборку? - PullRequest
2 голосов
/ 08 мая 2019

Насколько я понимаю, существует 3 формата помощи для программ Windows:

  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 с SandCastle https://github.com/EWSoftware/SHFB. Это единственный редактор справки 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 Ответ

2 голосов
/ 08 мая 2019

Как уже прокомментировали другие, HTMLHelp (HH), также известный как Compiled Help Modules (.chm), уже 20 лет, но он доступен и работает в Windows 10. Среда выполнения поставляется с Windows 95 и выше. Вы знаете - после HTML-справки (.chm) Microsoft создала другие справочные системы, но они привязаны к различным системам.

HTMLHelp находится в «режиме обслуживания» уже несколько лет. Никаких новых функций не ожидается, и теперь будут происходить только критические обновления. Насколько я знаю, в Microsoft нет новых систем помощи.

Я думаю, вы могли догадаться, что CHM будет здесь гораздо дольше, если не будет замены. Справка MS 2 (используемые расширения см. Также: *. HXS ) была только для VS 2002/2003/2005/2008, и вся разработка остановлена. Некоторые версии Delphi также поставлялись со справочными системами на основе * .hxs.

MS Help Viewer (.mshc) был многообещающим, но сложным для управления в то время. Это было сделано в основном для таких компаний, как Microsoft, которые кодируют свою помощь из базы данных.

Вы найдете некоторые средства просмотра и инструменты, такие как MshcMigrate например. получить вас от .CHM и .HxS -> .mshc.

Дополнительная информация (концептуальное содержание ручной работы):

Sandcastle был разработан для документирования кода на основе набора комментариев XML и информации API, найденной в информационном файле отражения. Поэтому для создания файла справки, содержащего документацию по API, требуется как минимум одна сборка. Если вы не включите хотя бы одну сборку с пространством имен, содержащим хотя бы один открытый класс, файл справки не может быть создан.

Однако вы можете использовать плагин Только дополнительный контент для создания файла справки, основанного только на концептуальном содержимом. Для этого добавьте плагин в проект через категорию свойств проекта плагинов, добавьте концептуальное содержимое в проект и создайте файл справки. См. Раздел «Концептуальное содержание» для получения дополнительной информации о том, как использовать концептуальное содержимое.

При необходимости вы можете открыть небольшой пример , скопированный из SandCastle Help File Builder: Поиск не работает .

...