Try this -
Use the config file to set a variable. Don't set EvaluateAsExpression, this just wants to be a literal value that you set. Then set the expression at the Data Flow Task level to be @myvariable. So when evaluated the derived column expression is the literal value of the variable, which should be a valid expression syntax, as entered into the dtsConfig.
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo GeneratedBy="GPM\terzinho" GeneratedFromPackageName="Test" GeneratedFromPackageID="{60B8F833-52BD-42D6-8BA9-71ED125F5B70}" GeneratedDate="12/06/2007 12.40.57"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package\Data Flow Task.Properties[[Derived Column].[Derived Column Output].[NewCol].[FriendlyExpression]]" ValueType="String">
<ConfiguredValue>UPPER("pluto")</ConfiguredValue>
</Configuration>
</DTSConfiguration>
Gianni,
You aren't understanding what Darren wrote.
In the config file, set a value of a variable. JUST A VARIABLE. Then, back in the package, right click on the data flow, select properties, select expressions and find the derived column expression you are trying to set. In that box, type in the name of the variable you are setting with the config file.
@[User::controlCASE] == upper("UPPER") UPPER(@[User::inputString]) : LOWER(@[User::inputString]
I think the part you're missing is what to put in the expression for the derived column. Use the SSIS conditional operator in your derived column, using the variable you're setting through the configuration as the "base" of the condition:
http://technet.microsoft.com/en-us/library/ms141680(SQL.90).aspx