2010-12-20 63 views
2

我有一個問題發佈我當前的項目狀態。Cruisecontrol發佈命令onfailure

映射:

<publishers> 
    <xmllogger /><!-- Log For WebDashboard ##Do not remove##-->  
    <email> 
    ... 
    </email> 
    <onfailure> 
    <exec> 
     <executable>echo ERROR > logs/status.txt</executable> 
    </exec> 
    </onfailure>    
</publishers> 

當我想開始我的服務,我得到以下信息:

ThoughtWorks.CruiseControl.Core.Config.ConfigurationException: 無法從配置文件實例CruiseControl的項目。 配置文檔很可能缺少正確填充CruiseControl配置所需的Xml節點。 無法加載數組項'onfailure' - 無法從類型System.String轉換爲ThoughtWorks.CruiseControl.Core.ITask對象的值爲:「echo ERROR> logs/status.txt」

有誰知道那條消息是什麼手段?

感謝預期

亞歷

回答

5

您正在使用的CruiseControl或CruiseControl.NET?

如果CC.NET,那麼「onfailure」節點不存在。相反,你應該使用Conditionnal出版商[1]是這樣的:

<conditionalPublisher> 
    <conditions> 
     <condition>Failure</condition> 
    </conditions> 
    <publishers> 
     <exec> 
      <executable>echo ERROR > logs/status.txt</executable> 
     </exec> 
    </publishers> 
</conditionalPublisher> 

您可能還需要封裝你回聲任務在CMD invokation:

<exec> 
    <executable>cmd.exe</executable> 
    <buildArgs>/c "echo ERROR > logs\status.txt"</buildArgs> 
</exec> 

[1] http://ccnetlive.thoughtworks.com/ccnet/doc/CCNET/Conditional%20Publisher.html

+0

感謝您的回覆,我已經試過您的解決方案,現在我得到的錯誤消息: ThoughtWorks.CruiseControl.Core.Config.ConfigurationException:檢測未使用的節點:失敗 呼應ERROR >日誌/ status.txt中 我使用的版本1.5.7256.1 – 2010-12-20 09:34:59

+0

當然,它的作品,我很抱歉,我沒有知道這是出版商的一個子節點,v感謝您的供應。 (: – 2010-12-20 09:46:28

0

documentation開始,看起來<executable>必須是可執行文件的名稱,參數必須在<buildArgs>中傳遞。所以像這樣的事情可能會訣竅。

<exec> 
    <executable>echo</executable> 
    <buildArgs>ERROR > logs/status.txt</buildArgs> 
</exec> 
+0

感謝您的回覆,這沒有解決我的問題,相同的消息:/ – 2010-12-20 09:29:35

+0

關於下面的答案,它的工作,謝謝。(: – 2010-12-20 09:47:17