我正在尝试运行sample远景API项目。基本上,我将代码Program.cs复制并粘贴到我的应用程序中并执行它。
这一行(即#36-#37 Program.cs)
GoogleCredential credential = GoogleCredential.GetApplicationDefaultAsync().Result;使用System.AggregateException在mscorlib.dll中抛出一个Additional information: One or more errors occurred.。
通过检查InnerException,我发现实际抛出的异常是带有Error deserializing JSON credential data.的InvalidOperationException。
尽管如此,我的云项目是一个基本项目,有一个服务帐户,并且启用了cloud,其他什么都没有。我通过以下方式检查了我的环境变量是否设置为JSON文件:
Console.WriteLine(Environment.GetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS"));在上面的线之前。它的输出(就在崩溃之前)是(类似):
C:\Users\me\Documents\Projects\MyProject\MyProject-ba31aae6efa1.json
我检查了该文件,这是我启用服务帐户时得到的文件。其中的每个属性看起来都很好(即项目名称是正确的,路径是正确的,.)。
我安装了Google,并执行了gcloud beta auth application-default login和对我的云帐户的授权访问。
对是什么原因有什么想法吗?
发布于 2016-08-07 22:18:58
通过查看详细的构建日志,我发现Google的包依赖于Newtonsoft.Json版本9.0.1 (本文撰写时的最新版本)。
无论出于什么原因,Google包都依赖于Newtonsoft.Json版本的7.0.0 (与它们一起安装)。
软件包带错版本了!
安装最新版本(本例中为9.0.1)解决了这个问题。
https://stackoverflow.com/questions/38734199
复制相似问题