[MonoDevelop] [PATCH] - enable out-of-project files inside of a project

Chris Morgan chmorgan at gmail.com
Mon Sep 11 10:22:52 EDT 2006

On 9/11/06, Michael Hutchinson <m.j.hutchinson at gmail.com> wrote:
> On 9/11/06, Chris Morgan <chmorgan at gmail.com> wrote:
> > Visual Studio express doesn't create symlinks and I'm not a huge fan
> > of adding extra files to my project directory.  imo the reason we have
> > md project files is to keep track of things like where files are.
> That's a valid point. However, the problem is integrating this feature
> with MD's project file structure, because users (and some of the code)
> expect it to be a mirror of the actual folder structure.
> As I see it, there are three ways to implement this feature:
> 1. MD symlinks --  essentially you'll be duplicating the filesystem
> functionality, by having symlinks in the MD project file structure.
> You'll need a UI for users to see and edit the symlinks. The problem
> here is that all files will have two paths, the 'project path' and the
> 'real path'. You'll need to do a review of all parts of MD code that
> use the ProjectFile class (especially the Deployment APIs) to make
> sure that they handle these paths correctly.
> 2. Filesystem links -- this is probably an easier and more robust
> version of (1), because the 'real path' can be kept internal.
> Everything else in MD should handle filesystem links, so can access
> the files using the 'project path', and the code review won't be
> necessary.
> 3. Don't put files in the MD file structure -- have a special
> 'virtual' folder (like the 'references' folder), possibly with
> subfolders. You'll be making the nature of the file very explicit in
> the UI, but this will probably make the code, especially deployment,
> much more complicated.
> Sorry if it sounds like I'm trying to make things difficult, but there
> are lots of not-so-obvious complications to this.
> --
> Michael Hutchinson
> http://mjhutchinson.com

Yes it sounds more difficult than I had originally expected and likely
not something I could do in a reasonable period of time.

I would be interested in putting a few hundred dollars US towards
implementing this functionality in a reasonable manner if anyone is
interested.  Personally I think option 1 is closest to the way it
should be done but as long as the result doesn't produce files in my
project directory that need to be under version control I'll be happy


More information about the Monodevelop-list mailing list