views:

782

answers:

3

Many times I have seen Visual Studio solutions which have multiple projects that share source files. These common source files are usually out in a common directory and in the solution explorer their icon shows up with a link arrow in the bottom left.

However, any time I try to add a source file to the project that is outside of that project's main directory, it just automatically copies it into the directory so that I no longer have a shared copy.

I found that I can get around this by manually opening the project file in a text editor and modifying the path to something like "../../../Common/Source.cs" but this is more of a hack then I would like.

Is there a setting or something I can change that will allow me to do this from within the IDE?

+14  A: 

Right click on a project, select Add->Existing Item->Add as link (press on small arrow on Add button)

aku
A: 

@aku Wow, that was easy... thought that down arrow is easy to miss. Thanks!

Adam Haile
+1  A: 

Thanks @aku!

I knew this could be done, but I didn't know how to do this from Visual Studio. It shows up as a shortcut to the file and the csproj file generates the resulting XML like this:

<Compile Include="..\CommonAssemblyInfo.cs">
  <Link>CommonAssemblyInfo.cs</Link>
</Compile>

I've seen this technique commonly used for common AssemblyInfo files to keep a consistent version.

David Mohundro