调用 GetApplicationDefaultAsync() 时发生 AggregateException

AggregateException when calling GetApplicationDefaultAsync()

我正在尝试 运行 sample 愿景 API 项目。我基本上是将代码 Program.cs 复制并粘贴到我的应用程序中并执行它。

这一行(即第 36-#37 行in Program.cs

GoogleCredential credential = GoogleCredential.GetApplicationDefaultAsync().Result;

mscorlib.dllAdditional information: One or more errors occurred. 中抛出一个 System.AggregateException

通过检查 InnerException,我发现实际抛出的异常是 InvalidOperationExceptionError deserializing JSON credential data.

尽管如此,我的云项目是一个基本项目,有一个服务帐户,启用了 Cloud Vision API,没有别的。我检查了我的环境变量是否设置为 JSON 文件,方法是:

Console.WriteLine(Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS"));

在上一行之前。那个(就在崩溃之前)的输出是(类似于):

C:\Users\me\Documents\Projects\MyProject\MyProject-ba31aae6efa1.json

我检查了文件,这是我启用服务帐户时得到的文件。其中的每个 属性 看起来都不错(即项目名称正确,路径正确,...)。

我安装了 Google Cloud SDK 并执行 gcloud beta auth application-default login 并授权访问我的云帐户。

关于可能导致此问题的原因有什么想法吗?

通过检查详细的构建日志,我发现 Google API 的包依赖于 Newtonsoft.Json 版本 9.0.1(撰写本文时最新版本).

无论出于何种原因,Google API Newtonsoft.Json 版本 7.0.0 具有依赖性(与它们一起安装) .

软件包版本错误!

安装最新版本(9.0.1 在这种情况下)解决了这个问题。