エラーの内容
アプリをダブルクリックすると――ゲーム、Pythonインストーラー、データベースツール、何であれ――Windowsが次のダイアログを表示します:
The code execution cannot proceed because VCRUNTIME140.dll was not found.
Reinstalling the program may fix this problem.
アプリは起動を拒否します。Windowsが提案するようにアプリを再インストールしても、たいていは何も解決しません。このDLLはアプリ本体にバンドルされているものではなく、マシンに存在するかどうかわからない別のMicrosoftパッケージの中にあります。
原因
VCRUNTIME140.dllはMicrosoft Visual C++ 2015〜2022 再頒布可能パッケージの一部です。MSVCでコンパイルされたアプリケーションは、起動時にこのランタイムを必要とします。
DLLが消えてしまう原因はいくつかあります:
- アプリのインストーラーが再頒布可能パッケージのバンドルをスキップした(またはそのステップを読み飛ばした)
- システムクリーンアップツールが未使用と判断して削除した
- 別のアプリのアンインストーラーが共有ランタイムを一緒に削除した
- Windowsのアップグレードや初期化で消去された
- DLLファイルが破損した
VCRUNTIME140_1.dll was not foundというエラーが出る場合もあります。根本的な原因は同じで、同じパッケージの少し異なるDLLです。
簡単な修正:Visual C++ 再頒布可能パッケージをインストールする
これで約90%のケースでエラーが解消されます。Microsoftの公式インストーラーを直接入手してください:
- x64(64ビットWindows): vc_redist.x64.exe
- x86(64ビットWindows上の32ビットアプリ): vc_redist.x86.exe
実行してクリックし、求められたら再起動します。ほとんどの人にとって、修正はこれだけです。
両方のアーキテクチャをインストールする
問題のアプリが32ビットか64ビットかわからない場合は、両方インストールしましょう――64ビットWindowsでは共存できます:
# 両方をダウンロードして実行する:
vc_redist.x64.exe /install /quiet /norestart
vc_redist.x86.exe /install /quiet /norestart
修正を確認する
インストール後、DLLが実際に存在することを確認します:
# PowerShellで確認する:
Get-Item "C:\Windows\System32\VCRUNTIME140.dll"
Get-Item "C:\Windows\SysWOW64\VCRUNTIME140.dll"
どちらのパスもファイル情報を返すはずです。System32には64ビット版、SysWOW64には32ビット版が入っています。再度アプリを起動してみてください。
まだ失敗する?必要なバージョンを確認する
古いアプリの中にはVisual C++ 2013以前でコンパイルされたものもあり、それらは全く異なるDLL名を使用します。エラーメッセージにVCRUNTIME140以外の名前が表示される場合は、別のパッケージが必要です。VCRUNTIME140.dllに限っては、常に2015〜2022の再頒布可能パッケージです。
マシンに何がインストールされているか確認するには:
# インストール済みのVisual C++ 再頒布可能パッケージを一覧表示する:
Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like "*Visual C++*" } | Select-Object Name, Version | Sort-Object Name
*Microsoft Visual C++ 2015-2022 Redistributable (x64)*を探してください。バージョンが14.30未満の場合は古くなっています。上記のダウンロードリンクを使って再インストールしてください。
破損したインストールを修復する
再頒布可能パッケージはすでにインストールされているのにエラーが続く場合は、DLL自体が破損している可能性があります。設定から修復してください:
- 設定 → アプリ → インストール済みアプリを開く
- Visual C++ 2015を検索する
- 三点メニューをクリック → 変更
- 修復を選択してプロンプトに従う
または管理者権限のコマンドプロンプトから実行します:
vc_redist.x64.exe /repair /quiet /norestart
SFCスキャン(DLLが消え続ける場合)
再インストールするたびにエラーが戻ってくる場合は、何かがシステムファイルを積極的に破損または削除しています。管理者としてシステムファイルチェッカーを実行してください:
sfc /scannow
SFCがすべてを修正できなかったと報告した場合は、DISMで続けてください:
DISM /Online /Cleanup-Image /RestoreHealth
両方が完了したら再起動し、もう一度再頒布可能パッケージを再インストールしてください。
特殊なケース:PythonとNode.js
PythonまたはNode.jsをインストールした直後にこのエラーが発生した場合は?両方のランタイムは再頒布可能パッケージのコピーを同梱しています。問題は、CI環境や最小構成のWindowsセットアップでは、そのバンドルされたインストールステップが完全にスキップされることがある点です。
公式インストーラー(wingetやscoopのようなパッケージマネージャーではなく)からPythonまたはNode.jsを再インストールすると、通常は正しいDLLも一緒に取得されます。とはいえ、Visual C++ 再頒布可能パッケージを直接インストールする方が速く、ランタイムのバージョンに触れる必要もありません。
まとめ
VCRUNTIME140.dllがシステムに存在しない――それがエラーの全てです- 修正方法:Microsoft Visual C++ 2015〜2022 再頒布可能パッケージ(x64、x86、または両方)をインストールする
- 確認方法:インストール後にSystem32とSysWOW64のDLLを確認する
- 消え続ける場合:
sfc /scannowを実行してファイル破損の根本原因を調べる

