18

我制作了一个包含一些 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 是从哪里来的呢?异常发生在下面代码段的最后一行。

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。

4

6 回答 6

37

这对我有用:

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

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

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

于 2015-04-29T19:05:45.490 回答
7

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

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

于 2013-09-11T09:25:13.447 回答
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 目录中。

于 2013-09-11T09:25:04.333 回答
2

只需安装Microsoft.Bcl.Asyncnuget包!

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

于 2017-02-10T22:24:11.177 回答
0

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

于 2013-09-11T09:20:19.957 回答
0

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

在此处找到解决方案:找不到用于调试 .NET 源代码的 .cs 文件

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

于 2020-11-13T16:11:43.303 回答