该项目目前包含对多个版本的Google.Apis的引用

时间:2013-12-05 21:06:47

标签: .net google-calendar-api google-api-dotnet-client

Visual Studio 2010(2012年做同样的事情),新的VB.Net项目,Framework 4,为Google Calendar添加了nuget包:

Install-Package Google.Apis.Calendar.v3 -Pre

添加了导入:

Imports Google.Apis
Imports Google.Apis.Calendar.v3
Imports Google.Apis.Calendar.v3.Data
Imports Google.Apis.Calendar.v3.EventsResource
Imports Google.Apis.Services
Imports Google.Apis.Auth.OAuth2
Imports Google.Apis.Auth
Imports Google.Apis.Util.Store
Imports System.Security.Cryptography.X509Certificates

这是我创建服务和凭据的代码:

Dim scopes As IList(Of String) = New List(Of String)()
scopes.Add(CalendarService.Scope.Calendar)  

Dim service As CalendarService
Dim serviceAccountEmail As String = "ServiceAccountEmail@developer.gserviceaccount.com"
Dim certificate = New X509Certificate2("privatekey.p12", "notasecret", X509KeyStorageFlags.Exportable)

Dim credential As New ServiceAccountCredential(New ServiceAccountCredential.Initializer(serviceAccountEmail) With {
                                 .Scopes = scopes,
                                 .User = "myuser@there.com"
                                }.FromCertificate(certificate))

service = New CalendarService(New BaseClientService.Initializer() With
                                      {
                                          .HttpClientInitializer = credential,
                                          .ApplicationName = "appName"
                                      })

然后我得到了“该项目目前包含对多个版本的Google.Apis的引用,对版本1.6.0.16897的直接引用和间接引用(通过'Google.Apis.Auth.OAuth2.ServiceAccountCredential')到版本1.6.0.27822。更改直接引用以使用Google.Apis版本1.6.0.27822(或更高版本)。

如果我尝试使用ServiceAccountCredential或UserCredential,我会得到这个。

几个星期前出现这个问题,使用较旧版本的Google.Apis.Auth解决了这个问题。但是我很难让服务帐户工作(只会收到警告:

A first chance exception of type 'Google.Apis.Auth.OAuth2.Responses.TokenResponseException' occurred in Google.Apis.Auth.dll

并且app会冻结)。

所以从头开始获取最新版本并再次获得,所有Windows更新完成,最后一个Nuget版本(2.7),我是唯一一个遇到此问题的人吗?

1 个答案:

答案 0 :(得分:0)

你不是唯一一个。我昨天刚修好了。该服务器有新版本的Google.Apis.Auth,但旧版本的Google.Apis(因此不匹配)。要解决此问题,只需从参考资料中手动删除“Google.Apis.Auth”和“Google.Apis.Auth.PlatformServices”,然后添加版本1.6.0.16898版本(可在dotnet示例中找到)。

解决了问题!