【问题标题】:Microsoft.Threading.Tasks not found未找到 Microsoft.Threading.Tasks
【发布时间】:2020-11-14 00:11:43
【问题描述】:

我制作了一个包含一些 Google 操作的 dll。在我的第一次试驾中,它运行良好,但现在在一个真正的程序中,我遇到了一个奇怪的程序集引用问题:

FileNotFoundException was unhandled
Could not load file or assembly 'Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Det går inte att hitta filen.

我听说过 System.Threading.Tasks(并且正在“使用”它),但是 Microsoft.Threading.Tasks 是从哪里来的呢?异常发生在下面sn-p的最后一行。

Google.Apis.Admin.Directory.directory_v1.Data.Groups allGroupsResp = null;
var req = DirectoryService.Groups.List();
req.Domain = _settings.Domain;
allGroupsResp = req.Execute();

并且程序集列表中没有 Microsoft.Threading.Tasks。

【问题讨论】:

标签: c# .net


【解决方案1】:

这对我有用:

通过工具菜单 > NuGet 包管理器 > 包管理器控制台打开 NuGet 控制台

从控制台输入:update-package Microsoft.Bcl.Async -reinstall

之后,系统可能会提示您重新启动 Visual Studio 以完成软件包的卸载。重新启动后,应重新安装该软件包,并且一切正常。

【讨论】:

  • 是的! Nuget 包管理器中的 Microsoft.bcl.Async 解决了 .. :)
  • 我只需要安装 nugetpackage microsoft.bcl.async 包并修复它
  • 谢谢伙计。你救了我。两年后,这个答案仍然有帮助。我被删除了 System.Threading.Tasks 参考,这是 Firebird Ado 客户端的依赖项。
  • 我很高兴它仍然有用。 :)
【解决方案2】:

听起来您正在使用Google API .Net Client。我建议使用 Nuget 来安装链接页面上描述的程序集。但是,如果您下载源代码,则会包含 Microsoft.Threading.Task 程序集,因此您调用的代码似乎正在尝试访问这些程序集。

您可以手动将该程序集移动到您的目录中,但我通常会选择 Nuget 方法,除非您需要使用特定的构建。

【讨论】:

  • 是的,我使用的是通过 NuGet 添加的 Google API。如果我下载什么来源? Microsoft.Threading.Tasks 不是标准 .NET 4.5 发行版的一部分吗?
  • 我发布的链接是项目的页面。在 downloads 部分 (here),您可以下载二进制文件、源代码和示例。二进制文件似乎不包含程序集,但源代码包含。
  • 完全正确!我以前只在 Visual Studio 中查看程序集列表,现在你让我查看 NuGet 下载的文件,它就在那里。将文件添加到我的 ILMerge 解决了问题!谢谢!
【解决方案3】:

我希望您使用的是“google-api-dotnet-client”。 Microsoft.Threading.Tasks 是这个客户端根据google代码使用的一个dll: https://code.google.com/p/google-api-dotnet-client/source/browse/ThirdParty/Microsoft.Threading.Tasks.dll

您可能只需将此文件移动到您的 bin 目录中。

【讨论】:

  • 这就是问题所在!谢谢!
【解决方案4】:

只需安装Microsoft.Bcl.Async nuget 包!

(如果您将Google.Apis.Oauth2.v2UWP 应用程序一起使用)

【讨论】:

  • 明确地,在包管理器控制台中,键入:Install-Package Microsoft.Bcl.Async
【解决方案5】:

可能存在几个问题 - 您在项目中引用此 dll 的第一个问题不是针对 .Net4,或者您只是没有在您的机器上安装 .Net4 框架。

【讨论】:

  • 我引用的 dll 和引用的项目都针对 .NET Framework 4.5。我的盒子上确实安装了 .NET 4.5。自 4 月以来,我在 VS2012 中使用 .NET 在这台计算机上使用 4.5 个应用程序。
  • dcastro 的建议对您有用吗?看起来这是程序集绑定问题的可能解决方案之一。
【解决方案6】:

我遇到了类似的问题,即找不到 Microsoft.Threading.Tasks.PDB。

在这里找到解决方案:Cannot find .cs files for debugging .NET source code

TL;DR:VS 试图调试 .NET 框架,但我丢失了调试文件。但我实际上并不需要调试 .NET,所以我做了: 工具 -> 选项 -> 调试 -> 常规 -> 仅启用我的代码

【讨论】:

    猜你喜欢
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2020-09-24
    • 2017-01-03
    • 2018-05-03
    • 2014-04-14
    相关资源
    最近更新 更多