我将 Google API 用于 BigQuery,它要求我使用 .p12 证书。问题是,无论我如何尝试导入我的证书资源,我都会遇到相同的错误:



我已按如下方式添加文件:

var certificate = new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);

我是 C# 和 Visual Studio 的新手。

最佳答案

在属性窗口中(选择 p12 文件并按 f4),确保将“复制到输出目录”设置为“始终复制”。这将确保文件被复制到最终的 EXE 位置。

基本上当你说

new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);

代码期望 key.p12 文件就在 EXE(或 DLL)运行的地方。它与解决方案资源管理器中文件的位置关系不大,而与文件的运行时位置有关。

另外,你能试试这个片段吗:
var certificate = new X509Certificate2(@"key.p12", "notasecret",
                                         X509KeyStorageFlags.MachineKeySet);

这是因为用户证书存储不是由 asp.net 加载的。机器存储是。

关于c# - 错误 : 'The system cannot find the file specified.' when trying to access certificate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30632477/

10-11 00:06