title: What is the proper handling for NuGet packages in a .NET solution?
body: <p>I have a C# solution consisting of different projects.</p>
  
  <pre><code>MySolution
  +-- Project1
  +-- Project2
  |   +-- packages.config
  +-- Project3
  +-- packages
  |   +-- System.Linq.4.0.0
  |   +-- System.CodeAnalysis.CSharp.1.3.2
  </code></pre>
  
  <p>I have NuGet dependencies as you can see. </p>
  
  <h3>Declaring dependencies, installing them</h3>
  
  <p>My point is that Visual Studio has created <code>packages.config</code> with the list of the dependencies I need inside the project that actually needs those dependencies. And I guess this is fine.</p>
  
  <p>Also, Visual Studio installs all the packages in a folder which is in the solution folder. This is fine too because projects like <code>Project1</code> (which depends on <code>Project2</code>) need to refer those packages as well.</p>
  
  <h3>Questions</h3>
  
  <p>My doubts are on this arrangement:</p>
  
  <ol>
  <li>Isn't it better to have packages defined in <code>packages.config</code> in the solution folder rather than in one of the projects?</li>
  <li>If projects use different NuGet packages, the <code>packages.config</code> in the solution folder will enumerate all of them. Is it fine?</li>
  <li>If I remove the <code>packages.config</code> from each project and add a <code>packages.config</code> in the solution folder, will Visual Studio update that file everytime I update/add/remove packages?</li>
  <li>Would this be a recommended approach?</li>
  </ol>
  
  <p>Note that I have tried this and it seems to be fine except for point 3 where Visual Studio does not seems to recognize the packages I have installed. Apart from that point, this question is very best-practice related.</p>