Wrong version of System.Runtime being packaged
<p>We have written a service to be deployed to Azure.  This consists of a DLL with a "Worker Role" class, and an Azure Cloud Service project, as shown below:
<a href="https://i.stack.imgur.com/TuJFH.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/TuJFH.png" alt="enter image description here"></a></p>

<p>The build steps are:</p>

<ol>
<li>Build the ccproj in "Release" configuration.</li>
<li>Run NuGet "spec", then "pack" to get a .nupkg file</li>
<li>Deploy the .nupkg file to the Azure Cloud Service</li>
</ol>

<p>This has been working fine for a while, until we upgraded to .NET 4.6.2 and also upgraded several other references, including System.Runtime (now v4.3.1).  Now, despite the fact that we have (probably unnecessarily) added a NuGet reference to <em>every single</em> project in the solution, pointing to System.Runtime 4.3.1, the version of System.Runtime.dll that gets deployed is an older version, resulting in DLL hell on the service, which then fails to run.  If we manually copy over the correct version of System.Runtime.dll, then everything works again.</p>

<p>Where is this incorrect version of System.Runtime coming from?  And how do we convince the offending software/hardware to use the correct version?</p>

<p><strong>UPDATE:</strong> Trail is getting warmer.  On my development machine, the <code>bin</code> folder of the EventWorker project contains the correct version of System.Runtime.dll.  But... the <code>EventProcessor\obj\debug\EventWorker</code> folder contains the old version!  I deleted the <code>obj</code> folder and recompiled the project - and the old version of the DLL appears again.</p>

<p>Where is it coming from, and how to fix?</p>