Sie möchten vielleicht Mike Roberts Serie lesen, Wie eine .NET-Entwicklungsbaum Bis setzen. Die Art und Weise, wie Visual Studio standardmäßig funktioniert, ist meiner Meinung nach im Wesentlichen kaputt.
Einzeln *.pdf: How to Set Up a .Net Development Tree
Grundsätzlich sollte die Verzeichnisstruktur wie folgt aussehen:
Meta/Development Root
Gewöhnlich bis Wurzel des Quellkontrollsystem abgebildet.
Solution
Ein Verzeichnis enthält Ihre gesamte Lösung. Sollte benannt werden, um der Lösung zu entsprechen.
Solution.sln
Die Lösung Datei selbst.
nant.build
Die nAnt-Build-Datei für die Lösung.
lib
Das Verzeichnis lib
enthält 3rd Party Assemblies/DLLs, auf die die verschiedenen Projekte in Ihrer Lösung verweisen. Es steht unter Quellcodeverwaltung. Projektreferenzen sollten hier zeigen.
tools
Das tools
Verzeichnis enthält alle 3rd-Party-Tools benötigt, um Ihre Lösung zu erstellen. Auch sie steht unter Kontrolle der Quelle. Das Verzeichnis tools
sollte die Versionen nAnt
, nUnit
usw. enthalten, die von Ihrem Projekt — verwendet werden, und Ihre Build-Skripts sollten auf diese verweisen und nicht auf die Version (en), die auf dem Computer eines Entwicklers installiert sind.
bin
bin
Das Verzeichnis enthält die Ausgabe des Erstellungsprozesses für die Lösung. Jedes Projekt muss konfiguriert werden, um hier zu zeigen.
debug
Debug-Build
release
Release-Build
obj
In der idealen Welt, jedes obj
Projekt zeigt hier würde auch dies keinen Platz in dem Quellbaum hat. Leider bietet Visual Studio keinen offiziellen Weg dazu (obwohl mir gesagt wurde, VS kann gehackt werden, wenn man einfallsreich genug ist).
src
Das src
Verzeichnis ist das Stammverzeichnis für den eigentlichen Quellcode Ihrer Lösung.
project1
Das Verzeichnis für project1
.
project
.csproj`
Die Projektdatei.
*.cs
usw. Dateien. Die Quelldateien.
- ...
project-n
Wie einzelne Projekte zu strukturieren ist, glaube ich, ein ganz anderes Thema, aber sollte es sein, WRT Sowohl die Lösung als auch das Individuum projizieren eine Korrespondenz zwischen Namespace und Dateisystemhierarchie.Wenn für ein bestimmtes Projekt eine Assembly von Drittanbietern erforderlich ist, die anderen Projekten in der Projektmappe nicht zur Verfügung stehen soll, kann für jedes Verzeichnis dieses Projekts ein eigenes Verzeichnis in seinem eigenen Verzeichnis lib
erstellt werden, das jedoch 3rd-Party-Assemblies im Quellbaum streut also ist nicht zu empfehlen.
Kann das leicht in einen Installer integriert werden? oder funktioniert das nur für XCopy-Bereitstellungen? – BuddyJoe
oh ich dachte, du beziehst dich auf Builds ... du solltest wirklich Merge-Module für deine Installationen haben. –
Stellen Sie sicher, dass Sie sie im Solution Explorer als 'Copy if neuhered 'markieren. – ja72