Der Unterschied zwischen Projekt und dll-Abhängigkeiten in .Net in den letzten kompilierten Assembly

StackOverflow https://stackoverflow.com/questions/3714686

Frage

Lets sagen, ich habe zwei Projekte A und B. A hängt von B. ich dies auf zwei Arten angeben:

  • Neue A und B in der gleichen Lösung, und geben Sie B als Projektabhängigkeit von A. Dies zeigt sich in A des msbuild Projekt als "ProjectReference" Knoten.
  • Fügen Sie einen Verweis auf die kompilierte DLL B als Abhängigkeit von A. Diese zeigt in der msbuild Projekt als „Referenz“ node
  • nach oben

Meine Frage ist, wenn ich die Versammlung für A bauen habe, gibt es einen Unterschied in der endgültigen Ausgabe zwischen diesen beiden Methoden.

Ich habe versucht, ein paar einfache Projekte zu schaffen, welches Modell dieser Beziehung und einen Vergleich versucht - aber verschiedene Vergleichstools sagen mir verschiedene Dinge. In Erwartung etwas zu schreiben, das diese Dateien Byte-für-Byte-Vergleich, ich frage mich, wenn Sie Leute etwas darüber wusste. Insbesondere wird es einen Unterschied im Verhalten der Baugruppe aufgebaut, wenn ich anstelle eines Projekts Referenz dll Referenz verwenden.

War es hilfreich?

Lösung

Wenn das Projekt B Quellen nicht zwischen zwei geändert haben baut Projekt A, wird es keinen Unterschied im Verhalten des Projekts A ausgegeben. Wenn Projekt B Quellen geändert haben jedoch, wird es als ein Projekt von Projekt A Referenzierung verursacht Projekt B und neu aufgebaut werden. Dieser Unterschied ist, was Ihre Wahl, wie zum Referenzprojekt B aus Projekt A bestimmt:

  • Wenn Sie besitzen die Quelle von Projekt B und Projekt A, und sie sind eng gekoppelt sind, oder wenn sie beide unter der aktiven Entwicklung und Projekt B erfährt oft Änderungen seiner öffentlichen Schnittstelle zu brechen, wollen Sie Referenzprojekt B als Projekt. Dies würde sicherstellen, dass Projekt A immer in seinem Build nutzt die meisten up-to-date Ausgabe des Projekts B.

  • Wenn Projekt B externe Abhängigkeit ist, dass Sie entwickeln sich nicht selbst, oder Sie haben nicht die Quellen, oder wenn es bereits versendet worden ist und Sie können nicht Version mit Projekt Modifiziertes Schiff, Sie wollen die vorgefertigten Projekt B Ausgang zu verweisen, Sie entwickeln und testen mit der gleichen Version von Projekt B zu gewährleisten, die am ehesten auf den Computern der Benutzer sein soll.

Andere Tipps

als Projektverweis Hinzufügen hat nur den Vorteil, dass die Montage „B“ bei Bedarf automatisch erstellt wird.

Nach der Montage "A" gebaut wird, gibt es keinen Unterschied.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top