Bereitstellen von WPF-Anwendung mit 3rd-Party-DLLs

Habe ich schon sehr frustriert versuchen, implementieren Sie eine C#/WPF-Anwendung, die ich erstellt habe, die einige Referenzen zu 3rd-party-DLLs. Ich habe einen Ordner erstellt in dem Projekt, genannt lib, wo ich alle diese DLLs. In VS2012 habe ich noch die Referenzen, indem Sie auf den Ordner, und Auswahl alle DLLs. Copy Local eingestellt ist true für alle. Alles ist in Ordnung, wenn ich Sie zum erstellen und ausführen, aber wenn ich wählen Sie "veröffentlichen", und erstellen Sie eine OneClick-Installer, die Dinge sind nicht so glatt. Während des veröffentlichen-Assistenten, habe ich es zu installieren, von der Festplatte, und legen Sie es auf nie nach updates suchen. Ich nehme den Ordner, legen Sie es auf ein flash-Laufwerk, stecken Sie es in einem anderen PC, führen Sie das setup, und es löst eine Ausnahme aus. Ich glaube, ich weiß, was passiert ist, aber ich kann nicht herausfinden, wie dieses Paket in der Bereitstellung richtig.

Einer meiner DLLs ist ein C# - wrapper um die DLL für ein C++ - Projekt. Wir werden sagen, Application erfordert DLL1 und DLL1 erfordert DLL2. DLL2 können nicht Hinzugefügt werden, die als Referenz in das Projekt, da ist nicht ein .NET DLL. DLL1 erfordert DLL2 im selben Ordner, um ihn abzuholen. Ich bin mit CefSharp die wraps die Chromium Embedded Framework.

Habe ich habe versucht, indem Sie die erforderlichen Dll-Dateien für CefSharp.dll in der publish/Application Files - Verzeichnis, aber es hat nicht funktioniert. Ich bemerkte, dass alle DLLs, die es von VS2012 habe eine .deploy Erweiterung auf Sie, ich ging sogar noch weiter und fügte hinzu, dass eine Verlängerung auf, um zu sehen, wenn es das Scannen für das abholen, aber es hat nicht funktioniert entweder. Dies ist meine erste Zeit der Entwicklung und Bereitstellung für eine Windows-Anwendung, und all die tutorials auf der MSDN-Website oder blog-posts, die ich gelesen habe scheinen nicht zu decken diesem Fall, und ich sehe keine anderen Optionen in der Bereitstellungs-manager behandeln diese Arten von Fällen.

Wenn es hilft, die Ausnahme-Code, der geworfen wird: CLR20r3

Wenn ich fangen und Anzeige Ausnahme, die alle die info, die ich bin, sofern der im Grunde sagt CefSharp.dll or one of it's dependencies cannot be loaded. Die, die ich bekommen habe, bevor, wenn DLL2 wurde nicht im selben Ordner wie DLL1.

Kann mir jemand helfen, wie die Bereitstellung von VS2012 mit einer situation wie dieser?

Vielen Dank im Voraus!

Edit: Info-Update

War ich versucht, um ein debug-build-version auf einem test-Rechner ohne Visual Studio installiert. Wenn Gebäude für CefSharp oder jede andere C++ - Laufzeit - DLL wird es Aussehen, für alle die Debug-Versionen der DLL die in der Regel den gleichen Namen, aber mit dem Buchstaben 'd' am Ende Hinzugefügt. Wie unten erwähnt, die Debug-version der C++ Runtime ist nicht verteilbar. Nicht, dass Sie können nicht manuell hinzufügen diese DLLs zu Ihrem Projekt und setzen Sie Sie als Copy Always, aber das ist eine Art hack-job. Ich startete ein neues Projekt von Grund auf, für alle Release-Versionen der DLLs, gebaut, und alles war in Ordnung.

  • habe meine Antwort helfen?
  • Hatte noch keine Zeit, check it out yet. Es wird ein paar Stunden, bis ich wieder zu diesem Projekt. Ich werde aktualisieren, mit info, was ich herausfinde. Danke, btw.
  • Kein problem, viel Glück - ich weiß wie schmerzhaft so etwas sein kann.
Schreibe einen Kommentar