はじめに

hostfxr.dll が見つからない、または読み込めないというエラーは、アプリが適切な.NETホストや必要なネイティブ前提条件を利用できないときに発生します。対処方法は4つです。まず問題のあるアプリを修復し、次にMicrosoft Visual C++ Redistributable、必要な.NETランタイムの順で確認します。複数のアプリでDLLエラーが続く場合のみ、最後に広範なスキャンを検討してください。各方法の後でアプリを起動し、解決した時点で作業を終了します。DLL配布サイトからhostfxr.dllだけを入手する方法は避けてください。

症状から選ぶ対処方法の早見表

確認できる症状に最も近い方法から始めると、Windowsの共有コンポーネントへ不要な変更を加えずに済みます。

確認できる症状最初に試す方法選ぶ理由
インストールや更新後、1つのアプリだけが起動しない方法1アプリ側で専用の.NETコピーを管理している可能性があります。
hostfxr.dllのエラーだけが表示され、必要な.NETバージョンは示されない方法2Microsoftは、このエラーの前提条件としてVisual C++ Redistributableを案内しています。
エラーに.NETのバージョンまたはアーキテクチャが表示される方法3要求されたランタイムが存在しないか、構成が一致していない可能性があります。
複数のアプリでDLLや依存関係の読み込みエラーが起きる方法4公式の個別対処後に、より広い範囲を診断できます。

方法1:問題が起きるアプリを修復または再インストールする

この方法が適する場合:ほかの.NETアプリは動作し、特定のアプリだけが起動しない場合に選びます。自己完結型または専用ランタイム同梱型のアプリでは、Windows全体ではなくアプリのパッケージが破損している可能性があります。

  1. 問題が起きるアプリを完全に終了します。
  2. Windows 11では設定 > アプリ > インストールされているアプリ、Windows 10ではアプリと機能を開きます。
  3. 対象アプリの詳細オプションを開き、利用できる場合は修復を選択します。
  4. 処理が終わったらアプリをもう一度起動します。
  5. 修復項目がない場合や改善しない場合は、アプリをアンインストールし、開発元の公式サイトまたはMicrosoft Storeから再インストールします。

すべてのプログラムに修復機能があるわけではありません。従来型のデスクトッププログラムをコントロールパネルから修復する手順は、Windowsのアプリとプログラムを修復するMicrosoft公式手順でも確認できます。

結果の確認方法

アプリを2回起動し、以前エラーが発生した操作を繰り返します。hostfxr.dllに関する同じメッセージが表示される場合は、方法2へ進んでください。

方法2:「hostfxr.dll が見つからない」場合はMicrosoft Visual C++ v14 Redistributableを導入する

この方法が適する場合:アプリの修復で改善しない場合や、.NETコマンドでもhostfxr.dll関連のエラーが出る場合に選びます。Microsoftの.NET導入資料では、このDLLが見つからない場合の前提条件としてVisual C++ Redistributableが案内されています。

  1. Microsoftが公開している最新のVisual C++ Redistributableのページを開きます。
    Microsoft Visual C++ Redistributableをインストールしてhostfxr.dllエラーに対処する画面
  2. アプリのアーキテクチャに合うパッケージとして、X64、X86、またはARM64を選びます。
  3. Microsoftのデジタル署名が付いたインストーラーを実行します。
  4. インストールを選び、既存パッケージで選択肢が表示される場合は修復を実行します。
  5. インストール完了後にWindowsを再起動します。Microsoftランタイムのインストール後にWindowsを再起動する画面

結果の確認方法

対象アプリを起動します。エラーが消えれば完了です。メッセージが特定の.NETバージョンを要求するようになった場合や、複数の.NETアプリで問題が続く場合は、方法3へ進みます。

方法3:必要な.NETランタイムを導入する

この方法が適する場合:エラーメッセージに.NETのメジャーバージョンやアーキテクチャが表示される場合、または共有ランタイムを使用する複数のアプリが動作しない場合に選びます。hostfxrは、インストール済みのバージョン別ホストディレクトリから適切なランタイムを選択します。

  1. エラーメッセージ全体から、要求される.NETバージョンとアーキテクチャを控えます。
  2. コマンドプロンプトを開きます。
  3. 次のコマンドでインストール済みランタイムを一覧表示します。
    dotnet --list-runtimes
  4. 表示された一覧と、アプリが要求するバージョンを比較します。
  5. 該当するサポート対象バージョンを.NETの公式ダウンロードページから入手します。
  6. 正しいアーキテクチャのパッケージをインストールし、対象アプリを再起動します。

Windowsデスクトップアプリでは、開発元から別の指定がない限りDesktop Runtimeを選びます。SDKは主にアプリの開発やビルドに使用するもので、通常の実行には対応するランタイムで十分です。コマンドと標準フォルダーの詳細は、インストール済み.NETバージョンを確認するMicrosoft公式資料で確認できます。

