title: What does the "Detected package downgrade" warning mean?
body: <p>When I run <code>dotnet restore</code> (or run package restore in Visual Studio), I see warnings like this:</p>
  
  <blockquote>
    <ul>
    <li>/usr/local/share/dotnet/sdk/1.0.4/NuGet.targets(97,5): warning : Detected package downgrade: Microsoft.EntityFrameworkCore.Design from 1.1.1 to 1.0.3  [/Users/markamery/somesolution/SomeSolution.sln]</li>
    <li>/usr/local/share/dotnet/sdk/1.0.4/NuGet.targets(97,5): warning :  SomeProject (>= 1.0.0) -> Microsoft.EntityFrameworkCore.Tools (>= 1.1.0) -> Microsoft.EntityFrameworkCore.Design (>= 1.1.1)  [/Users/markamery/somesolution/SomeSolution.sln]</li>
    <li>/usr/local/share/dotnet/sdk/1.0.4/NuGet.targets(97,5): warning :  SomeProject (>= 1.0.0) -> Microsoft.EntityFrameworkCore.Design (>= 1.0.3) [/Users/markamery/somesolution/SomeSolution.sln]</li>
    </ul>
  </blockquote>
  
  <p>I'm struggling to parse the meaning of the warning above. Various things are unclear to me:</p>
  
  <ul>
  <li>What is a "package downgrade", in this context?</li>
  <li>What causes a "package downgrade" to happen?</li>
  <li>What do the lines below the <em>"Detected package downgrade"</em> mean? In particular, what do the arrows (<code>-&gt;</code>) between packages there convey?</li>
  </ul>