title: Binding Redirect being added to every app.config
body: <p>I have 20 projects in a solution file. 1 of the projects is a standard library project that all the the projects reference.</p>
  
  <p>About a year ago we added a new nuget package, we'll call it <code>Package A</code> Version 5.0.0.0. It had a bunch of files that it would transfer all over when we compiled but we eventually dealt with it. We added the package to our standard library project (the one the other 19 reference).</p>
  
  <p>I am new to Nuget (so maybe I did something wrong) so I made a new package to serve as a helper for <code>Package A</code>. I had set everything up so that the helper has a dependency on <code>Package A</code> version 3.0.0.0 to 5.0.0.0 (So it works for others who have a lower version than us). Lets call this new package <code>Package A helper</code></p>
  
  <p>I install <code>Package A helper</code> and everything is working as it should. I go to do a pull request and every single app.config in our solution now has </p>
  
  <pre><code>&lt;runtime&gt;
        &lt;assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"&gt;
                &lt;dependentAssembly&gt;
                        &lt;assemblyIdentity name="Package.A" publicKeyToken="8FC3CCAD86" culture="neutral"/&gt;
                        &lt;bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/&gt;
                &lt;/dependentAssembly&gt;
        &lt;/assemblyBinding&gt;
  &lt;/runtime&gt;
  </code></pre>
  
  <p>It will compile fine without it, but visual studio complains and gives a warning. What gives? My manager won't let me merge my code now because it adds too much noise into app.config and depends too much on Package A.</p>
  
  <p>why did adding a nuget package that depended on <code>Package A</code> then have to have this new bindingRedirect when the main dependency was already met before we installed <code>Package A Helper</code>?</p>
  
  <p>And why does it say 0.0.0.0-5.0.0.0 when I specified 3.0.0.0-5.0.0.0 in the nuget package and package.config</p>
  
  <p>Update:</p>
  
  <p>When I build <code>Package A helper</code> with references to <code>Package A</code> version 5.0.0.0 then all the bindingRedirects don't get auto-populated in every app.config but instead warnings are generated. I had originally built it with 3.0.0.0 because I figured it was best to build it with the lowest dependency. The problem still exists because visual studio is still warning and suggesting bindingRedirects are created.</p>
  
  <pre><code>No way to resolve conflict between "Package A, Version=5.0.0.0, Culture=neutral, PublicKeyToken=83hfhsd33" and "Package A, Version=3.0.0.0, Culture=neutral, PublicKeyToken=83hfhsd33". Choosing "Package A, Version=5.0.0.0, Culture=neutral, PublicKeyToken=83hfhsd33" arbitrarily.
  Consider app.config remapping of assembly "Package A, Culture=neutral, PublicKeyToken=83hfhsd33" from Version "3.0.0.0" [] to Version "5.0.0.0" [path to Package A dll] to solve conflict and get rid of warning.
  </code></pre>
  
  <p>Is the solution just to change my nuget package dependency from 3.0.0.0 to 5.0.0.0 and just allow 5.0.0.0 and get rid of my <code>allowedVersions="[3,6)"</code> in me packages.config? I don't want to reduce the helpfulness and backwards compatiblity of my nuget package but at the same time I want no warnings or bindingRedirects required for my main solution.</p>
  
  <p>Update 2: So setting <code>Copy Local</code> in the reference properties to <code>False</code> actually solved my issues, but I don't understand why.</p>