2009-12-24 26 views
9

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.Instalar un certificado pfx en una tienda de usuarios en Windows usando WiX

Respuesta

9

Necesita Certificate element. 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 de IIS, por ejemplo como este en la raíz Wix elemento:

    <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' 
        xmlns:iis='http://schemas.microsoft.com/wix/IIsExtension'> 
    
  2. Insertar el archivo PFX como secuencia binaria en tu paquete de instalación. Añadir un elemento Binary bajo el elemento producto como este:

    <Binary Id="MyCertificateBinaryStream" 
        SourceFile="c:/path/to/mycertificate.pfx" /> 
    
  3. declarar un componente con un elemento de <iis:Certificate>, por ejemplo como este. Mire el documentation, necesita completar algunos atributos . 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. activar la extensión IIS agregando la opción opción -ext WixIISExtension al invocar las herramientas de línea de comandos de Wix. Si utiliza Visual Studio, esto es solo cuestión de agregar una referencia en su proyecto wix al WixIISExtension.

+0

Voy a analizar esta respuesta y probar. Gracias por su respuesta nuevamente. Realmente agradezco su explicación. ¡Una feliz Navidad para usted! – abmv

4

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

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

Cuando el elemento de <Product> contenía un niño <Binary> de la siguiente manera:

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

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

Cuestiones relacionadas