2009-12-24 4 views
9

Per favore, qualcuno può fornirmi uno snippet o una soluzione WiX per lo scenario menzionato. Ho bisogno di includere il file pfx nel Wii msi e l'utente scaricherà il mio msi sulla sua macchina tramite Internet Explorer e fare clic su Installa e ho bisogno anche del certificato da installare sulla sua macchina.Installare un certificato pfx in un archivio utenti in Windows usando WiX

risposta

9

È necessario il numero Certificate element. Fa parte dell'estensione IIS per wix, ma può essere utilizzato anche per installazioni non relative a IIS.

È necessario

  1. dichiarare un prefisso per il namespace IIS, per esempio come questo nella radice Wix elemento:

    <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' 
        xmlns:iis='http://schemas.microsoft.com/wix/IIsExtension'> 
    
  2. Incorporare il file PFX come flusso binario nel pacchetto di installazione. Aggiungere un elemento Binary sotto l'elemento prodotto come questo:

    <Binary Id="MyCertificateBinaryStream" 
        SourceFile="c:/path/to/mycertificate.pfx" /> 
    
  3. Dichiarare un componente con un elemento <iis:Certificate>, per esempio come questo. Guarda il documentation, è necessario compilare alcuni attributi . Si noti che non è necessario CertficatePath se si utilizza l'attributo BinaryKey.

    <Component Id="MyCertificateComponent" Guid="MY-GUID-HERE"> 
        <iis:Certificate Id="MyCertificate" 
         BinaryKey="MyCertificateBinaryStream" 
         ... some more attributes ...     
        /> 
    </Component> 
    
  4. Attivare l'estensione IIS aggiungendo l'opzione opzione -ext WixIISExtension quando si richiama gli strumenti della riga di comando Wix. Se si utilizza Visual Studio, si tratta semplicemente di aggiungere un riferimento nel progetto wix a WixIISExtension.

+0

Guarderò questa risposta e proveremo. Grazie per la tua risposta. Apprezzo molto la tua spiegazione. Buon Natale a te! – abmv

4

Ad ampliare la risposta un po ', la seguente serie di attributi ha lavorato per me:

<iis:Certificate 
    Id="My.Certificate" 
    StoreName="root" 
    Overwrite="yes" 
    Name="My Friendly Certificate Name" 
    Request="no" 
    BinaryKey="MyCertificate.Binary" 
    StoreLocation="localMachine" /> 

Laddove l'elemento <Product> conteneva un bambino <Binary> come segue:

<Binary 
    Id="MyCertificate.Binary" 
    SourceFile="$(var.ProjectDir)MyCertificate.pfx" /> 

(Ho incluso il file PFX nel mio progetto WiX).