CC.NET文件合并任务和动态值

时间:2010-12-31 10:46:14

标签: cruisecontrol.net ccnet-config continuous-integration

如何在文件合并任务中使用CCNetLabel?从我发现我必须使用dynamicValues。我有这样的事情,它没有任何帮助吗?

<publishers>
  <merge>
    <dynamicValues>
      <replacementValue property="files">
        <format>D:\Testoutput\{0}\*.xml</format>
        <parameters>
          <namedValue name="$CCNetLabel" value="Default" />
        </parameters>
      </replacementValue>
    </dynamicValues>
  </merge>
  <xmllogger />
  <modificationHistory onlyLogWhenChangesFound="true" />
  <statistics />
</publishers>

1 个答案:

答案 0 :(得分:3)

在您的脚本中,您尝试生成以下配置(故意我使用的是易于阅读的简写符号):

<publishers>
  <merge>
    <files>D:\Testoutput\$[$CCNetLabel]\*.xml</files>
  </merge>
  <xmllogger />
  <modificationHistory onlyLogWhenChangesFound="true" />
  <statistics />
</publishers>

这不起作用,因为<files>是一个数组,所以你需要像:

<publishers>
  <merge>
    <files>
      <file>D:\Testoutput\$[$CCNetLabel]\*.xml</file>
    </files>
  </merge>
  <xmllogger />
  <modificationHistory onlyLogWhenChangesFound="true" />
  <statistics />
</publishers>

不幸的是,这不起作用,因为<dynamicValues>仅支持<merge><files>标记不支持<publishers> <exec> <executable>C:\Windows\system32\cmd.exe</executable> <buildArgs>/C copy D:\Testoutput\$[$CCNetLabel]\*.xml D:\Testoutput\FixedDir</buildArgs> </exec> <merge> <files> <file>D:\Testoutput\FixedDir\*.xml</file> </files> </merge> <xmllogger /> <modificationHistory onlyLogWhenChangesFound="true" /> <statistics /> <exec> <executable>C:\Windows\system32\cmd.exe</executable> <buildArgs>/C del D:\Testoutput\FixedDir\*.xml</buildArgs> </exec> </publishers> 。我认为目前(版本1.6)不可能在这里使用集成属性。

我将使用以下解决方法来实现相同的结果:

{{1}}