Ich rufe eine Nicht-.NET-DLL aus meinem Projekt mit P / Invoke an, was bedeutet, dass die .dll immer im Verzeichnis der .exe vorhanden sein muss.
Gibt es eine Möglichkeit, Visual Studio von dieser Abhängigkeit zu informieren, sodass es beim Kompilieren die DLL automatisch in das Ausgabeverzeichnis kopiert und automatisch die DLL in das Setup aufnimmt? Oder muss ich das manuell tun?
Sie können diese Datei (en) in das Projekt kopieren / verknüpfen und in Eigenschaftenfenstern "Build Action" auf "None" und "Copy to Output Directory" auf "Copy if neuher" oder "Copy always" setzen / p>
Oder Sie können ein "Pre-Build Events" & amp; "Post-Build-Ereignisse", in denen Sie beliebige Batch-Skripte angeben können.
Ich bevorzuge die zweite Option, weil diese Art flexibler ist als die erste.
Sie können auch eine MSBuild-Datei ändern und eine Aufgabe zum Kopieren der Datei (en) hinzufügen.
Sie können die .DLL-Datei einfach zu Ihrem Projekt hinzufügen.
Wählen Sie den Bereich Properties
für diese Datei und setzen Sie Build Action
auf Content
und Copy to Output Directory
auf Copy if newer
.
Ich denke, ein Problem beim Hinzufügen einer .DLL-Datei zum Projekt besteht darin, dass Sie möglicherweise verschiedene Versionen einer DLL für Debug- und Release-Builds benötigen. Sie könnten denken, dass Sie der Datei sowohl Debug- als auch Release-Versionen der DLL hinzufügen können und basierend auf Konfigurationen die unpassende Version ausschließen können, aber ich konnte keinen Weg finden, dies zu tun. Ich benutze Visual Studio 2010. Ich bin sicher, dass dies in den alten Tagen mit VS6 funktioniert hat.
Tags und Links dependencies .net dll visual-studio