2016-09-10 3 views
-4

Ich habe großen Mengencode mit Visual C++ auf Visual Studio IDE (VS 2015 Enterprise) geschrieben. Meine Anwendung hängt stark von openCV (x64-vc14) ab. Es läuft perfekt auf meinem Computer. Aber wenn ich versuchte, mit install shield limited (im Debug-Build-Modus) zu einem anderen Computer zu implementieren, zeigt es, dass die .exe-Datei viele .dll-Dateien abhängig ist. Ich war durch Google gegangen, habe über Dependency Walker gefunden, aber wenn ich Dependency Walker ausführe, gibt es eine Abhängigkeitsliste mit Tausenden von .dll-Dateien. Es ist zeitraubender manueller Prozess, um jede der DLL-Dateien von meinem Computer zu kopieren und in das Verzeichnis der Anwendung hinzuzufügen. Gibt es einen anderen besseren Weg, dies automatisch zu tun? Gibt es etwas, das mir beim Bauprozess oder bei der Projekt-Property fehlt? Ich brauche eine Richtlinie, weil meine Anwendung in Zukunft noch größer sein wird und möglicherweise auch von mehr DLL-Dateien abhängig sein wird.Visual C++ - Anwendungsbereitstellung, die openCV beinhaltet: Richtige Guidine erforderlich

Antwort

3

Sie sollten keine Debug-Builds bereitstellen, sie hängen von der Debug-Version des CRT ab und sollen nicht weiterverbreitet werden (oder vielleicht dürfen Sie nicht, ich weiß nicht, kein Anwalt) . Erstellen Sie stattdessen die Release-Version und installieren Sie die Visual C++ Redistributable Packages für Visual Studio 2015 auf dem Zielcomputer - Installshield sollte dies als Voraussetzung haben. Für OpenCV müssen Sie Installshield anweisen, alle benötigten DLLs zu erhalten. Entweder manuell oder indem man nach Abhängigkeiten sucht (obwohl afaik dann viel mehr als nötig enthält).

+0

Vielen Dank. Ich habe meine Anwendung im Freigabemodus erstellt. Meine Anwendung wird problemlos auf dem Zielcomputer ausgeführt, da ich das Visual C++ Redistributable-Paket installiert habe. Ich muss noch openCV "opencv_world310.dll" (es ist für die Neuverteilung geeignet) zusammen mit meiner Anwendung übertragen. Könnten Sie mir bitte eine Möglichkeit geben, diese DLL mit der .exe oder mit dem Install Shield einzubetten? – sbz

+0

Fügen Sie es als "Komponente" in Installshield hinzu – stijn