我正在创建这个简单的控制台应用程序,它将创建我自己的证书。这是我的代码。
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.
答案 0 :(得分:4)
在使用证书之前,您需要等待makecert
进程退出。
Process
.Start(startInfo)
.WaitForExit();
答案 1 :(得分:0)
我通过使用批处理(.bat)文件解决了这种情况,因为我发现它更容易。然后让c#在程序启动时运行批处理文件。谢谢您的帮助。 :)