2013-12-05 1 views
1

Visual Studio 2010 (2012 делает то же самое), новый проект VB.Net, Framework 4, добавлены NuGet пакеты для Google Calendar:В настоящее время проект содержит ссылки на более чем одной версии Google.Apis

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 = "[email protected]" 
Dim certificate = New X509Certificate2("privatekey.p12", "notasecret", X509KeyStorageFlags.Exportable) 

Dim credential As New ServiceAccountCredential(New ServiceAccountCredential.Initializer(serviceAccountEmail) With { 
           .Scopes = scopes, 
           .User = "[email protected]" 
           }.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. Изменение прямой ссылки на использование версии 1.6.0.27822 (или выше) в Google.Apis».

Я получаю это, если я пытаюсь использовать ServiceAccountCredential или UserCredential.

Если бы эту проблему несколько недель назад, решить ее . с использованием старой версии Google.Apis.Auth Но у меня был трудное время получить учетные записи службы работает (просто получить предупреждение:

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

и приложение будет замораживать).

Так начали с нуля получить последнюю версию и получить s все, все обновления Windows, последняя версия Nuget (2.7), я единственный, у кого есть эта проблема?

ответ

0

Вы были не единственным. Я только вчера это сделал. На сервере есть новые версии Google.Apis.Auth, но старая версия Google.Apis (отсюда и несоответствие). Чтобы исправить, просто удалите вручную «Google.Apis.Auth» и «Google.Apis.Auth.PlatformServices» из своих ссылок, а затем добавьте версии версии 1.6.0.16898 (найденные в примерах dotnet).

Проблема решена!

+0

Привет, Майк, Да, именно так я исправился с первого раза, когда начал свой проект. Получил все, что работает с UserCredential, но хотел, чтобы и ServiceAccountCredential работал, но не мог (ничего не получил от вызова: «Dim list As IList (Of CalendarListEntry) = service.CalendarList.List(). Execute(). Items() ". Приложение просто замерзло. Начинал, думая, что это может быть что-то исправленное в более поздней версии, но все еще было проблема с несоответствием версии. Я знаю, что это все еще в предварительном выпуске, я просто собираюсь дождаться ServiceAccountCredential в следующих выпусках и посмотреть. – Frank