这个问题非常烦人,我已经花了几个小时来解决它。我的目标是使用CCNet中的配置预处理器创建一个调用CCNet中任务的XML元素。我认为我没有正确理解某些东西。
现在我的做法是这样的:
我收到的错误信息是:
[CCNET服务器:ERROR]内部错误:对未知符号“releasemode”的引用
然后是ThoughtWorks dll的大量堆栈跟踪。
我主要困惑的是为什么在定义中的"$(projPath)"能正常工作,而"$(releaseMode)"则不能。事实上,如果我在项目中删除所有对"releaseMode"的引用,CCNet会接受脚本并构建它们。但是由于不是我们所有的解决方案都有“Release”模式,某些解决方案以特定名称命名(不知道原因),因此它无法正常工作。
如果您能告诉我发生了什么,或者更重要的是如何解决这个问题,我将非常感激。
我正在运行1.8.2版本。此外,我们确实计划将实际构建脚本移动到NANT,但这是我们构建流程漫长的第一步。
现在我的做法是这样的:
<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服务器:ERROR]内部错误:对未知符号“releasemode”的引用
然后是ThoughtWorks dll的大量堆栈跟踪。
我主要困惑的是为什么在定义中的"$(projPath)"能正常工作,而"$(releaseMode)"则不能。事实上,如果我在项目中删除所有对"releaseMode"的引用,CCNet会接受脚本并构建它们。但是由于不是我们所有的解决方案都有“Release”模式,某些解决方案以特定名称命名(不知道原因),因此它无法正常工作。
如果您能告诉我发生了什么,或者更重要的是如何解决这个问题,我将非常感激。
我正在运行1.8.2版本。此外,我们确实计划将实际构建脚本移动到NANT,但这是我们构建流程漫长的第一步。