title: How C# projects link the assemblies
body: <p>I'd like to ask a question about the way how C# links its dependencies.</p>
  
  <p><strong><em>First case:</em></strong> 
  I have a C# project that links e.g. <strong>System</strong> assembly. If I add reference from the <strong>Assembly->Framework</strong> window:
  <a href="https://i.stack.imgur.com/aTjo3.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/aTjo3.png" alt="enter image description here"></a></p>
  
  <p>and then double click on the System assembly on the reference view: 
  <a href="https://i.stack.imgur.com/tcRJW.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/tcRJW.png" alt="enter image description here"></a></p>
  
  <p>the path to the assembly would be: <strong>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5.2\System.dll</strong></p>
  
  <p>But if I have .nuget enabled and it has downloaded the assemblies, the link to the system assembly would be magically changed to the: <strong>C:\Users\.nuget\packages\Microsoft.NETCore.Portable.Compatibility\1.0.0\ref\netcore50\System.dll</strong></p>
  
  <p>Why I say "magically" is because I can't see the place that explicitly says - from now take the assembly from that direction. </p>
  
  <p><strong><em>Second case:</em></strong> 
  When I have .nuget assemblies downloaded, on the Project Reference Window I see next thing:</p>
  
  <p><a href="https://i.stack.imgur.com/oDvzn.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/oDvzn.png" alt="enter image description here"></a></p>
  
  <p>Two assemblies of the different versions are linked to my project, one is from the place where .nuget resides, the other is from the place where the .NET Framework resides. Question: which one will be taken into account? Both?</p>
  
  <p>Just a thought, though.</p>
  
  <p>When I work with C++ project, everything is super clear and straightforward, I may have few different SDKs installed, but when I define the SDK version and the toolset to be use and - the project will take assemblies from the defined place. It doesn't try to load something from different place, unless I specified so.</p>
  
  <p>Maybe C# projects have similar configuration abilities but I'm not aware of them. 
  Could somebody help me with understanding that?</p>
  
  <p><strong>Update</strong></p>
  
  <p>Just realized that my statement here: <em>When I have .nuget assemblies downloaded, on the Project Reference Window I see next thing:</em> might be confucing. Adding full screen shot where I have listed to different assemblies versions:
  <a href="https://i.stack.imgur.com/Kt2x2.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/Kt2x2.png" alt="enter image description here"></a></p>
  
  <p>Also, adding my project file screenshot, to show that it doesn't have a place where it explicitly says to where from to take the assembly:
  <a href="https://i.stack.imgur.com/GrIiS.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/GrIiS.png" alt="enter image description here"></a></p>