web-dev-qa-db-ja.com

"MSVCP110D.dllがコンピューターに存在しない"問題の修正

次の(かなり一般的な)問題に直面しています。VS2010またはVS2012でプログラムをデバッグモードで実行していますが、起動時にクラッシュして次のように表示されます。

コンピューターにMSVCP100D.dllがないため、プログラムを開始できません。プログラムを再インストールして、この問題を修正してください。

今、私はいくつかの可能な解決策を見つけましたが、それらのどれも私にとってはうまくいきません:

  • / MDdの代わりに/ MTdでコンパイルします:これは実際には問題を解決しますが、許可されていません:私のプログラムはより大きなプログラムの一部です、/MD [d]は必須です。
  • インストール VS 2010再頒布可能パッケージ:これは、VS 2012がインストールされているため機能しません。 「マシンでMicrosoft Visual C++ 2010再頒布可能パッケージの新しいバージョンが検出されました。」
  • MSVCP100D.dllのバージョンを見つけて、正しいディレクトリにドラッグアンドドロップします:不明なDLLを他のものと干渉する可能性のある場所にドロップしていません。
  • 最後の手段:VS2010/VS2012を再インストールする:可能ですが、必要な他の多くのパッケージやプラグインを再インストールすることも意味するため、避けたいこれは絶対に必要でない場合。

他にオプションはありますか?

11
Yellow

Visual Studio REDISTパッケージは、CRTファイルのデバッグバージョンを展開しません。これは設計によるです。

VS 2012以降では、CRTのDEUBGバージョンを展開する最も簡単な方法は、テストマシンに「リモートデバッグツール」パッケージをインストールすることです。

VS 2012の場合、最新のリモートデバッグツールパッケージは here です。

VS 2013の場合、最新のリモートデバッグツールパッケージは here です。

別のオプションは、DLLのアプリケーションローカル展開を使用することです(つまり、アプリディレクトリにコピーします)。ここでもこれは、テスト目的のみです。アプリケーションを実際に展開するには、CRTの非デバッグバージョンを使用する必要があります。

ただし、開発マシンでこのエラーが発生している場合は、VS 2012がインストールされていると、そのマシンにVS 2012 DEBUG CRTが必要になるため、他の問題が発生します。

UPDATE ::申し訳ありませんが、デバッグCRT DLLは、リモートデバッガービットおよびDirect3D 11とともにリモートデバッグツールパッケージに含まれているはずです。デバッグデバイス。悲しいかな、そうではありません。 デバッグ実行可能ファイルを実行するためのテストマシンの準備 を参照してください。 Program Files (x86) directory in \Common Files\Merge ModulesでMSMを使用するか、Program Files (x86) directory in \Microsoft Visual Studio <version>\VC\redist\Debug_NonRedist\からDLLをサイドバイサイドでコピーする必要があります。 VSチームはおそらくあなたがすでにそうしていると思っていましたが、リモートツールパッケージにロールすることを彼らに勧めます。

11
Chuck Walbourn

同様の問題(VS 2012で作成されたプロジェクトですが、VS2013を実行していました)があり、次の方法で解決しました。

  1. VS2013(または新しいプロジェクト)でプロジェクト(またはソリューション)を開きます

  2. [プロジェクト]メニューを開き、[プロジェクトのターゲットを変更]オプションを選択します(これは最初のオプションでしたが、適用した後、このオプションは消えました)。

  3. ソリューションを再構築します。

1
Kamran Bigdely

これはデバッグランタイムDLLです。 Visual Studioがインストールされていないシステムで独自のアプリケーションのデバッグビルドを実行したいだけの場合(そしてその場合のみ!)、不足しているDLLを

  • C:\Windows\System32(64ビットビルド用)
  • C:\Windows\SysWOW64(32ビットビルド用)

実行可能ファイルが実行されるまでDLLをコピーし続けるだけです。

これがあなたがしようとしていることではない場合は、 https://stackoverflow.com/a/27386721/2279059 を参照してください。これは正確ですが、あまり実用的ではありません。

0
Florian Winter

私はopenCVとC++を初めて使用し、Windows 7、32ビットプラットフォームのVisual Studio Express 2013でopenCV 2.4.10を使用すると同じ問題が発生しました。 OpenCVを使用せずに単純なプログラムを作成した場合、プログラムは実行されましたが、OpenCVを使用すると、不足しているDLLエラーが発生しました。

この投稿 明確にした:

私の問題はVisual StudioではなくOpenCVにあったと思います。 OpenCVは、MSVCP110.dllを必要とするバージョンのビジュアルスタジオでコンパイルされました。別のバージョンのOpenCVを試したり、VS2013を使用してOpenCVを再度コンパイルしたりすることもできましたが、時間がありませんでした。代わりに、dllファイルを他の場所で見つけて、system32フォルダーに配置しました(推奨されているかどうかは不明です)。これで問題が解決しました。ただし、@ slaterが言及したように、セキュリティ上の問題のため、外部のWebサイトからdllをダウンロードすることはお勧めしません。

0
Ruchir