我很困惑。我们最近将项目升级到了.NET 4.5.1。我们在服务器上安装了.NET 4.5.1。
我从GAC的System.Threading.Tasks.Dataflow
处引用程序集C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Threading.Tasks.Dataflow\v4.0_4.5.9.0__b03f5f7f11d50a3a\System.Threading.Tasks.Dataflow.dll
[CopyLocal
被设置为false,因为(我认为)它是Framework的一部分,因此无论部署该应用程序的位置都应已安装。
问题是,当在服务器上运行时,它说找不到该程序集。
我已阅读here,它是.NET Framework 4.5的is的一部分:
但是该库现在是.NET 4.5的内置库。
...我已经读过here它不是!
TPL数据流库(System.Threading.Tasks.Dataflow命名空间)未随.NET Framework 4.5一起分发
什么给了?看起来好像不是。它只是“目标包”的一部分吗?是我,还是这些就地升级的农业价值超过其应得的价值?!
我不确定为什么该页面说它是.NET 4.5的一部分-它仍然是带外NuGet版本,例如Entity Framework,MVC等。
我知道这个问题已经很老了,但是我也想添加我的解决方案。我发现将以下两项添加到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包”。