【问题标题】:W509Certificate2 reference missingW509Certificate2 参考缺失
【发布时间】:2013-06-21 14:41:16
【问题描述】:

我正在尝试让 Google Drive API 与here 所述的委派服务帐户方法一起使用。我遇到的问题是我应该在其中创建 X509Certificate 对象的这一行:

X509Certificate2 certificate = new X509Certificate2(SERVICE_ACCOUNT_PKCS12_FILE_PATH, "notasecret",
            X509KeyStorageFlags.Exportable);

但是,编译器告诉我,“找不到类型或命名空间名称 X509Certificate2。”我正在使用System.Security.CryptograpySystem.Security.Cryptography.X509Certificates,根据documentation,它们应该包含X509Certificate2 类。问题是,我的不是出于某种原因。它具有 X509Certificate,但不适用于上面的示例。我已经尝试过 .net v4.5 和 4。

【问题讨论】:

  • 您的项目是否面向 .NET 4.5?
  • 是的,抱歉 - 我应该一开始就包括在内。
  • 我创建了一个新的控制台应用程序,输入 X509Certificate2 并按下 ctrl+。它解决得很好。您可以通过扩展引用并检查它们的属性来检查您添加的那些 dll 的版本吗?
  • 实际上,尝试删除它们。你不应该需要它们,因为 X509Certificate2 存在于 System.Security.Cryptography.X509CertificatesSystem.dll 版本 4.0.0.0
  • 我不确定我的引用是如何搞砸的,但我刚刚从头开始创建了一个新项目,现在它可以工作了。更重要的是,我可以在对象浏览器中看到我以前看不到的类。感谢您的帮助!

标签: c# .net google-drive-api


【解决方案1】:

X509Certificate2 存在于 System.Security.Cryptography.X509Certificates 中的 System.dll 中,因此其他引用可能会干扰它,或者 dll 的版本可能会出现问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 2018-11-27
    相关资源
    最近更新 更多