ASP.NET 核心引用 TPL NuGet 包找不到文件或程序集 System.Threading

ASP.NET Core referencing TPL NuGet package Cannot Find File or Assembly System.Threading

我正在制作一个新的 ASP.NET 核心 2.0 项目,本质上是一个 Web API。我必须引用几个属于 .NET 3.5 程序集的程序集,所以我 运行 将其作为 .NET Framework 项目,尽可能使用 .NET Core 改进。

引用的 .NET Framework 3.5 程序集引用了 TaskParallelLibrary (1.0.2856)。我认为这就是我的问题所在。值得注意的是 Web API 在其示例端点上工作并且一切都按预期工作。

当我 运行 应用程序并尝试使用引用的库时,调用失败并且我收到以下异常:

Could not load file or assembly 'System.Threading, Version=1.0.2856.102, Culture=neutral,
PublicKeyToken=31bf3856ad364e35'    
or one of its dependencies. The system cannot find the file specified.

我尝试了几种方法,包括:

添加一个 App.configx 文件以尝试强制它以 .NET Framework 4 的 System.Threading 为目标,前提是该文件可用。受页面启发,我找不到 link for:

内容如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <!-- this is only here for binding redirects -->
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Threading" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>      
    </assemblyBinding>
  </runtime>
</configuration>

直接将该版本的 TaskTPLLibrary 包添加到项目中。到目前为止,它没有帮助。

正在将 Microsoft.Bcl.Async 库添加到我的项目中。再一次,什么都没有。

正在尝试直接从 "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETCore\v4.5\System.Threading.dll" 导入 System.Threading。我收到一条错误消息 "The reference is invalid or unsupported."

我试过其他几种方法,包括重新克隆、清理、重新清理、大声咒骂和改天再来,都无济于事。

我的阅读清单包括(在这台电脑上):

可能还有其他我想不起来的

此问题继续时的一些附加信息:

非常感谢解决此问题的任何帮助。

由于没有合理的答案,我假设引用一个使用 TaskParallelLibrary 的 .NET 3.5 Framework 库实质上意味着使用 4 以上的任何 .NET 都会导致此错误。在未指定的条件下。大多数时候。

对此的唯一解决方案似乎是将所有内容重写为多目标 .NET 3.5 和 .NET Standard,并让 Standard 实现使用真正的 TPL,让 3.5 实现使用 NuGet 包。