错误:'系统找不到指定的文件。'在尝试访问证书时

时间:2015-06-03 23:19:13

标签: c# visual-studio-2012

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

  

系统找不到指定的文件。

我已将文件添加如下:

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

我是C#和Visual Studio的新手。

1 个答案:

答案 0 :(得分:4)

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

基本上当你说

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

代码正在运行EXE(或DLL)所在的 key.p12 文件。它与解决方案资源管理器中文件的位置有关,更多的是与文件的运行时位置有关。

另外,你可以尝试这个片段:

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

这是因为asp.net没有加载用户证书存储..机器商店是。