加密异常在创建证书时未处理

时间:2013-02-06 06:55:52

标签: c# .net cryptography x509certificate makecert

我正在创建这个简单的控制台应用程序,它将创建我自己的证书。这是我的代码。

var fi = new FileInfo("certificate.cer");
if (!fi.Exists)
{
  var startInfo = new ProcessStartInfo();
  startInfo.FileName = "makecert.exe";
  startInfo.Arguments = "-sv SignRoot.pvk -cy authority -r sha1 -n \"CN=Certificate\" -ss my -sr localmachine certificate.cer";
  Process.Start(startInfo);
}
X509Certificate.CreateFromCertFile("certificate.cer");

但为什么我在最后一行代码中得到这个呢?

CryptographicException was unhandled.
Message=The system cannot find the file specified.

2 个答案:

答案 0 :(得分:4)

在使用证书之前,您需要等待makecert进程退出。

 Process
    .Start(startInfo)
    .WaitForExit();

答案 1 :(得分:0)

我通过使用批处理(.bat)文件解决了这种情况,因为我发现它更容易。然后让c#在程序启动时运行批处理文件。谢谢您的帮助。 :)