eine non-.NET Abhängigkeit in Visual Studio Festlegen
-
02-07-2019 - |
Frage
Ich rufe eine non-.NET dll von meinem Projekt P / Invoke verwenden, was bedeutet, dass die DLL immer in der EXE das Verzeichnis vorhanden sein muss.
Gibt es eine Möglichkeit Visual Studio dieser Abhängigkeit zu erzählen, so dass es automatisch die DLL in das Ausgabeverzeichnis kopiert wird beim Kompilieren, und schließt automatisch die DLL im Setup? Oder muss ich dies manuell tun?
Lösung
können Sie kopieren / link diese Datei (en) auf das Projekt und in Eigenschaften festlegen Fenster "Aktion Build" auf "None" und "Copy to Output Directory" auf "Kopieren, falls neueren" oder "Copy immer".
Sie können auch verwenden, um ein "Pre-Build-Events" und "Post-Build-Event", wo Sie alle Batch-Skripten angeben können.
I prefere die zweite Option, da auf diese Weise flexibler als der erste ist.
Sie können auch eine MSBuild-Datei ändern und eine neue Aufgabe hinzufügen, um die Datei zu kopieren (s).
Andere Tipps
Sie können einfach die DLL zu Ihrem Projekt hinzufügen.
Wählen Sie den Properties
Bereich für diese Datei und legen Build Action
Content
und Copy to Output Directory
Copy if newer
.
Ich glaube, ein Problem mit nur einem DLL zu dem Projekt hinzuzufügen, ist, dass man verschiedene Versionen einer DLL müssen möglicherweise für Debug- und Release-Builds. Man könnte meinen, Sie beide Debug hinzufügen und Release-Versionen der DLL in die Datei, und basierend auf Konfigurationen, die unangemessenen eine ausschließen, aber ich konnte nicht einen Weg zu tun, dass finden. Ich bin mit Visual Studio 2010. Ich bin sicher, dies in den alten Tagen mit VS6 gearbeitet.