为什么_WixCert_ {0-9}被WiX添加到证书友好名称?

时间:2010-12-31 11:10:20

标签: windows wix windows-installer certificate

我正在将一些证书安装到localStore中,并且由于某些奇怪的原因,所有这些证书都以“_wixCert_0”或“_wixCert_1”为后缀。我试图在安装之前手动删除所有证书,以确保没有任何遗留,但它仍然发生。可能是什么原因?

这就是我定义证书的方式:

<Component Id="MyCert_file" Guid="*">
    <File Id="MyCert" Name="MyCert.crt" Source="$(var.CertSourceDir)\MyCert.crt" />
</Component>

<Component Id="MyCert" Guid="..." KeyPath="yes">
    <iis:Certificate Id="MyCert"
                     Name="MyCert"
                     Request="no"
                     StoreLocation="localMachine"
                     StoreName="ca"
                     Overwrite="yes"
                     BinaryKey="MyCert"
                     />
</Component>

证书被添加到certstore,但它们具有友好名称,如“MyCert_wixCerts_0”等。我无法弄清楚为什么会这样。

其他人呢?

1 个答案:

答案 0 :(得分:3)

在src \ ca \ serverca \ scaexec \ scacertexec.cpp中的WiX源代码中,InstallCertificatePackage方法在安装之前将“ wixCert ”和增加的唯一编号添加到证书名称中。它似乎是要确保证书存储中的名称是唯一的。

UninstallCertificatePacket方法尝试使用CERTNAME_wixCert_前缀查找证书,以查找要卸载的证书。

代码中有一些日志消息,显示正在安装/卸载的证书名称,并在名称中添加了额外的内容。