2010-12-31 22 views
5

Tôi đang cài đặt một số chứng chỉ vào localStore và vì một lý do lạ nào đó, tất cả các chứng chỉ đó được gắn liền với "_wixCert_0" hoặc "_wixCert_1". Tôi đã cố gắng loại bỏ thủ công tất cả các chứng chỉ trước khi cài đặt để đảm bảo rằng không có gì còn lại, nhưng nó vẫn xảy ra. Điều gì có thể là lý do?Tại sao _wixCert_ {0-9} được thêm vào tên thân thiện với chứng chỉ của WiX?

Đây là cách tôi đã xác định các chứng chỉ:

<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> 

Giấy chứng nhận được bổ sung vào certstore, nhưng họ có tên thân mật như "MyCert_wixCerts_0" và vân vân. Tôi không thể hiểu được tại sao nó lại xảy ra.

Còn ai khác không?

Trả lời

3

Trong mã nguồn WiX trong src \ ca \ serverca \ scaexec \ scacertexec.cpp phương thức InstallCertificatePackage thêm "wixCert" và tăng số duy nhất vào tên chứng chỉ trước khi cài đặt. Có vẻ như để đảm bảo tên là duy nhất trong kho chứng chỉ.

Phương pháp UninstallCertificatePacket cố gắng tìm chứng chỉ bằng tiền tố CERTNAME_wixCert_ để tìm chứng chỉ để gỡ cài đặt.

Có các thông báo ghi nhật ký trong mã hiển thị tên chứng chỉ mà nó đang cài đặt/gỡ cài đặt với nội dung bổ sung được thêm vào tên.

+0

Yup, tôi cũng thấy rằng, nhưng khi tôi đang cài đặt với trình cài đặt khác được tạo bởi WiX nơi mã giao dịch với chứng chỉ có vẻ giống hệt các hậu tố wixCert đó sẽ không được thêm. Tại sao tên nên là duy nhất nếu ghi đè được đặt thành true? Tôi chỉ muốn ghi đè lên các chứng chỉ mà không thêm bất kỳ hậu tố wixCert không có ý nghĩa nào. –

Các vấn đề liên quan