2008-11-06 3 views
5

Ich frage mich, was ich beim Bau meines Projekts einbeziehen soll. Ich habe eine Bibliothek, die ich für mein Projekt referenzieren muss, aber diese Bibliothek hat selbst 10 Abhängigkeiten. Soll ich diese Abhängigkeiten ebenfalls referenzieren oder sollte ich sie mit einem Postbuildereignis in das Ausgabeverzeichnis kopieren?Abhängigkeiten und Referenzen - Was genau soll ich referenzieren?

Was ist die beste Vorgehensweise?

Ich finde es verwirrend, alle diese Abhängigkeiten zu integrieren, da das Projekt gut ohne sie kompiliert - werden sie dann Laufzeitabhängigkeiten genannt? Meine Referenzen werden mit Abhängigkeiten behaftet, die für mein Projekt irrelevant sind, obwohl sie in einer Bibliothek verwendet werden, die ich einschließe.

Ich verwende Visual Studio.

Kann mir bitte jemand einen Einblick geben, wie man das richtig macht.

Danke.

Antwort

1

Sie müssen nur Referenzen hinzufügen, die direkt von Ihrem Projekt verwendet werden.

Für private Assemblys (die nicht im GAC enthalten sind) kopiert Visual Studio standardmäßig referenzierte Assemblys (und ihre Abhängigkeiten) in das Ausgabeverzeichnis Ihres Projekts.

Bei Assemblys im GAC kopiert Visual Studio die referenzierte Assembly nicht standardmäßig in das Ausgabeverzeichnis Ihres Projekts.

In beiden Fällen können Sie das Verhalten ändern, indem Sie die Eigenschaft "Copy Local" ändern.

IMHO, es ist eine nette Eigenschaft der Build-Umgebung. In der nicht verwalteten Welt liegt es an Ihnen, die Abhängigkeiten Ihrer Abhängigkeiten zu überwachen (normalerweise durch Pre- oder Post-Build-Ereignisse).

2

Es ist nur Meinung. So oder so wird es funktionieren.

Persönlich hasse ich Post-Build-BAT-Dateien, so würde ich die Abhängigkeiten enthalten, um sie in das Ausgabeverzeichnis kopiert werden.

Eine andere Möglichkeit ist, einen Link zu ihnen in Ihrem Projekt zu setzen - wie in einem Ressourcenverzeichnis. Setzen Sie das auf BuildAction = None und CopyToOutputDirectory = CopyIfNewer

1

Ich nehme an, dass Sie in Visual Studio arbeiten.

Die kurze Antwort enthält nur die Assemblys, die für das Kompilieren Ihres Projekts benötigt werden.

Das Referenzieren mehrerer Assemblys sollte keine Probleme verursachen, da Ihre Anwendung Assemblys bei Bedarf zur Laufzeit lädt. Eine lange Liste von Referenzen kann jedoch verwirrend und unübersichtlich werden.

Ihre Referenzliste sollte darüber Auskunft geben, was Ihr Programm macht und welche Funktionen es verwendet.

+0

Sie empfehlen daher, Post-Build-Ereignisse oder eine andere Möglichkeit zu verwenden, um die Laufzeitabhängigkeiten für die Bibliotheken bereitzustellen, die ich verweise? – Fadeproof

+0

Nun, es ist wirklich eine Frage des Geschmacks. Wenn Ihre Assemblys in der GAC sind, müssen Sie nichts tun, aber ich würde es vorziehen, das Projekt nicht zu überladen. –

+1

Keine sind in GAC also in diesem Fall sollte ich das Post-Build-Ereignis verwenden? – Fadeproof

Verwandte Themen