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
È necessario il numero Certificate element. Fa parte dell'estensione IIS per wix, ma può essere utilizzato anche per installazioni non relative a IIS.
È necessario
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'>
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" />
Dichiarare un componente con un elemento
<iis:Certificate>
, per esempio come questo. Guarda il documentation, è necessario compilare alcuni attributi . Si noti che non è necessarioCertficatePath
se si utilizza l'attributoBinaryKey
.<Component Id="MyCertificateComponent" Guid="MY-GUID-HERE"> <iis:Certificate Id="MyCertificate" BinaryKey="MyCertificateBinaryStream" ... some more attributes ... /> </Component>
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 aWixIISExtension
.
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).
Guarderò questa risposta e proveremo. Grazie per la tua risposta. Apprezzo molto la tua spiegazione. Buon Natale a te! – abmv