Frage

Was sind die Best Practices für das Einchecken von BIN-Verzeichnissen in einer kollaborativen Entwicklungsumgebung mit SVN?Sollten Referenzen auf Projektebene vom Einchecken ausgeschlossen werden?Ist es einfacher, einfach alle bin-Verzeichnisse hinzuzufügen?

Ich entwickle viele DotNetNuke-Sites und es scheint, dass es in einer Umgebung mit mehreren Entwicklern immer eine große Aufgabe ist, die Umgebung richtig einzurichten.

Das ultimative Ziel besteht (natürlich) darin, dass ein neuer Entwickler den Trunk von SVN auscheckt, die DNN-Datenbank wiederherstellt und alles einfach „funktioniert“ ...

War es hilfreich?

Lösung

Alle Baugruppen, die sich voraussichtlich im GAC befinden, sollten im GAC bleiben.Dazu gehören System.web.dll oder alle anderen DLLs von Drittanbietern, die Sie in der Produktion im GAC bereitstellen.Das bedeutet, dass ein neuer Entwickler diese Baugruppen installieren müsste.

Alle anderen Assemblys von Drittanbietern sollten über einen relativen Pfad referenziert werden.Meine typische Struktur ist:

-Project
--Project.sln
--References
---StructureMap.dll
---NUnit.dll
---System.Web.Mvc.dll
--Project.Web
---Project.Web.Proj
---Project.Web.Proj files
--Project
---Project.Proj
---Project.Proj files

Project.Web und Project verweisen relativ auf die Assemblys im Stammordner/References.Diese DLLs werden in Subversion eingecheckt.

Abgesehen davon sollte sich */bin */bin/* obj in Ihrem globalen Ignorierpfad befinden.

Bei diesem Setup erfolgen alle Verweise auf Assemblys entweder über den GAC (sollten also auf allen Computern funktionieren) oder relativ zu jedem Projekt in Ihrer Lösung.

Andere Tipps

Ist das eine .Net-spezifische Frage?

Im Allgemeinen besteht die beste Vorgehensweise darin, nichts einzuchecken, was automatisch aus Dateien erstellt wird, die sich bereits in SCM befinden.All das wird idealerweise im Rahmen Ihres automatischen Build-Prozesses erstellt.

Wenn die bin Wenn das Verzeichnis, auf das Sie sich beziehen, Binärdateien von Drittanbietern und keinen Build Ihres Projekts enthält, ignorieren Sie diesen Rat (lehnen Sie ihn ab?).

Baumchirurg ist ein großartiges Tool, das einen leeren .NET-Entwicklungsbaum erstellt.Es wurde im Laufe der Jahre optimiert und implementiert viele Best Practices.

Maven hilft bei diesem Problem sehr, wenn ich Java programmiere.Wir übergeben die pom.xml an die scs und das Maven-Repository enthält alle unsere Abhängigkeiten.Für mich scheint das eine schöne Möglichkeit zu sein.

Wir folgen der Praxis, ein Anbieterverzeichnis zu verwenden, das alle herstellerspezifischen Header und Binärdateien enthält.Das Ziel besteht darin, dass jeder in der Lage sein sollte, das Produkt zu erstellen, indem er es einfach ausprobiert und ein Build-Skript der obersten Ebene ausführt.

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