【问题标题】:Is TPL DataFlow included with either .NET 4.5 or .NET 4.5.1?TPL DataFlow 是否包含在 .NET 4.5 或 .NET 4.5.1 中?
【发布时间】:2020-03-19 23:20:08
【问题描述】:

我很困惑。我们最近将项目升级到 .NET 4.5.1。我们在服务器上安装了 .NET 4.5.1。

我在 C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Threading.Tasks.Dataflow\v4.0_4.5.9.0__b03f5f7f11d50a3a\System.Threading.Tasks.Dataflow.dll 引用来自 GAC 的程序集 System.Threading.Tasks.Dataflow

CopyLocal 设置为 false,因为(我假设)它是框架的一部分,所以应该已经安装在任何部署应用程序的地方。

问题是,在服务器上运行时,它说找不到这个程序集。

我读过here,它 .NET Framework 4.5 的一部分:

但该库现在已内置于 .NET 4.5。

...我读到 here不是

TPL 数据流库(System.Threading.Tasks.Dataflow 命名空间)不随 .NET Framework 4.5 分发

什么给了?它看起来不像。它只是“目标包”的一部分吗?是我,还是这些就地升级比他们的价值更农业?!

【问题讨论】:

    标签: task-parallel-library .net-4.5


    【解决方案1】:

    我不确定为什么该页面说它是 .NET 4.5 的一部分——它仍然是一个带外 NuGet 版本,如实体框架、MVC 等。

    【讨论】:

    • 我真的不知道原来的System.Threading.Tasks.Dataflow.dll 是如何到达那里的! :|
    • 可能是您安装了旧版本的 TPL 并且安装程序将其扔到了 GAC 中?我相信 Dataflow 并不总是在 NuGet 中。
    【解决方案2】:

    我知道这个问题已经很老了,但我也想添加我的解决方案。我发现将以下两项添加到 Visual Studio 2019 安装(运行 Visual Studio 安装程序 > 修改 > .Net 桌面开发)问题就消失了,它能够从 GAC 中提取 System.Threading.Tasks.Dataflow。

    编辑:似乎还需要安装 Visual Studio 2015。显然它不是 VS 2015 本身,只是它附带的东西。但是包太多了,我很难弄清楚是哪一个。

    Edit2:这并不是最好的解决方案,更多的是权宜之计。 MS 建议通过 Nuget 下载它。 https://docs.microsoft.com/en-us/dotnet/api/system.threading.tasks.dataflow?view=netcore-3.1

    TPL 数据流库(System.Threading.Tasks.Dataflow 命名空间)不随 .NET 一起分发。要在 Visual Studio 中安装 System.Threading.Tasks.Dataflow 命名空间,请打开您的项目,从“项目”菜单中选择“管理 NuGet 包”...

    【讨论】:

      猜你喜欢
      • 2013-02-13
      • 2013-11-23
      • 1970-01-01
      • 2016-04-27
      • 1970-01-01
      • 1970-01-01
      • 2010-09-30
      • 2013-02-19
      • 1970-01-01
      相关资源
      最近更新 更多