instalar descargar crear certificados certificado almacen installer wix certificate pfx

installer - descargar - instalar certificados windows 10



Instale un certificado pfx en una tienda de usuarios en Windows usando WiX (2)

Por favor, ¿alguien puede proporcionarme un fragmento de WiX o una solución para el escenario mencionado? Necesito incluir el archivo pfx en el msi de WiX y el usuario descargará mi msi a su máquina a través del explorador de Internet y haga clic en instalar y también necesito que se instale el certificado en su máquina.


Necesita el elemento Certificado . Es parte de la extensión de IIS para wix, pero también se puede usar para instalaciones no relacionadas con IIS.

Necesitas

  1. declarar un prefijo para el espacio de nombres iis, por ejemplo, como este en el elemento raíz Wix:

    <Wix xmlns=''http://schemas.microsoft.com/wix/2006/wi'' xmlns:iis=''http://schemas.microsoft.com/wix/IIsExtension''>

  2. Incruste el archivo PFX como una secuencia binaria en su paquete de instalación. Agregue un elemento binario debajo del elemento del producto como este:

    <Binary Id="MyCertificateBinaryStream" SourceFile="c:/path/to/mycertificate.pfx" />

  3. Declare un componente con un elemento <iis:Certificate> , por ejemplo, como este. Mira la documentación , necesitas completar algunos atributos más. Tenga en cuenta que no necesita CertficatePath si usa el atributo BinaryKey .

    <Component Id="MyCertificateComponent" Guid="MY-GUID-HERE"> <iis:Certificate Id="MyCertificate" BinaryKey="MyCertificateBinaryStream" ... some more attributes ... /> </Component>

  4. Active la extensión IIS agregando la opción -ext WixIISExtension Opción -ext WixIISExtension cuando invoca las herramientas de la línea de comando wix. Si usa Visual Studio, esto solo es una cuestión de agregar una referencia en su proyecto wix a WixIISExtension .


Para ampliar un poco la respuesta, el siguiente conjunto de atributos funcionó para mí:

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

Donde el elemento <Product> contenía un elemento secundario <Binary> la siguiente manera:

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

(Incluí el archivo PFX dentro de mi proyecto WiX).