我在尝试将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]" />
在你开始回答之前要告诉你一些事情:
我唯一能想到的是,因为我使用的是动态变量,它在解析配置时可能无法获得正确的目录,但话虽如此,所有内容都输出到正确的位置......
我已经查看了临时日志中的每一行,并找到了以下内容:
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搜索并没有获得任何相关的匹配,之前曾有过这样的人吗?
答案 0 :(得分:1)
支持通配卡。
请参阅此内容以了解ccnet中的错误: CC.NET File merge task and dynamic values
答案 1 :(得分:0)
“file”节点是否允许使用通配符? (我不认为该功能存在,但我可能错了。)您可以尝试使用变量合并单个文件名。
编辑:您正在将CCBuildVersion定义为与CCNetLabel相同 - 您是否尝试过直接使用CCNetLabel?
答案 2 :(得分:0)