インストールと移行 · Clash 技術ブログ

FlClash 0.8.96 が起動しない場合の対処方法

FlClash 0.8.96 が起動しない場合は、MSVCP140.dll、VCRUNTIME140.dll の不足または DesktopCoreFailure で切り分けて調べます。

  • FlClash
  • Windows 11
  • MSVCP140.dll
  • DesktopCoreFailure
  • Smart App Control
目次

エラー内容から起動失敗を二種類に切り分ける

この記事では、Windows に FlClash 0.8.96 をインストールした後、まったく起動しなくなるという最近の二種類の報告を扱います。一つ目は、MSVCP140.dll または VCRUNTIME140.dll が見つからないというダイアログが直接表示されるケースです。元の報告には VCRUNTIME_1.dll とも記載されていますが、具体的なファイル名はこの PC に表示されたダイアログを基準にしてください。

二つ目は画面を開けるものの、コアの起動に失敗して DesktopCoreFailure と表示されるケースです。どちらもインストールの破損に見えますが、実際の切り分け手順は異なります。

公式 issue #2370 には、Windows 11 25H2 へ v0.8.96 をインストールした後に表示された DLL ダイアログが記録されています。issue #2367 には、Smart App Control によるコアのブロックと、Code Integrity イベント 3077、3089 が記録されています。

どちらの報告も、この記事の公開時点ではメンテナーによる確認がありません。ここでは症状の根拠としてのみ扱い、v0.8.96 に同一のインストール不具合が確認済みであるとは記載しません。

FlClash 自体は起動しており、ノードの Timeout、TUN 利用時の通信断、またはサブスクリプションの失敗だけが発生している場合は、この記事の対象外です。DLL ダイアログや Code Integrity の根拠がないまま、ランタイムの導入、セキュリティ機能の無効化、クライアントの再インストールを同時に行わないでください。

最初のエラーで手順を選ぶ

最初に確認できるエラー可能性が高い段階最初に行うこと
MSVCP140.dll / VCRUNTIME140.dll が見つからないアプリが依存する MSVC v14 ランタイムを利用できないアーキテクチャを確認し、Microsoft 公式ランタイムを修復する
DesktopCoreFailure、イベント 3077 / 3089Smart App Control による Code Integrity の判定イベントの根拠を保存し、先に Defender の除外設定を変更しない
ノードの Timeout または DNS エラーだけが発生するコア起動後のネットワーク段階接続と速度テストの切り分けへ進む
インストーラー自体を起動できないダウンロード、アーキテクチャ、または Windows セキュリティによるブロック公式インストールパッケージとファイルの配布元を再確認する

最初にバージョン、アーキテクチャ、元のエラーを記録する

繰り返しダイアログを表示する FlClash をまず終了し、上書きインストールを何度も行わないでください。Windows のバージョン、システムの種類、FlClash のインストールパッケージ名、最初のダイアログまたは DesktopCoreFailure のスクリーンショットを記録します。v0.8.96 の公式 Release には Windows amd64 と arm64 のインストールパッケージおよび圧縮ファイルがあり、ファイル名から実際に導入した種類を確認できます。

それまでシステムプロキシまたは TUN を有効にしていた場合は、Windows のネットワーク設定でシステムプロキシを無効にし、通常の Web ページへ直接接続できることを確認します。クライアントを起動できない状態でローカルプロキシを有効にしたままにすると、起動不良と端末全体の通信断を混同します。Profile、サブスクリプション、アプリのデータディレクトリは削除しないでください。どちらの切り分けでも、最初にユーザー設定を消去する必要はありません。

元へ戻すための情報を保存する

  1. インストールパッケージ名を記録する

    windows-amd64 と windows-arm64 のどちらかを確認し、具体的なアーキテクチャを単に「64 ビット」と記録しないでください。

  2. 最初のエラーを保存する

    DLL 名は省略せず、DesktopCoreFailure については発生時刻も記録し、対応するイベントを確認できるようにします。

  3. システムの直接接続を復元する

    FlClash のシステムプロキシまたは Windows の手動プロキシを無効にし、通信が稼働していないローカルポートへ送られ続けないようにします。

  4. 現在の設定を残す

    Profile、オーバーライド、サブスクリプションは削除せず、相談用のスクリーンショットに token、ノードのアドレス、パスワードを写さないでください。

DLL が不足している場合は Microsoft 公式の v14 ランタイムを修復する

ダイアログに MSVCP140.dll、VCRUNTIME140.dll、または同系統の v14 ランタイムファイルと明記されている場合だけ、この手順へ進みます。Microsoft はこれらのファイルを Visual C++ v14 Redistributable とともに配布しています。

