Bug 12999

Summary: mono MSBuild engine does not support embedded CLR property functions in expression
Product: [Mono] Class Libraries Reporter: Atsushi Eno <atsushi>
Component: Ms.BuildAssignee: Marek Safar <masafa>
Status: RESOLVED FIXED    
Severity: normal CC: jeremy, knocte, masafa, mono-bugs+mono
Priority: ---    
Version: master   
Target Milestone: Untriaged   
Hardware: PC   
OS: Linux   
Tags: Is this bug a regression?: ---
Last known good build:
Attachments: repro

Description Atsushi Eno 2013-07-02 04:09:05 UTC
Created attachment 4251 [details]
repro

MSBuild since 4.0 supports embedded property functions in attributes, which is documented as: http://msdn.microsoft.com/en-us/library/dd633440.aspx

We don't have support for that feature yet.

Repro:

- extract the attachment
- go to TestClrFunctionExpression/TestClrFunctionExpression. There is a class library project.
- run: xbuild /t:TestEmbeddedFuncCall

The target is described in TestClrFunctionExpression.csproj.
Comment 1 Marek Safar 2014-06-09 13:52:54 UTC
Property functions are implemented in Mono 3.6.
Comment 2 jeremy 2014-06-16 17:44:43 UTC
What commit was that brought in at? I've got a parallell  Mono, Version 3.6.1.0 installed and I still get an error "Unable to parse condition "$([System.String]::new('%(ReferencePath.Filename)').StartsWith('AutoMapper.'))  : Invalid punctuation: [" in a build.
Comment 3 Atsushi Eno 2014-06-17 01:24:55 UTC
You want 63b6497 or later.
Comment 4 Marek Safar 2014-06-19 09:00:18 UTC
I made some further changes and this works with 357e5fe0ee9c2ef9462ce4669fc092d1aecf3d3c for me
Comment 5 Andres G. Aragoneses 2014-06-19 09:25:22 UTC
Do the fixes for this also fix bug 3010 by any chance?
Comment 6 jeremy 2014-06-19 11:15:20 UTC
Andres, No it does not but for an example patch that fixes the parsing issues with that syntax see: bug 20634

It's not a complete fix since the Condition syntax doesn't evaluate the full expression correctly in all cases but that patch will fix the parsing errors at least.