Warum muss CruiseControl.NET nach GetCcNetConfigFiles neu gestartet werden?

7

Der CruiseControl.NET-Dienst muss neu gestartet werden, um Änderungen in den projects Konfigurationsdateien zu übernehmen.

Ich finde das sehr ärgerlich, nicht sicher, ob es ein Bug ist oder wie es funktioniert.

Gibt es eine Möglichkeit, dieses Problem in der Erfahrung der Menschen zu überwinden?

    
JohnIdol 11.03.2009, 11:56
quelle

5 Antworten

10

Wenn Ihre Projekte in einer anderen Datei als ccnet.config getrennt sind, müssen Sie den Dienst neu starten, sofern Sie nicht die tatsächliche ccnet.config-Datei berühren.

Wir verwenden für unsere Projekte die Datei ENTITY mit der Dateireferenz SYSTEM in ccnet.config, also befinden wir uns im selben Boot. Ich bin froh, den Preis für eine einfachere Projektwartung bezahlen zu können, da es einfach ist, einen Neustart zu starten:

%Vor%

Wenn Sie dies komplett automatisieren möchten und Ihre Projekte unter Versionskontrolle haben, könnten Sie ein Update auslösen und neu starten, wenn Ihre Projektdateien berührt werden.

    
si618 11.03.2009, 15:04
quelle
5

Vor 1.4.4 gab es einen Fehler in CC.Net. Wenn Sie einen Preprozessor-Include verwendeten, wurde die Konfiguration nicht erneut geladen, wenn eine enthaltene ccnet.config-Datei geändert wurde.

Das war ein Fehler, den ich gemeldet habe und der in CC.Net 1.4.4 und höher behoben ist.

Denken Sie auch daran, dass, wenn ein Build ausgeführt wird und die Konfiguration geändert wird, er erst stattfindet, wenn sich der Build im Leerlaufzustand befindet.

    
PilotBob 23.09.2009 21:20
quelle
2

Wie aktualisieren Sie Ihre Konfigurationsdateien? Von Hand? Meins erkennt und passt sich immer an. Ist Ihre Konfigurationsdatei in der Quellcodeverwaltung und entworfen, um es herunter zu ziehen und die Datei zu ersetzen? Das erfordert für mich einen Tritt. Wie ich es am Ende behoben habe, habe ich mein Projekt in einen separaten Ordner runterziehen lassen. Dann rufe ich ccnet.exe -validate darauf auf, um sicherzugehen, dass es gut gebildet ist, dann kopiere ich es über die aktuelle Konfigurationsdatei. CC.NET erkennt die Änderungen und lädt in der neuen Konfiguration

Ausnahmen: Wenn cc.net gerade ein Projekt ausführt, werden die Änderungen erst erkannt, wenn das Projekt abgeschlossen ist.

Wenn Ihre ccnet.config Fehler hat, wird sie die Änderungen niemals erkennen und die alte Version, die sie gespeichert hat, weiterhin ausführen. (Wenn CC.NET jedoch neu startet, versucht es die fehlergefüllte Konfiguration zu analysieren und zu drosseln.

Hoffe das hilft !!

    
Alex 11.03.2009 15:00
quelle
2

Meinen Sie, dass Sie verknüpfte Dateien verwenden, dh die Datei ccnet.config enthält Links zu den unabhängigen Projektdateien.

Wenn ja, dann werden sie nicht abgeholt, es wird in der Dokumentation erwähnt, dass sie die Unterdateien nicht sieht.

Intern haben wir unser CruiseControl.net geändert, so dass unsere ccnet.config optional ein Verzeichnis ist - und wir können Verknüpfungen zu unseren Projektkonfigurationsdateien in dieses Verzeichnis einfügen. Wir überwachen das Verzeichnis, die Dateien oder Verknüpfungen im Verzeichnis und alle Ziele der Verknüpfungen. Das bedeutet, dass wir unsere Projektkonfigurationsdateien in ClearCase haben und einfach eine Verknüpfung in das Verzeichnis ccnet.config legen.

Ich habe gerade einen halben Tag damit verbracht, von 1.2 auf 1.4.2 umzusteigen und unsere Änderungen in die neue Version für unseren internen Gebrauch zu übernehmen. Wir besitzen unseren Code nicht, unser Kunde tut das und muss intern bleiben :(

    
Alan Mullett 11.03.2009 15:08
quelle
1

Ich habe das noch nie erlebt. Wenn ich die Konfigurationsdateien ändere, scheint der CruiseControl.NET-Dienst sie automatisch erneut zu lesen.

Ich verwende Version 1.3 von CC.NET.

Aktualisierung:

In der Konfigurationsdatei des Dienstes (ccservice.exe.config) gibt es eine Einstellung zum Aktivieren / Deaktivieren der Datei ccnet.config für Änderungen:

%Vor%

Stellen Sie sicher, dass dies auf "true" gesetzt ist.

    
M4N 11.03.2009 12:05
quelle

Tags und Links