Microsoft の公式ページには、長期的に変わらない x64、x86、ARM64 のダウンロード先があります。現在の FlClash Windows Release の配布対象は amd64 と arm64 です。通常は、公式の配布対象に合う x64 または ARM64 ランタイムを先にインストールし、公式説明や依存関係の確認結果に 32 ビットコンポーネントが明記されている場合だけ x86 を検討します。

amd64 パッケージには Microsoft の x64 ランタイム、arm64 パッケージには ARM64 ランタイムが対応します。Microsoft は現在、x64 パッケージに x64 と ARM64 のバイナリが含まれるとも説明していますが、FlClash パッケージのアーキテクチャとランタイムのダウンロード先を一致させる方法が、最も確認しやすい手順です。

ランタイムをインストールまたは修復する

  1. Microsoft Learn から v14 のダウンロードページを開く

    ページに掲載された aka.ms の公式固定リンクだけを使用し、第三者の DLL 配布サイトからファイルを入手しないでください。

  2. 対応するアーキテクチャを選ぶ

    windows-amd64 では X64、windows-arm64 では ARM64 を使用します。ダウンロード後にファイル名をもう一度確認してください。

  3. 公式インストーラーを実行する

    未インストールの場合は Install、導入済みの場合は Repair を優先して選びます。Windows の案内に従って完了し、DLL を手作業でコピーしないでください。

  4. FlClash をもう一度起動する

    インストール完了後は、まずそのまま起動します。インストーラーから明確に求められた場合だけ Windows を再起動してください。

DesktopCoreFailure では、まず Code Integrity イベントを確認する

DLL ダイアログはなく、画面に DesktopCoreFailure と表示される場合は、まず Windows セキュリティを開き、「アプリとブラウザー コントロール」にある Smart App Control の状態を確認します。

Smart App Control がオンであることだけでは、ブロックの証明になりません。エラーの時刻と Microsoft-Windows-CodeIntegrity/Operational ログのイベントも照合する必要があります。

Microsoft のドキュメントによると、イベント 3077 は適用中のポリシーが実際にブロックしたファイルを記録し、イベント 3089 は署名情報を提供します。まず 3077 でブロックされたファイルを確認し、次に Correlation ActivityID を使って、同一の判定に関連する一つ以上の 3089 を探します。

時刻が近いという理由だけで照合すると、別のソフトウェアの署名イベントを誤って対応付ける可能性があります。#2367 の報告では、二種類のイベントがどちらも FlClash のコアプログラムを示しています。

ログに一致するパスと ActivityID がない場合、DesktopCoreFailure を自動的に Smart App Control が原因だと判断しないでください。

PowerShell で最近の Code Integrity イベントを読み取り専用で確認
Get-WinEvent -FilterHashtable @{
  LogName = "Microsoft-Windows-CodeIntegrity/Operational"
  Id = 3077, 3089
} -MaxEvents 20 |
  Format-List TimeCreated, Id, ActivityId, Message

3077 が FlClash コアを示し、時刻も失敗時と一致する

続いて同じ ActivityID を使い、関連するすべての 3089 署名情報を確認します。

古いイベントしかない、またはパスが別のソフトウェアを示す

今回のブロックとは一致しないため、FlClash のログに戻って最初のコアエラーを確認します。

Smart App Control がオフまたは評価モードで、3077 もない

セキュリティ設定は変更せず、インストールパッケージ、サービス、コアのログを確認します。

Defender のスキャンでは脅威なしだが、3077 は存在する

これは独立した Code Integrity の判定であり、ウイルススキャンの結果をイベントの根拠の代わりにはできません。

ブロックを確認しても、セキュリティ機能の無効化を第一の選択肢にしない

Microsoft は現在、Smart App Control にはアプリごとの許可スイッチがないと説明しています。通常の Defender 除外設定も、Code Integrity の信頼判定の代わりにはなりません。3077 を確認した後は、ディレクトリの除外を繰り返し追加したり、第三者の再パッケージ配布サイトで「ロック解除済み」と称するコアを探したりしないでください。

より安全な順序は、公式インストールパッケージと、同じ ActivityID に属する 3077 および 3089 の機密情報を伏せた根拠を保存して FlClash へ報告し、検証可能な署名または明確な評価状態を持つ新しい公式ビルドがプロジェクトから提供されているか確認することです。

対応を待つ間は、この PC で以前実際に起動できた公式 FlClash バージョンへ戻すか、メンテナンスが続いており配布元を確認できる別のクライアントを一時的に利用できます。ロールバック後もブロックされる場合は、何度もダウングレードするのをやめてください。

Smart App Control 全体を無効にするとシステムレベルの保護が低下し、影響は FlClash だけに留まりません。Microsoft の FAQ では近年、再び有効にするための条件も変更されています。そのため、この記事では無効化を定型的な修復手順にはしません。どうしても必要な場合は、この PC の Windows バージョンに対応する公式説明を読み、端末全体への影響を理解したうえで判断してください。

