为了账号安全,请及时绑定邮箱和手机立即绑定

C# Google BigQuery SDK 参考问题

C# Google BigQuery SDK 参考问题

C#
慕尼黑8549860 2023-07-09 10:05:20
我正在尝试构建 BigQuery 应用程序,但一开始就遇到了障碍。(这是一个.Net 4.6控制台应用程序)我已经安装了 NuGet 包Google.Cloud.BigQuery.V2(v1.3.0),并且安装了一系列依赖项,其中之一是 System.Net.Http。执行时BigQueryClient client = BigQueryClient.Create(projectId);,我得到一个运行时FileNotFoundException告诉我System.Net.Http 4.1.1.3 cannot be found,内部异常显示System.Net.Http 4.0.0.0 cannot be found。我已经使用不同的版本多次卸载并重新安装System.Net.Http NuGet 包,但仍然得到相同的结果。我什至只使用了常规的 .Net 4.6 System.Net.Http dll 并遇到了同样的问题。如果我通过 NuGet 包管理器将System.Net.Http版本更改为 4.0.0,我会在同一点得到不同的FileNotFoundExceptionGoogle.Api.Gax 2.7.0.0 ,但这次它说 it can't find ,内部异常说它 can't find Google.Api.Gax 2.5.0.0。任何版本的 都会发生相同的结果Google.Api.Gax,除非我将Google.Api.Gax包降级到 2.5.0.0,我仍然收到运行时错误,指出Google.Api.Gax 2.7.0.0缺少,但这次没有内部异常提及Google.Api.Gax 2.5.0.0是什么赋予了?我过去曾遇到过参考问题,但从未像这样
查看完整描述

1 回答

?
PIPIONE

TA贡献1829条经验 获得超9个赞

经过数小时的尝试和错误来更改 NuGet 包版本,并取得了一些小小的成功,我最终发现某些 DLL 没有被复制到我的单元测试项目的 bin 文件夹中,因此出现了运行时错误。

每次我将 DLL 从类库的 bin 文件夹复制到单元测试的 bin 文件夹时,我都会收到另一个针对不同 DLL 的丢失 DLL 异常。一一复制之后,终于跑了。

为什么依赖的DLL不会被复制到引用类库的项目的bin文件夹中?

即 Google.Cloud.BigQuery.V2 安装在项目 A 中,项目 B 引用项目 A。项目 A 中引用的 DLL 不会复制到项目 B 的 bin 文件夹中。(即使 Copy Local 设置为 True!)

我必须手动复制的 DLL:

  • 系统.Net.Http.dll

  • Microsoft.Win32.Primitives.dll(不是

  • 系统.诊断.DiagnosticSource.dll

  • System.Security.Cryptography.X509Certificates.dll

  • Google.Apis.Bigquery.v2.dll(这是一个特别奇怪的问题,因为 NuGet 包明确建议您使用 Google.Cloud.BigQuery.V2 而不是 Google.Apis.Bigquery.v2,但是 Google.Cloud.BigQuery.V2取决于 Google.Apis.Bigquery.v2)

就参考问题而言,这个是最重要的。也许是我的 VS 2017 副本造成的。谁知道...?


查看完整回答
反对 回复 2023-07-09
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信