title: How do I eliminate redundant copies of assemblies
body: <p>I'm currently developing a series of applications for our local company.  In order to normalize things as much as possible, I've created a "core" library that will handle all of the commonly used functions (report creation, FTP, database execution, etc.)  However, in order to create my core library, I have to reference a slew of other (3rd-party) libraries, such as <code>Npgsql.dll</code>, <code>Newtonsoft.Json.dll</code>, various <code>CrystalDecisions</code> libraries, and others.</p>
  
  <p>At present, for every new application I build, I'm copying ALL of the libraries - including my own core library - into individual executable folders on our network.  This works for our environment because these applications are only ever intended to be used internally.</p>
  
  <p>However, for the sake of simplicity, I'd like to have all of the 3rd-party libraries accessed from a central repository.  I'm not as concerned about my core library, but with the number of 3rd-party libraries I'm using, it can get a bit confusing - especially if just one of those libraries is out of date in the specific application's executable folder.</p>
  
  <p>Is there a "best practice" for this type of situation?  I've glanced at some information regarding the GAC, but I'm not 100% sure how I would make it work in this scenario.  Any advice or suggestions would be greatly appreciated.</p>