Выведенные функции программы на моем компьютере, но не на компьютере другого пользователя - PullRequest
0 голосов
/ 03 ноября 2019

Я создал программу, которая подключается к Google Firestore, и передал ее своему другу. Эта программа предназначена для синхронизации одного или нескольких листов символов вместе, однако, когда мой друг пытается запустить программу, кажется, ничего не происходит.

Я пытался:

  • Давая ему всефайлы, расположенные в папке bin \ Release
  • Использование зависимостей ничего не происходит
  • Установка распространяемых VC
  • Установка свежих окон, установка на виртуальнуюmachine
  • Проверка файла настроек.

Список вещей, найденных в bin \ Release

11/03/2019  12:36 AM            79,872 Empty.exe
11/03/2019  12:36 AM             2,528 Empty.exe.config
11/03/2019  12:36 AM           148,992 Empty.pdb
11/03/2019  12:36 AM           253,440 Google.Api.CommonProtos.dll
11/03/2019  12:36 AM            85,684 Google.Api.CommonProtos.pdb
11/03/2019  12:36 AM            67,072 Google.Api.Gax.dll
11/03/2019  12:36 AM            61,440 Google.Api.Gax.Grpc.dll
11/03/2019  12:36 AM            14,716 Google.Api.Gax.Grpc.pdb
11/03/2019  12:36 AM            20,316 Google.Api.Gax.pdb
11/03/2019  12:36 AM           113,664 Google.Apis.Auth.dll
11/03/2019  12:36 AM            29,984 Google.Apis.Auth.pdb
11/03/2019  12:36 AM             5,120 Google.Apis.Auth.PlatformServices.dll
11/03/2019  12:36 AM            67,072 Google.Apis.Core.dll
11/03/2019  12:36 AM            20,100 Google.Apis.Core.pdb
11/03/2019  12:36 AM            72,192 Google.Apis.dll
11/03/2019  12:36 AM            17,516 Google.Apis.pdb
11/03/2019  12:36 AM             4,608 Google.Apis.PlatformServices.dll
11/03/2019  12:36 AM           148,992 Google.Cloud.Firestore.dll
11/03/2019  12:36 AM            46,120 Google.Cloud.Firestore.pdb
11/03/2019  12:36 AM           213,504 Google.Cloud.Firestore.V1.dll
11/03/2019  12:36 AM            69,728 Google.Cloud.Firestore.V1.pdb
11/03/2019  12:36 AM            44,544 Google.LongRunning.dll
11/03/2019  12:36 AM            12,088 Google.LongRunning.pdb
11/03/2019  12:36 AM           332,272 Google.Protobuf.dll
11/03/2019  12:36 AM           120,800 Google.Protobuf.pdb
11/03/2019  12:36 AM            15,344 Grpc.Auth.dll
11/03/2019  12:36 AM             3,632 Grpc.Auth.pdb
11/03/2019  12:36 AM            42,992 Grpc.Core.Api.dll
11/03/2019  12:36 AM            13,708 Grpc.Core.Api.pdb
11/03/2019  12:36 AM           468,464 Grpc.Core.dll
11/03/2019  12:36 AM            53,276 Grpc.Core.pdb
11/03/2019  12:36 AM         4,194,800 grpc_csharp_ext.x64.dll
11/03/2019  12:36 AM         3,170,800 grpc_csharp_ext.x86.dll
11/03/2019  12:36 AM         4,082,080 libgrpc_csharp_ext.x64.dylib
11/03/2019  12:36 AM        22,817,328 libgrpc_csharp_ext.x64.so
11/03/2019  12:36 AM         3,536,148 libgrpc_csharp_ext.x86.dylib
11/03/2019  12:36 AM        18,714,448 libgrpc_csharp_ext.x86.so
11/03/2019  12:36 AM           662,528 Newtonsoft.Json.dll
11/03/2019  12:36 AM           180,624 System.Collections.Immutable.dll
11/03/2019  12:36 AM           252,344 System.Interactive.Async.dll
11/03/2019  12:36 AM            25,232 System.ValueTuple.dll

Я новый программист на C #, и этоПервая программа на C #, которую я сделал. Если я что-то пропустил, пожалуйста, укажите мне правильное направление.

Редактировать:

Журнал просмотра событий:

Информация:

Fault bucket 2141801032250789995, type 5
Event Name: CLR20r3
Response: Not available
Cab Id: 0

Problem signature:
P1: Empty.exe
P2: 1.0.0.0
P3: 93c944a7
P4: Google.Apis.Auth
P5: 1.40.2.0
P6: 80c50d57
P7: 1b9
P8: 17f
P9: System.InvalidOperationException
P10: 

Attached files:
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA93D.tmp.dmp
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERA9FA.tmp.WERInternalMetadata.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERAA0A.tmp.xml
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERAA08.tmp.csv
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERAA29.tmp.txt

