Using library build with .NET Stanard Library in a .NET 4.6 project
<p>There are some projects:</p>

<ul>
<li>Library LibA targeting .NET Standard Library</li>
<li>Application Proj46 targeting .NET Framework 4.6</li>
<li>Applicatoin ProjC targeting .NET Core 1.0</li>
</ul>

<p>LibA does something:</p>

<pre><code>public static class Foo
{
    public static void Bar()
    {
        using (var f = new FileStream("test.txt", FileMode.Create, FileAccess.Write))
            Thread.Sleep(1);
        ThreadPool.QueueUserWorkItem(new WaitCallback((a) =&gt; { }));
    }
}
</code></pre>

<p>Thus it requires the dependencies</p>

<ul>
<li>NETStandard.Library</li>
<li>System.Threading.ThreadPool</li>
<li>System.Threading.Thread</li>
</ul>

<p>LibA project.json:</p>

<pre><code>{
  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "System.Threading.ThreadPool": "4.0.10",
    "System.Threading.Thread": "4.0.0"
  },
  "frameworks": {
    "netstandard1.3": { }
  }
}
</code></pre>

<p>Proj46 uses LibA:</p>

<pre><code>LibA.Foo.Bar();
</code></pre>

<p>There's an FileNotFoundException at runtime saying: 'File or assembly "System.IO.FileSystem, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" not found'. In order to work, I have to add all the dependencies to Proj46. </p>

<p>Is it possible to build LibA using .NET Standard Library, without having to install all it's dependencies to any upstream project?
AFAIK .NET46 implements .NETStandard1.3. Thus it should not be required to have it as a dependency.</p>

<p>EDIT:</p>

<p><a href="https://www.dropbox.com/s/fdbipcgwynu9mjf/Example.zip?dl=0" rel="nofollow">Complete solution to reproduce</a></p>

<p>The exception goes away, after adding nuget packages "NETStandard.Library", "System.Threading.Thread" and "System.Threading.ThreadPool" to Proj46.</p>