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

C# 创建证书时未处理加密异常,c#,.net,cryptography,x509certificate,makecert,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=C

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

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.

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

 Process
    .Start(startInfo)
    .WaitForExit();

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

 Process
    .Start(startInfo)
    .WaitForExit();

我通过使用批处理(.bat)文件解决了这个问题,因为我发现它更简单。让c#在程序启动时运行批处理文件。谢谢你的帮助。:)

我通过使用批处理(.bat)文件解决了这个问题,因为我发现它更简单。让c#在程序启动时运行批处理文件。谢谢你的帮助。:)