這個問題很煩人,現在我一直在抨擊它幾個小時。我想要做的是使用CCNet中的配置預處理器創建一個調用CCNet任務的XML元素。我認爲我從根本上誤解了一些東西。Cruise Control .NET:使用cb:使用多個參數定義
我現在是這樣的:
<cruisecontrol xmlns:cb="urn:ccnet.config.builder">
<cb:define name="myBuild">
<devenv>
<solutionfile>"$(projPath)"</solutionfile>
<configuration>"$(releaseMode)"</configuration>
<buildtype>Rebuild</buildtype>
<executable>C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe</executable>
<buildTimeoutSeconds>2400</buildTimeoutSeconds>
<version>VS2008</version>
</devenv>
</cb:define>
然後使用它,我做的一個項目中的以下:
<cb:myBuild projPath="C:\sample.sln" releaseMode="Release" />
我得到的錯誤是
[CCNET服務器:錯誤]內部錯誤:引用未知符號'releasemode'
然後是ThoughtWorks dll的巨大堆棧跟蹤。
我的主要困惑在於爲什麼定義中的「$(projPath)」工作正常,但「$(releaseMode)」沒有。事實上,如果我在項目中刪除對「releaseMode」的所有引用,CCNet接受該腳本甚至構建它們。但是,這並不起作用,因爲並非所有的解決方案都有「釋放」模式,有些是專門命名的(出於某種原因,不要問我)。
任何有關正在發生的事情的幫助,更重要的是,如何解決此問題將非常感激。
我正在運行版本1.8.2。此外,我們也計劃將實際構建腳本移至NANT,但這是構建過程漫長道路上的第一步。
可能是在黑暗中拍攝的,但是當您爲參數使用不同的名稱時會發生什麼?在包含中更改它們的順序? – skolima
第一眼看上去一切都很美好。將調查... –
我將您的配置代碼片段複製到正在運行的CCNET服務器(1.8.2版)的配置中,並且所有內容都按其應有的原樣運行。所以問題不在配置 –