この問題は非常に厄介で、私は数時間前からこの問題に頭を悩ませてきました。私がやろうとしているのは、CCNet の構成プリプロセッサを使用して、CCNet でタスクを呼び出す XML 要素を作成することです。私は根本的に何かを誤解していると思います。
私が今持っているものは次のようになります:
<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 に移行する計画もありますが、これはビルド プロセスの長い道のりの最初のステップです。