【问题标题】:GoogleWebAuthorizationBroker not found exception with .NET Core.NET Core 未发现 GoogleWebAuthorizationBroker 异常
【发布时间】:2016-11-04 19:27:25
【问题描述】:

我正在尝试访问 Google Drive API,并且我可以使用 Google+ API 成功登录用户。我一直在关注本指南:

https://developers.google.com/drive/v3/web/quickstart/dotnet

我使用 nuget 包管理器添加了所需的库,但它仍然找不到 GoogleWebAuthorizationBroker 类。奇怪的是,当我将相同的 Google.Apis.Auth 包版本 1.18.0 添加到一个简单的控制台应用程序时,它可以完美运行,但是当我将它添加到我的 .NET Core 1.0 预览 2 项目时,它根本无法识别前面提到的类。

包含已添加软件包的屏幕截图:

我的 .NET Core 源代码(此处未找到类):

我的控制台应用程序源代码和参考(由于某种原因可以在此处找到该类):

提前致谢!

【问题讨论】:

    标签: c# asp.net google-api asp.net-core .net-core


    【解决方案1】:

    您的控制台应用程序正在完整的 .net 框架上运行。这就是 GoogleWebAuthorizationBroker 在那里得到解决的原因。

    我在针对 .net 核心的 Google.Apis 中遇到了同样的问题,我最终在完整的 .net 框架之上运行了 asp.net Core 项目。当 Google 组件工作时,我计划将框架切换回 .net 核心。

    我用 461 框架替换了 dotnet 框架,如下所示:

    "frameworks": {
        "net461":  {}
      }
    

    而且我还必须像这样注释掉/删除对 Microsoft.NETCore.App 的依赖:

      "dependencies": {
        "Google.Apis": "1.19.0",
        "Google.Apis.Auth": "1.19.0",
        "Google.Apis.Calendar.v3": "1.19.0.675"
        //"Microsoft.NETCore.App": "1.1.0-preview1-001100-00",
      },
    

    你也可以同时运行这两个框架——我试过这样做,当你发布网站时就去

    DOTNET PUBLISH -f 461  
    

    DOTNET PUBLISH -f netcoreapp1.0
    

    取决于框架。 然后,您还必须从 Visual Studio 的下拉列表中选择您运行的框架,这最终成为一个更大的问题。更容易在不需要时注释掉 dotnetcore1.0 框架,然后在我的构建管道上进行 dotnet publish ...

    Google .net apis github 页面上有一个关于 .net 核心兼容性的线程。 https://github.com/google/google-api-dotnet-client/issues/872#issuecomment-259710682

    预计将在 2017 年初支持这些类。

    希望对您有所帮助?

    【讨论】:

    • 其实我提到的那个案子已经结案了。所以我打开了另一个线程,并很快关闭了 .net 核心支持即将到来的答案 - 预计 2017 年初。我将更新我的答案中的链接。
    猜你喜欢
    • 2014-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多