2010-01-12 11 views
5

Alguien me dijo que había una forma para que CustomAction en WIX muestre la salida en el registro de la consola. Estoy incluyendo un .exe llamado XmlPreprocess.exe para manipular mi web.config, basado en parms en un archivo llamado SettingsFileGenerator.xml,WIX CustomAction - cómo obtener más información en la instalación/registro

Me estoy quedando así: msiexec/i bin \ Debug \ TFBIC. RCT.WCFWebServicesWIXSetup.msi/L * V "C: \ logs \ WixInstall01.log"

ésta es mi WIX fichero de construcción:

<CustomAction Id="**SAMPLE_CONFIG**" BinaryKey="XMLPREPROCESS" ExeCommand="/i:&quot;[INSTALLLOCATION]web.config&quot; /x:&quot;[INSTALLLOCATION]SettingsFileGenerator.xml&quot; /e:QA /d:ServiceLocation=[SERVICELOCATION]" Execute="deferred" /> 
    <Binary Id="XMLPREPROCESS" SourceFile="../TFBIC.RCT.WCFWebServices/RequiredBins/XMLPreprocess.exe" /> 
    <InstallExecuteSequence> 
     <Custom Action="SAMPLE_CONFIG" After="StartServices"><![CDATA[NOT Installed]]></Custom> 
    </InstallExecuteSequence> 

Instalar registro muestra esto:

Action 15:22:27: StartServices. Starting services 
Action start 15:22:27: StartServices. 
MSI (s) (58:CC) [15:22:27:898]: Note: 1: 2205 2: 3: ServiceControl 
MSI (s) (58:CC) [15:22:27:898]: Note: 1: 2228 2: 3: ServiceControl 4: SELECT `Name`,`Wait`,`Arguments`,`Event`, `Action` FROM `ServiceControl`, `Component` WHERE `Component_` = `Component` AND (`Action` = 0 OR `Action` = 1 OR `Action` = 2) 
Action ended 15:22:27: StartServices. Return value 1. 
MSI (s) (58:CC) [15:22:27:899]: Doing action: SAMPLE_CONFIG 
Action 15:22:27: SAMPLE_CONFIG. 
Action start 15:22:27: **SAMPLE_CONFIG**. 
SAMPLE_CONFIG: 
Action ended 15:22:27: **SAMPLE_CONFIG**. Return value 1. 

Este es mi primer intento de hacer WIX, así que tenga paciencia con mi ignorancia.

Gracias

ACTUALIZACIÓN:

Esta es una cita de otro foro - pero no especifica cómo funciona y que no parece que visite con frecuencia.

WiX tiene una acción personalizada que captura la salida de la consola y palos que directamente en el registro de MSI detallado, por lo eso es lo que yo uso.

referencia: http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId=79454

¿Sería ésta la herramienta que está hablando? http://wix.sourceforge.net/manual-wix2/qtexec.htm Recibo este error al intentarlo: error LGHT0103: El sistema no puede encontrar el archivo 'wixca.dll'. He buscado todo el disco para este .dll y no he podido encontrarlo.

Respuesta

8

Para habilitar todos los registros posibles mientras se instala un msi, use la opción /lvx* logfile.txt. Sin embargo, incluso esto no registrará la salida STDOUT y STDERR de las aplicaciones de línea de comandos invocadas como una acción personalizada.

Si ha escrito la acción personalizada usted mismo, puede agregar tal registro a la misma. Por ejemplo, las bibliotecas DTF que vienen con wix tienen un práctico método Session.Log al que puede llamar. Consulte c:\program files\windows installer xml v3\doc\dtf.chm, tema "Escribir acciones personalizadas administradas" para obtener más información.

Si no ha escrito la aplicación, puede escribir una acción personalizada para ajustarla. Tal envoltorio podría usar .NET Process class para invocar un ejecutable, leer las corrientes StandardError y StandardOutput, y registrar todo con el método Session.Log mencionado anteriormente.

edit: No conozco ningún standard custom action in wix que envíe la salida de la consola al registro. Pruebe el wix-users mailing list.

+0

Ver la actualización en mi pregunta original, alguien me dijo que hay una acción personalizada que captura la salida de la consola. Alguna idea de cómo encontrarlo. Iré a google un poco más. No lo escribí, es XmlPreprocess de CodePlex. – NealWalters

Cuestiones relacionadas