「MS Help 2.x ランタイムがインストールされていない」というエラーを解消する

# はじめに

Windows 11 で **『Delphi XE』** のヘルプを見ようとしたらエラーが出たので **「あぁ、ヘルプをインストールしていなかったのだな」** と、追加でヘルプファイルをインストールしようとした所、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/78571c74-91dc-243e-c000-b12155b9270a.png)
このようなエラーが出てインストールできませんでした。

```text
H2Reg.exe

** Error **
MS Help 2.x runtime files are not installed on this PC.

Installation/registration of Help files cannot proceed.
```

Windows 10 環境ではヘルプを表示できているのですが、こちらにはイロイロとインストールしていて何の参考にもなりませんでした。 

この記事は「MS Help 2.x ランタイムがインストールされていない」というエラーを解消して、ヘルプを表示できるようにするという趣旨で書かれています。手っ取り早く解決方法を知りたい方は下の方にありますので、ささっとスクロールして読んでください。

# MS Help 2.x

とりあえずこれが何者かについての説明が必要だと思います。

## Windows ヘルプの歴史

ざっくりとした Windows ヘルプの歴史です。

### ・Microsoft WinHelp
Windows 3.0 で実装されたヘルプシステム。ヘルプファイルの拡張子は `*.hlp` で、内部形式は RTF。

16bit 用の Winhelp と、32bit 用の WinHelp32 がある。

