다음을 통해 공유


日本語版の Windows 10 で ヘルプ ビューアー 1.1 のカスタム ヘルプ コンテンツ インストールに失敗する

こんにちは。Visual Studio サポート チームです。

今回は日本語版の Windows 10 環境において、Visual Studio 2010 付属の ヘルプ ビューアー 1.1 にカスタム ヘルプ コンテンツを追加する際に発生する可能性があるエラーと、その対処方法についてご案内します。

 

現象

日本語版の Windows 10 環境において、 Visual Studio 2010 付属の ヘルプ ビューアー 1.1 にカスタム ヘルプ コンテンツ を追加した場合、以下のエラー メッセージが表示され失敗することがあります。

 

Application イベント ログには以下のようなエラーが出力されます。

 

<イベント ログの内容>
---------
ログの名前: Application
ソース: HelpLibManager
日付: xxxx/xx/xx xx:xx:xx
イベント ID: 1003
タスクのカテゴリ: (1)
レベル: エラー
キーワード: クラシック
ユーザー: N/A
コンピューター: DESKTOP-FT0555A 

説明:
ローカル コンテンツを更新しているときにエラーが発生しました: System.Runtime.InteropServices.COMException (0x80040154): CLSID {9DAA54E8-CD95-4107-8E7F-BA3F24732D95} を含むコンポーネントの COM クラス ファクトリを取得中に、次のエラーが発生しました: 80040154 クラスが登録されていません (HRESULT からの例外:0x80040154 (REGDB_E_CLASSNOTREG))。

場所 System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
場所 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
場所 System.Activator.CreateInstance(Type type, Boolean nonPublic)
場所 System.Activator.CreateInstance(Type type)
場所 Microsoft.Help.Index.WordBreaker.InitWordBreaker(CultureInfo culture)
場所 Microsoft.Help.Index.WordBreaker.WordBreak(String content, Boolean bUseNoiseList, CultureInfo culture, Boolean query)
場所 Microsoft.Help.Index.Parser.IndexContent(Dictionary`2 index, String content, Int32 currentAssetIndexId, RankIndicators flags, Boolean indexAsUpperCase, Boolean bUseNoiseList)
場所 Microsoft.Help.Index.Parser.Parse(Stream stream, IndexData indexData, AssetData assetData)
場所 Microsoft.Help.Index.Indexer.ProcessContainerFile(String inputFilePath, IndexData indexData)
場所 Microsoft.Help.Index.Indexer.IndexContainer(String containerPath, String indexFileName)
場所 Microsoft.Help.Index.Catalog.GetIndexFileFromPackageFile(String packageFileName, String contentWorkPath, String contentVendorPath)
場所 Microsoft.Help.Index.Catalog.ProcessModification_Update(String contentPath, String vendorPath, String contentWorkPath, CatalogModificationEntry catalogModificationEntry)
場所 Microsoft.Help.Index.Catalog.Modify(String contentPath, String contentWorkPath, String vendorPath, CatalogModificationEntry[] modificationList)
場所 Microsoft.Help.Index.Indexer.ModifyCatalogs(CatalogUpdateRequest[] catalogUpdateRequestList, String queryManifestFilePath)
場所 Microsoft.Help.CacheLib.IndexMerger.Generate(CatalogUpdateRequest[] requests)
場所 Microsoft.Help.CacheLib.DocumentationCache.MergeCatalogs(ChangeDescription change, StatusCallback`1 statusCallback)
場所 Microsoft.Help.CacheLib.DocumentationCache.IntegrateChange(VendorName vendorName, ChangeDescription change, StatusCallback`1 statusCallback, CertificateCheckCallback certCheckCallback)
場所 Microsoft.Help.CacheLib.DocumentationCache.Update(VendorName vendorName, Boolean checkForOnlineUpdates, StatusCallback`1 statusCallback, CertificateCheckCallback certCheckCallback)
場所 Microsoft.Help.CacheLib.CacheManager.<>c__DisplayClass24.<UpdateAsync>b__23()
場所 Microsoft.Help.CacheLib.AsyncOperationRunner.Run(Object state)
---------

本現象は、日本語版の Windows 10 と、ヘルプ ビューアー 1.0、または 1.1 の組み合わせで発生する可能性があります。

また、本現象は Windows 8.1 以前の OS では発生せず、また、Windows 10 上でも ヘルプ ビューアー 2.0 以上であれば発生しません。

 

原因

Windows 10 の日本語版では、Windows 8.1 以前の 日本語版 OS とは異なり、既定では、英語のワード ブレーカー コンポーネントが登録されなくなりました。

ヘルプ ビューアー 1.0 および 1.1 は、カスタム ヘルプ コンテンツを追加する際の処理において英語のワード ブレーカーを利用していましたが、Windows 10 日本語版ではこれを利用することができずにエラーとなり、カスタム ヘルプ コンテンツの追加に失敗します。

 

対処方法

日本語版の Windows 10 に英語言語パックを追加し、英語のワード ブレーカー コンポーネントを登録して有効化します。

英語のワード ブレーカー コンポーネントは、Windows 10 からは OS の英語言語パックの一部として提供されるようになりました。

手順

 1. [設定] ボタンをクリックします。

 

2. [時刻と言語] をクリックします。

3. [地域と言語] を選択し、[言語を追加する] の横の "+" マークをクリックします。

4. [English 英語] – [English (United States) 英語] をクリックします。

5. [English (United States)]が言語に追加されるので、選択をし、[オプション]をクリックします。

6. [言語パックのダウンロード] – [ダウンロード]をクリックします。言語パックのダウンロードとインストールが開始されます。

 

7. 言語パックのインストールの完了を確認します。

言語パックのインストール完了後、再度、カスタム ヘルプ コンテンツをインストールします。