2016-09-10 8 views
-4

Visual Studio IDE(VS 2015 Enterprise)でVisual C++を使用して大量のコードを記述しました.MyアプリケーションはopenCV(x64-vc14)に大きく依存します。それは私のコンピュータ上で完璧に動作します。しかし、私は、(ビルドデバッグモードで)別のコンピュータに制限されたインストールシールドを使用して展開しようとすると、.exeファイルが多くの.dllファイルに依存することを示しています。私はgoogleを経由して、依存関係ウォーカーについて見つけましたが、依存関係ウォーカーを実行すると、何千もの.dllファイルの依存リストが作成されます。私のコンピュータから各dllファイルをコピーし、それをアプリケーションのディレクトリに追加するのは手間のかかる手作業です。これを自動的に行う他の方法がありますか?ビルドプロセス中またはプロジェクトプロパティの設定中に欠けているものはありますか?私は将来、私のアプリケーションがさらに大きくなり、より多くのdllファイルに依存するかもしれないので、私はガイドラインが必要です。openCVを含むVisual C++アプリケーションの展開:適切なGuideineが必要

答えて

3

デバッグビルドを展開すべきではありません。また、CRTのデバッグバージョンに依存し、再配布されることを意図していません(あるいは、私は弁護士ではありません。 。 代わりに、リリース版をビルドし、ターゲットマシンに「Visual C++ Redistributable Packages for Visual Studio 2015」をインストールします - Installshieldには、前提条件としてそれが必要です。 OpenCVの場合は、必要なDLLをすべて取得するようにInstallShieldに指示する必要があります。手動で、または依存関係をスキャンすることによって(ただし、afaikでは必要以上に多くの方法が含まれる可能性があります)。

+0

ありがとうございました。私はリリースモードで自分のアプリケーションを構築しました。 Visual C++ Redistributableパッケージがインストールされているため、アプリケーションがスムーズにターゲットコンピュータで実行されます。私はまだopenCV "opencv_world310.dll"(それは再配布の対象です)と私のアプリケーションを転送する必要があります。 .exeまたはInstallシールドを使用してそのDLLを埋め込む方法を私に教えてください。 – sbz

+0

InstallShieldの「コンポーネント」として追加します。 – stijn

関連する問題