5

Ich habe in den letzten Jahren eine Menge Software geschrieben, von denen die meisten eine oder mehrere gemeinsame Bibliotheken teilen. (Die gebräuchlichste Bibliothek, die ich zum Aufrufen gespeicherter SQL-Prozeduren und zum Zurückgeben von Arrays von Objekten verwende)Methoden zum Verwalten von Quellcode

Ich bin nicht glücklich mit der Art, wie ich die Bibliotheken verwalte, und ich suche nach Vorschlägen, um den Weg zu verbessern Ich arbeite.

Das erste Mal, dass ich geschaffen, was jetzt eine gemeinsam genutzte Bibliothek ist, hat ich die Bibliothek als ein separates Klassenbibliotheksprojekt in der Lösung.

Wenn ich nun eine neue Lösung beginnen und ich weiß, ich werde eine Bibliothek brauche ich schon habe, werde ich gehen und die Bibliothek des Projekt finden und die Dateien in die neue Lösung kopieren.

Dies lässt mich mit mehreren Kopien des gleichen Bibliotheksprojekt punktiert um meine Dateisystem (und dem SVN-Server), und es fühlt sich einfach nicht richtig.

Gibt es eine bessere Art und Weise zu arbeiten, so dass ich nur eine Master-Kopie dieser Bibliothek haben, dass alle Aktien Lösungen, anstatt jede Lösung eine eigene Kopie des Bibliotheksprojekt mit?

Antwort

5

bauen Sie einfach die Bibliothek einmal, und die kompilierte binäre aus Ihrem Projekt verweisen, die es verwenden muss.

in Visual Studio, klicken Sie rechts auf das Projekt und klicken Sie auf „add reference“ und wählen Sie die Schaltfläche „Durchsuchen“ klicken und suchen Sie Ihre Bibliotheken binär.

(Sie werden natürlich die Bibliothek Montag zusammen mit der Anwendung verteilen müssen)

+0

Danke. Ich kann nicht glauben, dass ich nach Jahren der Arbeit in Visual Studio etwas so Grundlegendes vermisst habe. – Bryan

+0

Nicht sicher, das ist die beste Antwort. Das Hinzufügen einer Binärdatei bedeutet, dass, wenn sich das gemeinsam genutzte Projekt ändert, Sie es neu kompilieren müssen und dann alle abhängigen Lösungen, die darauf verweisen, neu kompilieren, was zu Abhängigkeitsproblemen führen kann.Ich würde vorschlagen, es als eine Projektverweis stattdessen hinzufügen – zebrabox

+0

@ zebarbox: Ich folge nicht, Ist das nicht genau das, was Simon Post angegeben? – Bryan

1

Ich würde vorschlagen, die Bibliothek in eine DLL kompilieren, die als Referenz zu jedem anderen Projekt hinzugefügt werden können, das Sie arbeiten. Dann müssen Sie die Quelldateien nicht überall kopieren.

2

Ihr Gefühl ist absolut richtig. Es sollte nur einen Master der Bibliothek geben Quelle.

In unserem Shop haben wir mehrere gemeinsame Bibliotheksprojekte, die von verschiedenen Produkten verwendet werden. Wir betrachten diese Bibliotheken als Produkte selbst und behandeln sie entsprechend. Insbesondere wenn ein Projekt eine dieser Bibliotheken benötigt, wird eine kompilierte Version der Bibliothek in einen lib-Ordner im Projekt gestellt. Wir entfernen die Notwendigkeit, die Quelle zu kopieren, und unser Projekt verweist nur auf eine stabile Kopie der DLL.

Hier ist eine Beispielstruktur im Repository

/LibraryX   <- product root 
    ../branches 
    ../tags 
    ../trunk   <- solution folder 
     ../LibraryX <- project folder 
     ../lib  <- thirdparty libraries used by LibraryX 

/ProductY   <- product root 
    ../branches 
    ../tags 
    ../trunk   <- solution folder 
     ../ProductY <- project folder 
     ../lib  <- thirdparty libraries 
         used by ProductY, e.g. a copy of LibraryX.dll 

im producty Projekt also, anstatt eine Kopie des LibraryY Projekt auch Sie einen Verweis auf die in der Lage LibraryX.dll hinzufügen lib Ordner.

+0

Das ist genau die Struktur, die ich anstrebe. Danke vielmals. – Bryan

1

Sie sollten nur eine DLL mit Ihrer Bibliothek erstellen und dann verweisen nur um es ..

Referenzen> Verweis hinzufügen in VS.