2012-02-10 68 views
1

Visual C++とC#の混在ソリューションがあり、デバッグモードで実行しようとすると、C++プロジェクトがロードしようとしているためプログラムが失敗しますmsvcp100d.dllおよびmsvcr100d.dll。単体テストを試して実行すると同じことが起こります。msvcr100d.dllとmsvcp100d.dllがデバッグ実行パスにありません

これはリリースモードでは発生しません。私はこのライブラリの依存関係をデバッグモードで削除することができますか?

+0

VC++コードは '/ clr'バリアントを使用していますか、それとも純粋にネイティブですか? – ildjarn

+0

dllにはVSが付属していませんか?デバッグDLLは再配布可能ではありません(少なくとも再配布するつもりはありません) – pezcode

+0

デバッグDLLは私のマシン上にありますが、何らかの理由でVisual Studioがそれらを見つけられないようです。これは、エントリポイントがC#アプリケーションであるため、C++ DLLの追加の場所を探していないためでしょうか? – Ceilingfish

答えて

2

デバッグモードでこのライブラリの依存関係を削除できますか?

はい、プロジェクトのプロパティでは、Cランタイムライブラリの非デバッグバージョンにリンクするようにプロジェクトのプロパティを設定します。 /MDスイッチが必要です(デバッグバージョンを示す/MDdではなく)。ただし、これを行うと、CRTのデバッグ機能が失われることに注意してください。

よりよい解決策は、開発環境がどのようにボルケージされているかを理解することです。 DLLは、Visual Studioがインストールされるたびに使用可能になります。

+0

もし '/ clr'でコンパイルすると、'/MT'はオプションになりません。 – ildjarn

+0

真実であり、とにかくCRTへのダイナミックリンクがより良い選択肢です。 –

+0

@ildjarn残念ながら、私は確か '/ clr'でコンパイルしています。このライブラリを利用できるようにするには、どのパス変数を変更する必要がありますか? – Ceilingfish

関連する問題