VC++ 2010 - Dll, auf die verwiesen wird, an Zielort kopieren



  • Ich habe eine Projektmappe mit zwei Projekten (Kein .Net-Projekt):
    Ein DLL-Projekt, das Andere soll die ausführbare Datei erzeugen. Jetzt hab ich im zweiten Projekt unter "Framework und Verweise" einen Verweis auf das andere Projekt eingestellt, was bereits dazu führt, dass die richtige Lib gelinkt wird. Leider sind allerdings die Ausgabepfade beider Projekte verschieden, sodass die DLL nicht automatisch am richtigen Ort erstellt wird. Um also die entstandene Exe auszuführen muss ich derzeit immer manuell die dll rüberkopieren oder das Postbuildereignis so einrichten, dass die Dll kopiert wird. Gibts keinen einfacheren Weg? Wenn ich beim Verweis "Lokale Kopie" auf true setze, müsste laut Beschreibung eigentlich passieren, was ich will - aber es passiert nicht.

    Wie krieg ich das hin, dass es funktioniert?



  • Erstelle dir ne neue Projektkonfiguration (neben Debug und Release) für das DLL-Projekt. Bei Konfigurationseigenschaften -> Ausgabeverzeichnis kannst du dann das Ausgabeverzeichnis auf das Ausgabeverzeichnis des anderen Projekts setzen.



  • Dann doch lieber das Postbuildereignis^^

    Eine bessere Lösung gibts wirklich nicht?



  • Was stört dich denn an der Lösung? Du musst nichts manuell machen. Was willst du denn noch mehr? 😕



  • Das Postbuildereignis einzustellen ist einfacher, als noch mehr Projektkonfigurationen zu verwalten. Ich hatte einfach nur auf eine eingebaute Lösung gehofft.



  • Und was stört dich an deiner Lösung? Sprich: Weshalb gibts den Thread überhaupt?



  • Ich hatte auf eine noch einfachere bzw. flexiblere Lösung gehofft durch einen einfachen Schalter beim Einstellen der Verweise. Dann wär es nämlich zudem irrelevant, ob ich vielleicht den Dateinamen oder Pfad des ersten Projektes ändere.



  • Ich verwende immer Ausgabeverzeichnisse die auf der Ebene der Solution liegen. Also über dem Projektverzeichnis.

    Solution
    + Bin
    | + Debug
    | + Release
    + Project1
    + Project2
    

    D.h. Projekt1 und Projekt2 werfen Ihren Code nach ..\Bin\Debug bzw. Release.
    Dadruch habe ich immer alle ausführbaren Dateien in der Struktur, die ich beabsichtige und die später auch für die Installation gilt.



  • Hm, ich wollte eigentlich zwischen /bin und /lib bzw. zwischen der eigentlichen Bibliothek und dem Test-/Beispielprogramm trennen.


Anmelden zum Antworten