2013-03-07 17 views
9

Ich habe eine große Lösung, die täglich in TFS gebaut wird. Die Lösung umfasst mehrere logische Unterlösungen - z. B. ApplicationA, die aus den Projekten A, B, C, D besteht; ApplicationB, bestehend aus den Projekten A, B, E, F, ApplicationC, die aus den Projekten A, C, G, H besteht.Organisieren einer großen C# -Lösung

Derzeit erstellen wir lokal eine Kopie der Build-Lösungsdatei und entladen Projekte, die wir nicht erstellen müssen, um an einem Projekt zu arbeiten - also würden wir für ApplicationA alles außer A, B, C, D entladen. Ein anderer Ansatz wäre, mehrere Lösungskonfigurationen zu erstellen, die nur die Projekte A, B, C, D für ApplicationA erstellen würden - aber ich fürchte, das wäre umständlich und die .sln-Datei würde sehr groß werden.

Das Problem ist, dass viele Projekte in einem WIX-Paket zusammengefasst und zusammen installiert werden - so macht die Hauptdatei .SLN Sinn, vor allem aus Sicht der Konstruktion, sondern auch Debugging.

Das Verwalten mehrerer Lösungsdateien scheint nicht richtig zu sein. Wenn neue Projekte hinzugefügt werden, müssen diese zu mehreren Lösungen hinzugefügt werden. Vielleicht ist die Konfigurationsmethode der richtige Weg, aber es fühlt sich auch nicht richtig an.

Hat jemand Erfahrung mit einem ähnlichen Szenario, und wie haben Sie es geschafft?

+1

"Die Verwaltung mehrerer Lösungsdateien ist jedoch nicht möglich. Wenn neue Projekte hinzugefügt werden, müssen diese zu mehreren Lösungen hinzugefügt werden."? Ist das wirklich so beschwerlich? Ich habe immer mehrere Lösungen benutzt (wenn ich mit vielen Projekten zu tun habe) und habe das nie sehr schmerzhaft gefunden. –

Antwort

11

Es klingt wie es sinnvoll, fünf Lösungsdateien haben würde:

  • Master.sln, enthält alle Projekte
  • ApplicationA.sln enthält A-Projekte, B, C, D
  • ApplicationB SLN enthält Projekte A, B, E, F
  • ApplicaitonC.sln enthält Projekte A, C, G, H

Es ist gut, die alle tho haben Die Lösungsdateien befinden sich im selben Verzeichnis der obersten Ebene.

Die Verwaltung mehrerer Lösungsdateien ist jedoch nicht möglich. Wenn neue Projekte hinzugefügt werden, müssen diese zu mehreren Lösungen hinzugefügt werden.

Warum ist das ein Problem? Sie müssen herausfinden, für welche Anwendungen das Projekt sowieso erforderlich ist ... Erstellen Sie das Projekt in der Master-Lösung (die es definitiv benötigt) und verwenden Sie dann "Add existing project" für die Lösungen, die es benötigen. Es ist wirklich nicht so viel Arbeit - und ich würde nicht erwarten, dass neue Projekte oft sowieso hinzugefügt werden. (Wenn dies der Fall ist, deutet dies auf ein größeres Problem hin.)

+0

Danke Jon - das wäre, was ich irgendwie für den richtigen Weg gehalten hätte, es ist nur, dass die Idee, dies durch Konfiguration zu tun, vorgeschlagen wurde, also wollte ich das untersuchen. (BTW - liebte dein Buch und Video auf C# Design-Strategien Videos :)) – NDJ

+1

@NDJ: Konfigurationen funktioniert auch, aber ist in anderer Hinsicht ein Schmerz. (Ich verwende Konfigurationen für Noda Time, wenn ich zum Beispiel verschiedene Versionen derselben Baugruppen erstelle.) Um sich auf ein paar Projekte zu konzentrieren, halte ich eine separate Lösung für sinnvoller. –