How can I use CCNetLabel in the file merge task? From what I have found I have to use dynamicValues. I have something like this and it is not working any help?
<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>
In your script you're trying to generate the following configuration (intentionally I'm using the shorthand notation which is easier to read):
<publishers>
<merge>
<files>D:\Testoutput\$[$CCNetLabel]\*.xml</files>
</merge>
<xmllogger />
<modificationHistory onlyLogWhenChangesFound="true" />
<statistics />
</publishers>
This won't work because <files>
is an array, therefore you'd need something like:
<publishers>
<merge>
<files>
<file>D:\Testoutput\$[$CCNetLabel]\*.xml</file>
</files>
</merge>
<xmllogger />
<modificationHistory onlyLogWhenChangesFound="true" />
<statistics />
</publishers>
Unfortunately this doesn't work either because <dynamicValues>
are supported only for the <merge>
but not for the <files>
tag. I don't think it's currently (version 1.6) possible to use integration properties here at all.
I'd use the following workaround to achieve the same result:
<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>
来源:https://stackoverflow.com/questions/4569614/cc-net-file-merge-task-and-dynamic-values