Ich bin gerade dabei, CruiseControl.NET einzurichten. Das Problem, das ich habe, ist, dass ich CC als Konsolenanwendung verwende. Wenn mein Build erfolgreich abgeschlossen und ausgeführt wird (mithilfe von exec), wird es in der CruiseControl-DOS-Eingabeaufforderung gestartet. Ich verwende nur einfache Batchdateien, um meine App zu starten, aber wenn sie innerhalb derselben Eingabeaufforderung wie CC ausgeführt wird, wird CC davon ausgehen, dass der Build so lange fortgesetzt wird, wie meine App ausgeführt wird.
Gibt es Befehlszeilenparameter für cmd.exe
, die ein weiteres separates Eingabeaufforderungsfenster erzeugen?
Ich denke das funktioniert:
start cmd.exe
hier ist der Code, den du brauchst;)
start cmd.exe @cmd /k "Command"
Geben Sie einfach start in die Eingabeaufforderung ein:
start
Dies öffnet ein neues cmd
-Fenster.
start cmd.exe
öffnet ein separates Fenster
start file.cmd
öffnet die Batchdatei und führt sie in einer anderen Eingabeaufforderung aus
START "notepad.exe"
echo Will launch the notepad.exe application
PAUSE
To make any cmd file type all you have to do is save the contents as .bat I.e.
@echo
TITLE example.bat
PAUSE
taskkill/IM cmd.exe
Make that into a "example.bat" file and save it open it and run.
schreiben Sie einfach in Ihre Fledermausdatei
@cmd
oder
@cmd /k "command1&command2"
Sie können diese drei Befehle einfach über die Eingabeaufforderung eingeben:
start
start cmd
start cmd.exe
Ich habe auch versucht, eine Batchdatei auszuführen, die den Daemon-Prozess/Server am Ende der CCNET-Task ausführt. Die einzige Möglichkeit, CruiseControl einen unabhängigen asynchronen Prozess zu erzeugen, OHNE auf das Ende des Prozesses zu warten, ist:
taskplaner verwenden, um die Batchdatei als CCNET-Task auszuführen (mithilfe von schtasks.exe)
schtasks.exe /create /F /SC once /ST 08:50 /TN TaskName /TR "c:/path/to/batchFileName.bat"
möglicherweise müssen Sie den Prozess am Anfang von ccnet beenden
PS: Die ausgewählte Antwort mit "start cmd.exe" funktioniert nicht. Eine neue Eingabeaufforderung wird zwar erzeugt, aber CCNET wartet, bis der erzeugte cmd abgeschlossen ist.