元へ戻せる対処を優先する

  1. イベントの根拠を保存する

    3077、関連する ActivityID、対応するすべての 3089、ファイルパス、署名状態を記録し、ユーザー名や個人用ディレクトリは伏せます。

  2. 公式プロジェクトの更新を確認する

    FlClash の公式リポジトリまたは Release で提供される後続ビルドだけを使用し、第三者が再署名したファイルはダウンロードしないでください。

  3. 動作確認済みのバージョンを試す

    まず Profile をバックアップし、この PC で起動を確認済みの公式バージョンを使用します。起動できたことを恒久的な安全性の結論にはしないでください。

  4. 必要に応じて一時的に別のクライアントへ切り替える

    プロジェクトの公式配布元から、現在もメンテナンスされている代替クライアントを選び、バックアップ済みの設定を読み込み直します。

選択した手順に沿って FlClash が起動するか確認する

DLL の手順を終えたら FlClash を起動し直し、元のダイアログが表示されず、画面とコアの両方を正常に読み込めることを確認します。Smart App Control の手順を終えた場合は、DesktopCoreFailure が消え、今回の起動時刻付近に FlClash コアを示す新しい 3077 がないことも確認します。ウィンドウが開くだけでは完了ではなく、コアと設定の読み込みも成功する必要があります。

最初の復旧確認では TUN をオフのままにし、元の Profile で動作確認済みのノードを一つ選び、システムプロキシを有効にして通常の HTTPS リクエストを一回完了します。これにより、「アプリがようやく起動した」ことと「ネットワーク設定も引き続き使える」ことを分けて確認できます。

起動経路の復旧基準

  • 起動時に MSVCP140.dll または VCRUNTIME140 系列のダイアログが表示されない
  • FlClash の画面を開け、コアの状態が DesktopCoreFailure ではない
  • 今回の起動時刻付近に FlClash コアを示す新しい Code Integrity 3077 がない
  • 元の Profile とポリシー選択が残っており、ユーザーデータを先に消去していない
  • TUN をオフのまま、システムプロキシで新しい HTTPS リクエストを完了できる
  • FlClash の終了後、Windows の直接接続がすぐに復旧する

それでも起動しない場合に再インストールまたはロールバックする

ランタイムを修復しても同じ DLL ダイアログが表示される場合は、まず「インストールされているアプリ」で Microsoft Visual C++ v14 Redistributable のアーキテクチャを確認します。表示名はバージョンによって変わる可能性があります。そのうえで Repair をもう一度実行してください。

続いて FlClash v0.8.96 の公式 Release から、システムに合うインストールパッケージを再度ダウンロードします。同じアーキテクチャの公式圧縮ファイルと比較し、問題がインストール処理だけで起きるか確認することもできます。

圧縮ファイルでも同じ DLL エラーが出る場合は、FlClash の上書きを繰り返さず、ランタイムを引き続き確認します。DLL エラーが消えて DesktopCoreFailure に変わった場合は、別の分岐へ移ったため Code Integrity イベントを確認してください。Smart App Control のブロックが残っているとき、信頼状態が変わっていない同じファイルを再インストールしても、通常は異なる結果になりません。

再試行後の結果をどう判断するか

結果次の手順
インストール版と圧縮版の両方で同じ DLL エラーが出るv14 ランタイムのアーキテクチャ、Repair の結果、Windows のインストール状況を再確認する
DLL エラーが消え、DesktopCoreFailure が表示される3077 / 3089 の確認へ移り、DLL のコピーを続けない
旧版は起動するが、新版は引き続き失敗する旧版とイベントの比較を保存してプロジェクトへ報告し、公式に修正済みだと偽って伝えない
すべてのバージョンが 3077 でブロックされる再インストールの繰り返しをやめ、信頼できる公式ビルドを待つか、代替クライアントを使用する

最後に七項目のチェックリストで復旧を確認する

最終チェックリスト

  • エラー文と対処手順が一致し、無関係な設定を一度に複数変更していない
  • FlClash パッケージと Microsoft v14 ランタイムのアーキテクチャを確認済み
  • 第三者のサイトから単体 DLL をダウンロードしたり、手作業で登録したりしていない
  • DesktopCoreFailure を 3077、Correlation ActivityID、関連する 3089 に基づいて判断した
  • Defender の除外設定を Smart App Control の許可方法として扱っていない
  • Profile、サブスクリプション、オーバーライドが保たれ、報告に機密情報が含まれていない
  • アプリ、コア、システムプロキシ、終了後の直接接続を実際のリクエストで確認した

参考資料