結果の確認方法

dotnet --list-runtimesを再実行し、必要なランタイムが正しいアーキテクチャで表示されることを確認します。その後、元のアプリを起動します。以前のメッセージが出ずに起動できれば解決です。

公式の修復でhostfxr.dllエラーが解消しても、複数のプログラムで別のDLLや依存関係の問題が残る場合は、任意の追加手段としてFionn DLL Fixerによる広範なスキャンを検討できます。

広範なスキャンは、Microsoftやアプリ開発元の個別対処を置き換えるものではありません。必ず公式手順の後に実行してください。

方法4:広範なDLL問題にはFionn DLL Fixerを使用する

この方法が適する場合:方法1から3を完了した後も、複数のアプリでDLLの欠落、破損、バージョン不一致、依存関係の読み込み失敗が起きる場合に検討します。スキャン結果だけではhostfxr.dllの異常を断定できないため、対象アプリが起動するかを別に確認する必要があります。

  1. Fionn DLL Fixerを起動します。PC上のDLLとシステムの問題がスキャンされ、完了後に検出結果が表示されます。Fionn DLL Fixerを起動しシステムのスキャン結果を確認する画面
  2. スキャンが終了したら、「Repair」を選択して検出された問題の修復を開始します。Fionn DLL Fixerのスキャン後に「Repair」を選択する画面
  3. 処理が完了するまで待ちます。修復中はボタンに「Fixing」と表示されます。Fionn DLL FixerでDLLの問題を修復している画面
  4. 完了確認が表示されたら「Ok」を選択します。再起動を求められた場合は、結果を確認する前にWindowsを再起動します。Fionn DLL Fixerで修復完了を確認する画面
  5. 再起動後も問題が続く場合は、「Recheck」を選択して再スキャンします。新しい問題が検出された場合は、もう一度「Repair」を実行します。再起動後に「Recheck」で再スキャンする画面

結果の確認方法

再スキャンを完了し、最初に失敗した操作をもう一度実行します。修復完了の表示は参考になりますが、hostfxr.dllエラーが解決したかどうかは、対象アプリが正常に起動したことで確認してください。

避けるべき操作

  • 単独のDLLをコピーする:hostfxrは.NETのバージョン別ディレクトリに配置され、ランタイムの選択に関与します。無関係なコピーではバージョンやアーキテクチャが一致しない可能性があります。
  • 診断せずにPATHを変更する:最初にwhere.exe dotnetを実行します。異なるアーキテクチャのdotnetが優先されていると確認できた場合だけ、PATHの順序を見直してください。
  • 1つのアプリの問題をシステム全体の障害と判断する:特定のアプリだけが動作しない場合は、そのアプリの修復を優先します。
  • ファイルの存在だけを確認する:hostfxr.dllが存在していても、前提条件、アーキテクチャ、バージョンが一致しなければ読み込めません。

まとめ

hostfxr.dllが見つからない場合は、影響範囲の狭い対処から進めます。最初に対象アプリを修復し、改善しなければMicrosoft Visual C++ v14 Redistributableと、エラーが要求する.NETランタイムを確認してください。各変更後にアプリを起動し、共有ランタイムについてはdotnet --list-runtimesでバージョンとアーキテクチャも検証します。複数のDLLエラーが残る場合は、Fionn DLL Fixerを追加診断に利用できます。それでも解決しないときは、エラー全文、アプリのバージョン、確認したアーキテクチャを開発元へ伝えてください。

よくある質問

hostfxr.dllとは何ですか?

hostfxr.dllは、.NETアプリの起動時に適切なランタイムを選択するネイティブホストコンポーネントです。Microsoftの標準配置では、バージョン別のhost/fxr/<version>ディレクトリに含まれます。各アプリのフォルダーやSystem32へ任意にコピーする汎用DLLではありません。

hostfxr.dllだけをダウンロードしても安全ですか?

推奨できません。単独のDLLには所属するランタイムのディレクトリ構成が含まれず、アプリのアーキテクチャと一致しない可能性もあります。アプリの公式インストーラー、Microsoft Visual C++ Redistributable、または必要な.NETランタイムを使用してください。

どの.NETパッケージをインストールすればよいですか?

エラーメッセージまたはアプリ開発元が指定するメジャーバージョンとアーキテクチャを選びます。WindowsデスクトップアプリではDesktop Runtimeがよく使用されますが、基本の.NET Runtimeを要求するアプリもあります。SDK全体は、主にアプリを開発またはビルドするときに必要です。

hostfxr.dllが存在するのにエラーが続くのはなぜですか?

ファイルが存在していても、Windowsが正常に読み込めるとは限りません。アプリとDLLのアーキテクチャが異なる、同梱ランタイムが破損している、ネイティブ前提条件が不足している、または別の.NETバージョンを要求している可能性があります。エラー全文と表示されたパスを確認すると、適切な方法を選びやすくなります。