Windows Vista 以降では機能が削除されている。以前は Vista / 7 用の WinHelp が配布されていたが、現在では 8/8.1 用のものだけが配布されている。Windows 10/11 用の WinHelp はそもそも配布されていない。

 - [Microsoft WinHelp (Wikipedia)](https://ja.wikipedia.org/wiki/Microsoft_WinHelp)
 - [Windows Vista 以降で HLP 形式ヘルプを使用 (Mr.XRAY)](http://mrxray.on.coocan.jp/Delphi/Others/Win32HLP.htm)
 - [Windows 10 用 WinHlp32.exe インストールバッチファイル](https://moondoldo.com/DoldoWorkz/?Windows10用WinHlp32.exeインストールバッチファイル)

### ・Microsoft HTML Help 1.x
Windows 98 (正確には Windows 95 OSR 2.5) で実装されたヘルプシステム。ヘルプファイルの拡張子は `*.chm` で、内部形式は HTML。

 - [Microsoft Compiled HTML Help (Wikipedia)](https://ja.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help)
 - [HLP 形式ヘルプを CHM 形式のヘルプに変換 (Mr.XRAY)](http://mrxray.on.coocan.jp/Delphi/Others/Win32HLP2ChmHLP.htm)

### ・Microsoft Help 2.x
Microsoft Visual Studio 2002/2003/2005/2008 および Office 2007/2010 で使用されるヘルプエンジン。ヘルプビューアは **Microsoft Document Explorer**。ヘルプファイルの拡張子は `*.hxs`。

一般的なヘルププラットフォームとしてリリースされない事になったため、広く使われているとは言い難い。Borland / CodeeGear / Embarcadero 製品のヘルプシステムとしても使われている。

`ms-help://` プロトコルでヘルプファイルを開く事ができる。

:::note warn
Microsoft 製品の場合には、そのインストーラが MS Help 2.x ランタイムを配布するため、「MS Help 2.x ランタイムがインストールされていない」という状況は基本的に Delphi / C++Builder ユーザーしか遭遇しない事になる。
:::

 - [Microsoft Help 2 (Wikipedia: en)](https://en.wikipedia.org/wiki/Microsoft_Help_2)

### ・Microsoft Help System (旧: Help 3.x)
Windows 8 以降、または Microsoft Visual Studio 2010 以降に付属するヘルプシステム。ヘルプビューアは **Microsoft Help Viewer**。

`ms-xhelp://` プロトコルでヘルプファイルを開く事ができる。

こちらも広く使われているとは言い難い。

 - [Microsoft Help Viewer (Wikipedia: en)](https://en.wikipedia.org/wiki/Microsoft_Help_Viewer)


## Windows 11 に MS Help 2.x ランタイムをインストールする

先述の通り、MS Help 2.x は一般的なヘルプシステムではなく、製品に付属のヘルプシステムという位置付けのため、ランタイムのインストーラというものは存在しないようです。

調べてみた所、無償の製品で MS Help 2.x のランタイムが含まれているものは 2 つあるようです。

 - .NET Framework SDK 1.x
   - [.NET Framework SDK 1.1 [En] (Internet Archive)](https://archive.org/download/Microsoft.NET.Framework.SDK.Version.1.1/setup.exe)
   - [.NET Framework SDK 1.1 [Ja] (ht-deko.com)](https://ht-deko.com/software/dotNETSDK_v1_1.zip)
 - [Visual Studio 2008 Express Edition (download.microsoft.com)](http://download.microsoft.com/download/6/F/1/6F161D1A-E893-4BFA-A53A-AF6B0D56A55D/VS2008ExpressWithSP1JPNX1504866.iso)

このいずれかをインストールすれば良さそうなので、.NET Framework SDK 1.1 をインストールしてみました。

:::note
『.NET Framework SDK 1.1』は、Delphi 2005 / Borland Developer Studio 2006 の インストール DVD Disc #1 の `dotNETSDK` フォルダ、または Turbo Explorer の `prereqs_jp.zip` に含まれています。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/66b185aa-974f-7af5-5a65-0028c3e78cf0.png)
このインストーラは、おあつらえむきにドキュメント関連だけをインストールできるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/203b930c-cc28-109d-d046-cf8594b95573.png)
そしたら次は『RAD Studio (Delphi) XE』のヘルプをインストール。このヘルプインストーラには『Document Explorer』が含まれています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/bd717c7d-58c3-7d29-adae-d70b6278ce27.png)
インストール完了後に無事にヘルプを表示できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/be35f9b2-10af-e386-4c71-0a319f02e6a6.png)
MS Help 2.x ランタイムの件が Visual Studio 2008 Express Edition で解決するのかは試せていませんが、次に機会があったらやってみたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/2f53839f-530f-0c96-985c-52a48bdf9a78.png)

## RAD Studio のバージョンと Document Explorer のバージョン
RAD Studio と、使われている Document Explorer のバージョンの関係は次のようになっています。

| RAD Studio | Document Explorer |
|:---|:---|
| 2005, 2006 | Document Explorer 7.0  |
| 2007 | Document Explorer 8.0.50727.42 RTM |
| 2009～XE7 | Document Explorer 9.0.21022.8 RTM |

# おわりに
実際の所、最初から MS Help 2.x ランタイムが入っていなかったのか、Windows 11 のアップデートで消されたのかは定かではないのですが、この現象が発生したら『.NET Framework SDK 1.1』をインストールすればよさそうです。

ドキュメントが Web サイトにあっても、ある日いきなりバッサリ削除されたり、サイトの構成が変わってリンク切れしたりでアテにならなかったりします。すべてが Internet Archive に捕捉されているとは限りません。

そんな時に有用なのがローカルヘルプなのですが、そのローカルヘルプすらも簡単に見られないとなると、過去の情報を調べたい時に時間を大量に浪費してしまいます…はぁ。

**See also:**

 - [大量のリンク切れをIPAが謝罪 ～重要コンテンツは原則、全件リダイレクトへ (窓の杜)](https://forest.watch.impress.co.jp/docs/news/1490762.html)
 - [Delphi / C++Builder の新機能 (2007 以降) (Qiita)](https://qiita.com/ht_deko/items/23f51b4345f5d9ef14b1)
 - [Windows 8.x / 10 / 11 が Delphi 2007 の .targets ファイルを消すのでどうにかする (Qiita)](https://qiita.com/ht_deko/items/1b1e80e8476c05fed372)

## 追記: 2023/04/17
開発者向け Windows 11 Enterprise を使ってテストしてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/94a2958a-8469-809d-5ca9-91d19f280652.png)
Delphi 2009 のドキュメントだけをインストールして開けるかテストしてみた所、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/678a71f4-6219-9717-697c-120d219b5c22.png)
普通にヘルプファイルは表示されました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/f6ce2722-5382-d8ef-6cde-e43d5c58275b.png)
なので、「MS Help 2.x ランタイムがインストールされていない」という状況は **Windows Update が後で削除したか "おま環"** という事になります。

 - \[Windows 機能の有効化または無効化\] で `.NET Framework 3.5 (.NET 2.0 および 3.0 を含む)` を事前にインストールしています。これをインストールしておかないと、インストーラーでエラーになります。この制約により『Windows サンドボックス』によるテストは行えません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/f9c0f944-3976-0980-b681-bebd5b3aa0a0.png)
 - 『開発者向け Windows 11 Enterprise』には『Visual Studio 2022』等の開発環境が最初からインストールされているので、純粋な Windows 11 環境とは言えません。
 -  MS Help 2.x ランタイムを Delphi の (ヘルプ) インストーラがインストールしているかは不明 (Document Explorer はインストールしている)。今度この現象が起きたら、Document Explorer の修復で問題が解決するかどうか試してみたいと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21785/e6e17ec3-d6c5-f611-57b7-aa38953fad14.png)
**See also:**

 - [Windows 11 開発環境を取得する (developer.microsoft.com)](https://developer.microsoft.com/ja-jp/windows/downloads/virtual-machines/)