These files may be available here:
\\?\C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_Empty.exe_c3557acbf2e4bc5cb517f9badc695114e415ad_a51ad147_6ec24a04-dfa7-427e-9e49-9a8223fcc5ac

Analysis symbol: 
Rechecking for solution: 0
Report Id: 544b0265-25ce-4c40-be06-869499ad7bf2
Report Status: 268435456
Hashed bucket: 1231502c6efec9389db934b0eadf906b
Cab Guid: 0

Ошибка:

Faulting application name: Empty.exe, version: 1.0.0.0, time stamp: 0x93c944a7
Faulting module name: KERNELBASE.dll, version: 10.0.18362.356, time stamp: 0x8c4198ab
Exception code: 0xe0434352
Fault offset: 0x00113522
Faulting process id: 0x179c
Faulting application start time: 0x01d592262c2375c7
Faulting application path: C:\Users\Dovenchiko\Desktop\Foo\Empty.exe
Faulting module path: C:\Windows\System32\KERNELBASE.dll
Report Id: 544b0265-25ce-4c40-be06-869499ad7bf2
Faulting package full name: 
Faulting package-relative application ID: 

Ошибка:

Application: Empty.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException
   at Google.Apis.Auth.OAuth2.DefaultCredentialProvider+<CreateDefaultCredentialAsync>d__11.MoveNext()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
   at Google.Api.Gax.Grpc.ChannelPool+<CreateChannelCredentialsUncached>d__6.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Google.Api.Gax.TaskExtensions.WaitWithUnwrappedExceptions(System.Threading.Tasks.Task)
   at Google.Api.Gax.Grpc.ChannelPool.GetChannel(Google.Api.Gax.Grpc.ServiceEndpoint, System.Collections.Generic.IEnumerable`1<Grpc.Core.ChannelOption>)
   at Empty.Form1..ctor()
   at Empty.Program.Main()

Похоже, мне нужно как-то аутентифицировать сессии на других компьютерах из-за строки at Google.Apis.Auth.OAuth2.DefaultCredentialProvider+. Кроме того, строка at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task) меня беспокоит, потому что это релизная версия.

В любом случае, если это проблема аутентификации, как мне ее исправить?

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Я обратился в службу поддержки Firebase, чтобы узнать, смогу ли я получить хоть какой-то свет на эту тему. Чтобы иметь возможность запускать приложение C # с использованием библиотеки firestore, мне понадобится нереализованная функция. Что-то, что все еще позволило бы программе работать и иметь функцию входа в систему. В настоящее время эта функция реализована при создании мобильных приложений и веб-приложений, но не приложений C #. Однако, похоже, что он будет добавлен в будущем.

Дата: вт, 5 ноября 2019 г. 00:57:52 +0000 (GMT)

От: Поддержка Firebase

Кому: "MY_EMAIL"

Тема: RE: Случай ****** 34: Разрешить запуск программы на других компьютерах без переменной среды

Привет *****,

Спасибо, что обратились!

Я - Джоэл, и я буду рад помочь вам здесь.

Я бы хотелчтобы вы сначала знали, что официальный C # Admin SDK еще не поддерживает ни базу данных реального времени, ни Firestore. Вы можете проверить поддержку здесь.

Теперь вы можете ссылаться на переменную среды GOOGLE_APPLICATION_CREDENTIALS для аутентификации вашего приложения с помощью Firebase.

Firebase ориентирован в основном на мобильные приложения, и веб-приложения также имеют своипространство. Для управления различными аспектами этих приложений был обнаружен Admin SDK, но он ориентирован на работу на серверах (для использования в приложениях администратора), и поэтому необходимо идентифицировать ваше приложение администратора с помощью Firebase;для выполнения задач управления проектами.

Вы можете создавать веб-приложения или мобильные приложения, чтобы максимально эффективно использовать службы Firebase. Но, к сожалению, полная поддержка C # пока не предоставляется. Команда уже работает над этим запросом, но на данный момент он ... [еще не готов].

Пожалуйста, дайте мне знать, если у вас есть дополнительные вопросы.

Приветствия, Джоэл

0 голосов
/ 15 ноября 2019

Как указано здесь и упомянуто в электронном письме поддержки, вам нужно использовать GOOGLE_APPLICATION_CREDENTIALS.

Поддержка Firebase говорит о Firebase SDK, но вы используете библиотека Google Cloud , которая поддерживает локальную аутентификацию.

Чтобы она работала локально, вам необходимо следовать документации по аутентификации , которая, как я полагаю, у вас уже естьсделал.

Ваш друг, чтобы заставить его работать, должен будет сделать те же шаги со своей учетной записью службы, а затем вам придется обновить разрешения на вашем Firesotre ( в соответствии с этими документами ), чтобы предоставить учетной записи службы вашего друга право доступа.

Существуют дополнительные опции аутентификации , и все они совместимы с библиотеками Google Cloud, которые вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...