none
MSVCP140D.dll、VCRUNTIME140D.dll、ucrtbase.dllが見つからない RRS feed

  • 質問

  • 皆様お世話になります。

    VisualStudio初心者です。

    超基本的なことで申し訳ないのですが、VisualStudio2017で作成したC++コンソールアプリケーションをターゲットPCで実行すると、下記DLLが見つからないというエラーになります。

    MSVCP140D.dll
    VCRUNTIME140D.dll
    ucrtbase.dll

    ランタイム(Microsoft Visual C++ 2015-2019 Redistributable (x86) 14.26.28720.3)はインストール済
    アプリケーションは x86、SDKバージョン10.0.17763.0、新規作成のHelloプログラムでも同じ症状
    ターゲットPCは Windows10 Pro バージョン1903 64bit

    です。

    VisualStudio2017をインストールしたPCは、C:\Windows\System32\ に上記DLLが見つかりますが、ランタイムのみをインストールしたターゲットPCは、MSVCP140D.dllとVCRUNTIME140D.dllが実際に存在しません。

    ランタイムのインストールの修復は試行済、別のPCも試しましたが同じ症状です。

    よろしくお願いします。

    2020年5月20日 7:22

回答

  • こんにちは。以前私もこれに似た件で質問しておりまして、ビルドのソリューション構成を「debug」から「release」に変更することで解決しました。

    debugモードではVCRUNTIME140D.dllを必要としますが、VS開発環境がインストールされていないコンピューターではこのdllがありません。releaseモードではVCRUNTIME140.dllが必要ですが、通常はWindows\system32フォルダーに存在しますので、実行できるようになります。
    • 回答としてマーク M14Cluster 2020年5月20日 11:30
    2020年5月20日 7:35

すべての返信

  • こんにちは。以前私もこれに似た件で質問しておりまして、ビルドのソリューション構成を「debug」から「release」に変更することで解決しました。

    debugモードではVCRUNTIME140D.dllを必要としますが、VS開発環境がインストールされていないコンピューターではこのdllがありません。releaseモードではVCRUNTIME140.dllが必要ですが、通常はWindows\system32フォルダーに存在しますので、実行できるようになります。
    • 回答としてマーク M14Cluster 2020年5月20日 11:30
    2020年5月20日 7:35
  • ファイル名末尾にDの付くdllはデバッグ用DLLです。なのでランタイムには入っていません。

    ReleaseモードでビルドしたものをターゲットPCに持って行ってください。

    2020年5月20日 7:36
  • 「VCRUNTIME140D.dll」の様に拡張子の直前が"D""d"のdllは「デバッグ用」のものです。
    すなわち、その実行ファイルは多分「デバッグビルド」されたもので、構築環境以外では実行できません。
    まずは、プロジェクトを「リリースビルド」する必要があります。

    一般にリリースビルドは\Releaseフォルダ内にビルドされます。

    2020年5月20日 7:36
  • huahi11112様、Hongliang様、仲澤@失業者様、ご回答ありがとうございます。

    聞けば納得の単純な話なのですね。

    別の開発ツールで、ランタイムライブラリを使わずデバッグビルドのままリリースする横着をずっとしていたので、お恥ずかしい限りです。

    ありがとうございました。

    2020年5月20日 11:30