我正在尝试构建BigQuery应用程序,但遇到了障碍。 (这是一个.Net 4.6控制台应用程序)
我已经安装了NuGet软件包Google.Cloud.BigQuery.V2
(v1.3.0),并且安装了许多依赖项,其中之一是System.Net.Http。
我修改了here中的示例代码,以针对测试的BigQuery数据库运行简单的查询。
执行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,则我会在同一时间获得另一个 FileNotFoundException ,但这一次表示找不到Google.Api.Gax 2.7.0.0
,内部异常表示找不到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
有什么作用?我过去有参考问题,但从来没有像这样
答案 0 :(得分:0)
经过数小时的尝试和错误,并更改了NuGet软件包的版本,并取得了一些次要的成功,我最终发现某些DLL没有被复制到我的单元测试项目的bin文件夹中,因此出现了运行时错误。
每次我将DLL从类库的bin文件夹复制到单元测试的bin文件夹时,对于另一个DLL,我都会遇到另一个丢失的DLL异常。将它们一一复制后,最终运行了。
为什么从属DLL无法复制到引用类库的项目的bin文件夹中?
即Google.Cloud.BigQuery.V2安装在项目A中,项目B引用项目A。在项目A中引用的DLL不会复制到项目B的bin文件夹中。(即使“本地复制”设置为True!)>
我必须手动复制的DLL:
就参考问题而言,这是蛋糕。也许是我对VS 2017的抄袭。谁知道...?