.net - 巡航控制.NET : using cb:define with multiple parameters

标签 .net build cruisecontrol.net

这个问题很烦人,我已经反对它几个小时了。我想要做的是使用 CCNet 中的配置预处理器来创建一个 XML 元素,该元素调用 CCNet 中的任务。我想我从根本上误解了一些东西。

我现在的情况是这样的:

 <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,但这是我们构建过程漫长道路上的第一步。

最佳答案

我从您的部分构建了一个简单的配置文件,但它可以完美运行:

<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>

<project name="a">
  <tasks>
    <cb:myBuild projPath="C:\sample.sln" releaseMode="Release" />
  </tasks>
</project>

不知何故,我怀疑与服务器上的任何其他配置设置相关的错误。

为了简化故障排除使用 CCValidator.exe如果你还没有这样做。这样,您的潜在问题来源就会少很多。您可以在 CruiseControl.NET\server 中找到它文件夹。尝试打开其中的配置文件,看看它是否显示任何错误。

如果是这样,请尝试注释掉或删除配置的所有部分,使其尽可能小,同时仍然重现问题。如果还是不能解决,把那个配置贴出来让大家看看。

关于.net - 巡航控制.NET : using cb:define with multiple parameters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13038559/

相关文章:

.net - 线程池与专用线程 - 何时选择哪个

java - Ant 将文件复制到叶目录

.net - CruiseControl.NET构建标签问题

msbuild - CruiseControl.NET 与 Web 部署项目

.net - 如何将 CC.NET 自动构建版本戳写入全局程序集信息文件并由多个 .NET 应用程序引用?

c# - 关闭应用程序c#后继续处理

c# - 如何在C#中继承C++/CLI接口(interface)?

.Net 编程 : What to validate on an SSL self-signed certificate

android - eclipse ,安卓 : Unexpected Unable to execute dex: Multiple dex files define

构建时 Angular 不替换环境文件