我正在将一些证书安装到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”等。我无法弄清楚为什么会这样。
其他人呢?
答案 0 :(得分:3)
在src \ ca \ serverca \ scaexec \ scacertexec.cpp中的WiX源代码中,InstallCertificatePackage方法在安装之前将“ wixCert ”和增加的唯一编号添加到证书名称中。它似乎是要确保证书存储中的名称是唯一的。
UninstallCertificatePacket方法尝试使用CERTNAME_wixCert_前缀查找证书,以查找要卸载的证书。
代码中有一些日志消息,显示正在安装/卸载的证书名称,并在名称中添加了额外的内容。