Hi Igor, I've tracked down what is causing this - we changed targetList from being a field to a property in the nant task. Unfortunately this is now breaking the code for setting the value using the dynamic values :-(
Since the problem is with the setting of the values there is no work around for it - we will need to fix the code. Craig -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Igor Markovic Sent: Friday, 28 January 2011 3:36 a.m. To: ccnet-user Subject: [ccnet-user] problems with dynamic valueparameters since I use ccnet 1.6 release Since I upgraded to ccnet 1.6 I have problems using dynamic parameters in a nant task. It did work correctly with the 1.5 release. I defined the following parameter in my project: <parameters> <selectParameter name="BuildType"> <allowedValues> <value name="NightlyBuild">NightlyBuild</value> <value name="IncrementalBuild">IncrementalBuild</value> </allowedValues> <default>IncrementalBuild</default> </selectParameter> </parameters> When I add a task like: <exec executable="cmd.exe" buildArgs="/C echo $[BuildType]"/> It will work and the output will be: -------------------- [Workstation (Release):DEBUG] Starting process [cmd.exe] in working directory [D:\CruiseControl\Workstation (Release)\Sources] with arguments [/C echo IncrementalBuild] [Workstation (Release):DEBUG] Not setting PriorityClass on [D: \CruiseControl\Workstation (Release)\Sources\cmd.exe] to default Normal [10:DEBUG] [Workstation (Release) cmd.exe] IncrementalBuild -------------------- But when I use the dynamic parameter in my ant task it will throw an exception. -------------------- System.Reflection.TargetParameterCountException: Parameter count mismatch. at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture) at System.Reflection.RuntimePropertyInfo.SetValue(Object obj, Object value, Object[] index) at ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility.PropertyValue.Chan gePropertyValue(Object value) at ThoughtWorks.CruiseControl.Core.Tasks.DynamicValueUtility.PropertyValue.Chan geProperty(Object value) at ThoughtWorks.CruiseControl.Core.Tasks.DirectDynamicValue.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.RunTasks(IIntegrationResult result, IList tasksToRun, Dictionary`2 parameterValues) at ThoughtWorks.CruiseControl.Core.Project.Run(IIntegrationResult result) at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Build(IIntegrationResult result) at ThoughtWorks.CruiseControl.Core.IntegrationRunner.Integrate(IntegrationReque st request) -------------------- My nant task looks like this: <nant> <executable>$(tool-nant)</executable> <baseDirectory>$(base-dir)</baseDirectory> <nologo>true</nologo> <buildFile>Sources\Build\default.build</buildFile> <logger>NAnt.Core.XmlLogger</logger> <targetList> <target>$[BuildType]</target> </targetList> <buildTimeoutSeconds>1800</buildTimeoutSeconds> </nant> How can I make the dynamic parameters work with ccnet 1.6? Thanks for your help.
