我有一个Visual Studio MSI安装程序,它应该将我的测试证书安装到当前用户,将我的测试CA安装到root,本地计算机。但对于当前用户,它不起作用。我没有收到任何错误,但它没有添加到其他证书中。 我的证书是嵌入式资源。
using (Stream CertStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetType(), @"Resources.client_certificate.cer"))
{
byte[] RawBytes = new byte[CertStream.Length];
for (int Index = 0; Index < CertStream.Length; Index++)
{
RawBytes[Index] = (byte)CertStream.ReadByte();
}
X509Certificate2 cert = new X509Certificate2(RawBytes);
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
store.Add(cert);
store.Close();
我错过了什么吗?
答案 0 :(得分:2)
请注意,Microsoft已弃用该项目类型,并且不在VS2012中。此外,如果您转移到另一个工具(如WindowsInstaler XML),您将找到MSI扩展,无需编写自己的自定义操作即可使其更加轻松。如果您选择不转移到WiX,您可以在WiX中构建合并模块并将其合并到您的VDPROJ MSI中。
Certificate Element (Iis Extension)
Augmenting InstallShield using Windows Installer XML - Certificates