Is there a way to use add-as-link when dragging and dropping source files or entire source trees into a C# project?
Currently, dragging a tree of source files onto a C# project will cause Visual Studio to copy all files to mirror tree below my solution file.
This can be avoided with the the add-as-link option as depicted in the picture below. However, it gets tedious for large trees or when some files in a directory are already part of the project.
Screenshot of the add-as-link functionality in Visual Studio http://jaapsuter.com/images/add_cs_file.jpg
I’ve looked in Tools->Options, searched the web, and held various magic key combinations when dragging and dropping, to no avail.
I’m tempted to write a script that just globs my .cs files and runs a regular expression over my .csproj file. I’m aware of NAnt, Premake, and other solutions – but I’d like something lightweight.
What you can also do if you don’t find a solution is bind a directory to your project by hand once and let the project find all .cs files in that directory automatically when it loads.
This is easily done by changing your MSBuild file in the following way:
This will take all .cs files in SomeDirectory and include them to the project. This is very useful if there are often a lot of files added to the project. However, it may break on some machine adding useless files. That’s why I would only recommend that on an external project that’s not editable in your current workspace.