在我的计算机上而不是其他用户计算机上输出的程序功能

时间:2019-11-03 09:00:44

标签: c# firebase google-cloud-firestore visual-studio-2019

我创建了一个连接到Google Firestore的程序,并将其交给了我的朋友。该程序旨在将一个或多个字符表同步在一起,但是当我的朋友尝试运行该程序时,似乎什么也没发生。

我尝试过:

  • 为他提供bin \ Release文件夹中的所有文件
  • 使用dependencies什么都不会出现
  • 安装VC可再发行文件
  • 在虚拟机上安装新的Windows安装
  • 正在检查设置文件。

在bin \ Release中找到的东西的列表

plan

我是一名新的C#程序员,这是我制作的第一个C#程序。如果我错过了什么,请指出正确的方向。

编辑:

事件查看器日志:

信息:

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

错误:

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+这行之外,我还很担心,因为这是发行版本。

无论如何,如果这是身份验证问题,我该如何解决呢?

2 个答案:

答案 0 :(得分:1)

我联系了Firebase支持人员,看看是否可以对这个主题有所了解。为了能够使用Firestore库运行C#应用程序,我需要一个未实现的功能。仍然可以使程序运行并具有登录功能的东西。当前,此功能是在创建移动应用程序和Web应用程序而不是C#应用程序时实现的。但是,似乎将来会添加它。

  

日期:星期二,2019年11月5日00:57:52 +0000(格林尼治标准时间)

     

来自:Firebase支持

     

收件人:“ MY_EMAIL”

     

主题:RE:案例****** 34:允许程序在其他计算机上运行   没有环境变量

     

嗨,*****,

     

感谢您的帮助!

     

我是乔尔,很高兴在这里为您提供帮助。

     

我想首先告诉您,官方的C#Admin SDK不会   还支持实时数据库或Firestore。您可以检查   在这里支持。

     

现在,您可能是在指GOOGLE_APPLICATION_CREDENTIALS   环境变量以使用Firebase验证您的应用程序。

     

Firebase主要面向移动应用程序和Web   应用程序也有其空间。为了管理不同   在这些应用程序的各个方面中,Admin SDK曝光了,但是   面向服务器上的工作(将在管理应用程序中使用),这就是   为什么需要用Firebase识别您的管理应用程序;至   完成项目管理任务。

     

您可以构建Web应用程序或移动应用程序以充分利用Firebase   服务。但是很遗憾,没有提供对C#的完全支持   然而。团队已经在处理此功能请求,但对于   现在... [还没有]。

     

如果您还有其他问题,请告诉我。

     

干杯,乔尔

答案 1 :(得分:1)

here所述,并且在支持电子邮件中已提到,您需要使用GOOGLE_APPLICATION_CREDENTIALS

Firebase支持正在讨论Firebase SDK,但是您使用的是Google Cloud library,它支持本地身份验证。

要使其在本地运行,您需要遵循auth documentation,我假设您已经这样做了。

您的朋友要使其正常工作,必须对其服务帐户执行相同的步骤,然后您必须更新Firesotre(according to these docs)的权限,才能将其朋友的服务帐户正确的访问权限。

还有其他authentication options,并且都与您正在使用的Google Cloud库兼容。