csjproj feature request to support %(RecrusiveDir)

First off, we are loving the new Xamarin Studio. That said, I have a feature request that would make our lives easier. I’m not sure this is the right place to ask for new work but here goes.

We manage some pretty large cross platform projects that have lots of files. In Visual Studio we have modified our .csproj files to enumerate the contents of certain directories and include those files in the project. It's very useful. However, it appears that you can’t do this in XS.

The markup to do this in a csproj file looks like this:

%(RecursiveDir)\%(FileName)

Any chance this could be enabled in future XS updates? Thanks!

Posts

  • JohnThorntonJohnThornton USMember
    edited March 2013

    I'm having issues getting my example to post as code... Here is a link to the msdn docs: http://msdn.microsoft.com/en-us/library/ms164313.aspx

  • LluisSanchezLluisSanchez ESXamarin Team Xamurai

    We have added support for recursive inclusion of files using the ** wildcard. This will be available in upcoming releases.

  • mhutchmhutch USMember, Xamarin Team Xamurai
    edited March 2013

    For some background on MSBuild support in Xamarin Studio, see The State of MSBuild Support in MonoDevelop

  • GuillaumeMGuillaumeM USMember

    Hi,

    Any news about this feature ?
    I'm trying to use it in a Compile/Link tag like this

    <Content Include="..\..\MyContentFiles\**">
      <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    

    Within Xamarin Studio 4.0.9 I see a project full of items named "%(RecursiveDir)%(Filename)%(Extension)", the expression is not interpreted.

  • VivekJhaveriVivekJhaveri USMember
    edited July 2013

    @mhutch - the RecursiveDir feature is essential for a lot of reasons. The document you point to is a year old. Surely some progress has been made in this area?

    The gist of that document is that msbuild is complex, which is true. However, you also add this paragraph:

    "Wildcards in items paths are a similar problem. For example, evaluating a wildcard in an item when deserializng would result in adding several items to MD's internal model. And in simple cases, we could match all those items back to the wildcard MSBuild item when serializing. So far so good. But what happens if a new file is added on disk outside of MD while the project is open? What happens if the user manually removed a single item in the solution tree? What happens if the user changes the metadata of a single item? In all of these cases, the items can no longer be mapped back to the single wildcard MSBuild item. It would probably be possible to remove the wildcard item and serialize all the items to MSBuild individually — but that might not be what the user expected. This is just one example of how supporting a simple MSBuild feature in the IDE might not be as simple as it looks."

    Hasn't this already been solved by Visual Studio? It is then a matter of correctly duplicating those behaviors. Anything else is incorrect from a compatibility standpoint.

    Is there any way we can track this feature request? Thanks.

  • mhutchmhutch USMember, Xamarin Team Xamurai

    Everything can be solved, the problem is that this stuff is very complex - particularly since XS has a very different internal project model than VS, and Mono does not have an implementation of the MSBuild hosting APIs - and we have limited resources and are working on other areas at the moment. We do actually have wildcard support now - but only because it was contributed by a user (Xamarin Studio is based on the open-source MonoDevelop).

Sign In or Register to comment.