System.MissingMethodException: метод не найден для Bigquery - PullRequest
1 голос
/ 07 мая 2020

Я использую Google BigQuery для передачи данных из файла в BigQuery. Я использую BigQuery Google.Cloud.BigQuery.V2 version = "1.3.0" и его зависимые библиотеки DLL. Мой код C# отлично работает в ConsoleApplication VS2019, но когда я использую задачу SSIS, я получаю сообщение об ошибке:

System.MissingMethodException: Метод не найден: 'Google.Apis .Auth.OAuth2.GoogleCredential Google.Api.Gax.Rest.ScopedCredentialProvider.GetCredentials (Google.Apis.Auth.OAuth2.GoogleCredential) '. в Google.Cloud.BigQuery.V2.BigQueryClient.Create (String projectId, GoogleCredential credential)

var googlecredential = new GoogleCredentials()
                {
                    private_key = "",
                    client_email = "",
                    type = ""
                };
var credentials = GoogleCredential.FromJson(JsonConvert.SerializeObject(googlecredential));
BigQueryClient client = BigQueryClient.Create(projectId, credentials); -> this line throws error if I'm referencing dll Google.Cloud.BigQuery.V2 version 1.3 or 1.4 and it works if for 1.2 version.

Примечание. Эта ошибка возникает только в задаче сценария. Все DLL прописаны в GA C.

1 Ответ

0 голосов
/ 30 мая 2020

У меня была такая же проблема. Наконец, я решил это, используя BigqueryService вместо BigQueryClient.

var service = new BigqueryService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "CS Bigquery"
            });

Полный образец, который я использовал, находится здесь: https://www.codeproject.com/Tips/785554/Google-BigQuery-API-Client-Sample-Code-for-Csharp

...