CruiseControl.net文件合并问题

时间:2011-10-26 15:55:35

标签: xml cruisecontrol.net

我在尝试将FxCop,StyleCop和其他一些xml文件的输出合并到构建中时遇到问题。

我的配置如下:

<publishers> 
    <merge>
     <files>
            <file>$(ArtifactsFolder)\$(ProjectName)\$(CCBuildVersion)\logs\*.xml</file>
     </files>
 </merge>
    <xmllogger logDir="$(ArtifactsFolder)\$(ProjectName)\$(CCBuildVersion)\logs"/>
</publishers>

$(CCBuildVersion)来自ccnet.config文件,如下所示:

<cb:define CCBuildVersion="$[$CCNetLabel]" />

在你开始回答之前要告诉你一些事情:

  • xml文件存在且与ccnet
  • 输出的构建日志位于同一目录中
  • xml文件似乎有效,除了StyleCop顶部没有Xml描述符之外我找不到任何错误,它只是直接进入根节点

我唯一能想到的是,因为我使用的是动态变量,它在解析配置时可能无法获得正确的目录,但话虽如此,所有内容都输出到正确的位置......

我已经查看了临时日志中的每一行,并找到了以下内容:

2011-10-27 09:50:23,724 [ProjectName:ERROR] Publisher threw exception: System.InvalidCastException: Invalid cast from 'System.String' to 'ThoughtWorks.CruiseControl.Core.Tasks.MergeFileInfo'.
   at System.Convert.DefaultToType(IConvertible value, Type targetType, IFormatProvider provider)
   at System.String.System.IConvertible.ToType(Type type, IFormatProvider provider)
   at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
   at ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility.PropertyValue.ChangePropertyValue(Object value)
   at ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility.PropertyValue.ChangeProperty(Object value)
   at ThoughtWorks.CruiseControl.Core.Tasks.ReplacementDynamicValue.ApplyTo(Object value, Dictionary`2 parameters, IEnumerable`1 parameterDefinitions)
   at ThoughtWorks.CruiseControl.Core.Tasks.TaskBase.ApplyParameters(Dictionary`2 parameters, IEnumerable`1 parameterDefinitions)
   at ThoughtWorks.CruiseControl.Core.Project.PublishResults(IIntegrationResult result, Dictionary`2 parameterValues)

尝试使用Google搜索并没有获得任何相关的匹配,之前曾有过这样的人吗?

3 个答案:

答案 0 :(得分:1)

支持通配卡。

请参阅此内容以了解ccnet中的错误: CC.NET File merge task and dynamic values

查看错误报告: http://www.cruisecontrolnet.org/issues/99

答案 1 :(得分:0)

“file”节点是否允许使用通配符? (我不认为该功能存在,但我可能错了。)您可以尝试使用变量合并单个文件名。

编辑:您正在将CCBuildVersion定义为与CCNetLabel相同 - 您是否尝试过直接使用CCNetLabel?

答案 2 :(得分:0)