2008-09-18 17 views
8

Ich habe hier 300 Zeilen lange NAnt-Datei und es ist ziemlich chaotisch. Ich frage mich, ob es einen Style Guide zum Schreiben von NAnt-Skripten gibt und welche Best Practices dafür sind.NAnt Best Practices

Irgendwelche Tipps?

Antwort

5

Mir sind keine veröffentlichten Styleguide bekannt, aber ich kann sicherlich meine Erfahrung teilen. Sie können viele der in anderen Programmierumgebungen verwendeten Techniken verwenden, z. B. um den Code modular zu gestalten und ihn auf mehrere Dateien aufzuteilen. In der von mir eingerichteten Umgebung ist jedes Projekt folgendermaßen aufgebaut: "[ProjectName] \ Common" enthält eine allgemeine Build-Datei, die mit fast allen meinen Projekten verknüpft ist. Ich habe auch eine Reihe von gemeinsamen Subversion-Zielen in einer Datei gespeichert. Das Unterverzeichnis "Common" ist eigentlich ein svn: external, sodass es automatisch über mehrere Projekte hinweg synchronisiert wird. In der Datei Common.build gibt es viele Umgebungseigenschaften sowie einige wiederverwendbare Dateigruppen, einige wiederverwendbare Ziele und ein "StartUp" -Ziel, das von jedem "StartUp" -Ziel eines Projekts verwendet wird.

"[ProjectName] \ Project.build" enthält alle projektspezifischen Eigenschaften und Dateigruppen, von denen einige die Einstellungen von Common.build überschreiben. Diese Datei enthält auch ein "StartUp" -Ziel, das einige Laufzeiteinstellungen wie Assemblyversionsinformationen und abhängige Pfade einrichtet. Es führt auch das "Startup" -Ziel von Common.build aus. Diese Datei enthält die Common.build-Datei.

"[Projektname] [AssemblyName] .build" enthält alle Einstellungen und Ziele, die für eine einzelne Baugruppe spezifisch sind. Diese Datei enthält das Project.build, das wiederum das Common.build enthält.

Diese Hierarchie funktioniert gut in unserer Situation, in der wir eine Stammversion und mehrere Zweigversionen eines Produkts auf einem Continuous Integration Server erstellen. So wie es jetzt aussieht, bestehen die einzigen Unterschiede zwischen den Skripts zum Erstellen der Stammversion und einem der Zweige nur aus einer Handvoll Zeilen.