Angeben einer Nicht-.NET-Abhängigkeit in Visual Studio

8

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?

    
Grokys 24.09.2008, 10:09
quelle

3 Antworten

5

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.

    
TcKs 24.09.2008, 10:18
quelle
8

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 .

    
Magnus Johansson 24.09.2008 10:13
quelle
2

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.

    
zumalifeguard 04.09.2009 00:20
quelle