2009-08-09 16 views
2

CruiseControl.net erstellt (standardmäßig) für jedes Projekt ein Unterverzeichnis unter: c:\Program File\CruiseControl.NET\serverKonfigurieren CruiseControl.net Projektverzeichnis

Wie kann ich das ändern? (Es ist so eine schlechte Idee, Daten mit Programmdateien zu mischen ...)

Ich habe einen Weg gefunden, das Artefakte Verzeichnis pro Projekt zu konfigurieren, aber das ist nicht ganz so (es ist nur ein Unterverzeichnis des Projektverzeichnisses).

Antwort

0

Ich habe CC.NEt nicht hier installiert, und ich habe atm keinen Zugang zu meinem Build-Server bei der Arbeit, aber wenn ich mich gut erinnere, sollten Sie 2 Konfigurationsdateien in Ihrem c: \ Programme \ CruiseControl.NET finden Mappe.

ccnet.exe.config und ccservice.exe.config.

Die erste Konfigurationsdatei wird verwendet, wenn Sie CC.NET mit der Konsolenanwendung ausführen, die zweite wird verwendet, wenn Sie CC.NET als Dienst starten.

In diesen Dateien sollten Sie eine Konfigurationseinstellung finden, die auf den Speicherort verweist, an dem die Konfigurationsdatei (en) gefunden werden, die den Buildprozess für Ihre Projekte beschreiben.

bearbeiten: In der Datei ccservice.exe.config finden Sie einen Schlüssel im Abschnitt appSettings, der als ccnet.config bezeichnet wird. Ändern Sie den Wert dieses Schlüssels in den Pfad, in den Sie die Datei ccnet.config stellen möchten.
Wenn dieser Schlüssel nicht vorhanden ist, können Sie es hinzufügen:

<appSettings> 
    <!-- Without this appSetting ccservice will look for ccnet.config in its own directory. --> 
    <add key="ccnet.config" value="D:\CCNetConfigFiles\ccnet.config"/> 
</appSettings> 

Dies ist, wie ich es getan habe:

  • Ich habe die ccnet.config appSetting im ccservice.exe geändert .config-Datei, so dass CruiseControl.NET an einem anderen Speicherort als an der Standardposition nach der Datei ccnet.config sucht. (Wie oben beschrieben). (Ich verstehe, dass Sie dies nicht tun wollen?)
  • Ich habe die ccnet.config Datei verändert sich, so dass es wie folgt aussieht:
 
<!DOCTYPE cruisecontrol [ 
    <!ENTITY project1  SYSTEM "file:D:\CCNETConfigFiles\project1\project1buildconfig.xml.config"> 
    <!ENTITY project2  SYSTEM "file:D:\CCNETConfigFiles\project2\project2buildconfig.xml.config"> 
    <!ENTITY project3 SYSTEM "file:D:\CCNETConfigFiles\project3\project3buildconfig.xml.config"> 
]>
<cruisecontrol> 

    &project1; 
    &project2; 
    &project3; 

</cruisecontrol> 

Auf diese Weise Ich kann jede Projektkonfiguration in einer eigenen Datei haben, und ich kann jede Projektkonfiguration in einem eigenen Verzeichnis ablegen.

  • Dann muss ich nur sicherstellen, dass ich in jeder Projektkonfigurationsdatei die cruisecontrol-Tags entferne, weil sonst die ccnet.config-Datei nicht gegen das Schema validieren würde.
  • +0

    Das war nicht meine Frage. Projekte werden in ccnet.config konfiguriert. Ich bin daran interessiert, wie Sie das Verzeichnis konfigurieren, in das das Projekt _folders_ hinzugefügt wird, wenn Sie ein neues Projekt hinzufügen. –

    +0

    Sie sollten meine Antwort besser lesen, denke ich. –

    +0

    Ich habe gerade jetzt. Vielleicht verstehe ich etwas falsch. "Der Speicherort der Konfigurationsdatei (en), die den Buildprozess für Ihre Projekte beschreiben" ist das Verzeichnis \ server. Unter dem mehrere Unterverzeichnisse existieren, eines pro Projekt. Diese Unterverzeichnisse enthalten keine Konfigurationsdateien. Sie enthalten meist Artefakte aus dem Build. Schlägst du vor, dass der Speicherort dieser Unterverzeichnisse in ccservice.exe.config festgelegt wird? Weil ich es dort nicht finden konnte. –

    0

    Wahrscheinlich nicht die Antwort, auf die Sie warten, aber könnte immer noch interessant sein: Wir verwenden etwa zwanzig Build-Maschinen mit etwa fünfzig verschiedenen Builds. Da es in der Tat keine gute Idee ist, Daten mit Programmdateien zu mischen, haben wir beschlossen, unsere ccnet-Installation in die Quellcodeverwaltung zu stellen. Jeder Server hat seine eigene Konfigurationsdatei in diesem Verzeichnis (auch in der Quellcodeverwaltung) und eine lokale Batch-Datei oder ein Shortcut, der ccnet startet, gibt an, welche Konfigurationsdatei verwendet wird. Dies bedeutet, dass lokale Daten (die Build-Protokolle) mit Daten vermischt werden, die notwendigerweise vorhanden sind (Ccnet-Binärdateien/Konfigurationsdateien), aber wir haben diese Situation akzeptiert. Hoffe das hilft.

    Grüße,

    Sebastiaan

    +0

    Nun, tut es nicht beantworte meine Frage wirklich. Ich halte jedoch alle nicht-binären Dateien in meiner cc.net-Installation unter SVN. Das ist eine gute Idee. –

    7

    des Projekts Arbeits und Artefakt-Verzeichnis einstellen und fertig. Sie standardmäßig zu:

    • [ccnet-install-dir]\[project-name]\WorkingDirectory
    • [ccnet-install-dir]\[project-name]\Artifacts.

    Wenn Sie z.B. setzen diese Verzeichnisse zu ...

    • [projects-dir]\[project-name]\WorkingDirectory
    • [projects-dir]\[project-name]\Artifacts

    ... Sie sicher den [ccnet-install-dir]\[project-name] Teilstruktur entfernen können (Sie verlieren Ihr Projekt erstellen Geschichte dann).

    So wird Ihre Konfiguration wie folgt aussehen:

    <project name="foo"> 
        [...] 
        <workingDirectory>C:\projects\foo\WorkingDirectory</workingDirectory> 
        <artifactDirectory>C:\projects\foo\Artifacts</artifactDirectory> 
        [...] 
    </project> 
    
    +1

    Ja, aber * wie * setzen Sie diese Verzeichnisse? –

    +0

    @splittered Bits: Konfigurations-Snippet hinzugefügt. Sollte jetzt klarer sein. –