title: Difference between linking files and adding another project as a reference?
body: <p>I have a situation where I have functionality that I want to use across more than 1 application. In particular, I have a <code>Repository</code> taking the form of a C# class library containing things like a EF .edmx, repository, and UnitOfWork that are generic enough to use across applications.</p>
  
  <p>I'm frustrated that I can't see the picture more clearly because I <em>should</em> understand clearly the differences; and I do to a point. However I think I can't see through to the ramifications of each choice and the overall differences.</p>
  
  <p>I have read this link: <a href="https://stackoverflow.com/questions/1116465/how-do-you-share-code-between-projects-solutions-in-visual-studio">How do you share code between projects/solutions in Visual Studio?</a> and it offers some good advice, but both suggestions seem to hold water. I want to understand better the downstream impacts of each and understand which is the proper selection for my need.</p>
  
  <p>I believe with <em>linking</em> files I would create another <em>new</em> <code>Repository</code> project in Application-2, but use the linked files for what comprises that new layer.</p>
  
  <p>I believe with adding the <code>Repository</code> from Application-1 as a <em>reference</em> to Application-2 will work, but I'm not sure what the impact of changing code will be.</p>
  
  <p>I basically need to know which method will yield the correct result for my need to share the repository layer among 1..n applications?</p>