1

我有一个 Visual Studio MSI 安装程序,它应该将我的测试证书安装到当前用户,并将我的测试 CA 安装到根本地计算机。但对于当前用户,它不起作用。我没有收到错误,但它没有添加到其他证书中。我的证书是嵌入式资源。

            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();

我错过了什么吗?

4

1 回答 1

2

请注意,Microsoft 已弃用该项目类型,并且不在 VS2012 中。此外,如果您迁移到其他工具(例如 WindowsInstaler XML),您会发现 MSI 扩展使这更容易,而无需编写您自己的自定义操作。如果您选择不迁移到 WiX,您可以在 WiX 中构建一个合并模块并将其合并到您的 VDPROJ MSI。

证书元素(Iis 扩展)

使用 Windows Installer XML 增强 InstallShield - 证书

于 2012-09-12T16:55:14.343 回答