2010-01-12 5 views
5

Jemand sagte mir, es gab eine Möglichkeit für die CustomAction in WIX, um die Ausgabe im Konsolenprotokoll anzuzeigen. Ich bin auch eine Exe XmlPreprocess.exe rief meine web.config zu manipulieren, basierend auf parms in einer Datei SettingsFileGenerator.xml genannt,WIX CustomAction - Wie bekomme ich mehr Informationen in der Installation/log

Ich bin wie folgt ausgeführt werden: msiexec/i bin \ Debug \ TFBIC. RCT.WCFWebServicesWIXSetup.msi/L * V "C: \ logs \ WixInstall01.log"

Das ist mein WIX-Build-Datei:

<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> 

log Install zeigt dies:

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. 

Dies ist mein allererster Versuch, WIX zu machen, also bitte mit meiner Unwissenheit.

Dank

UPDATE:

Dies ist ein Zitat aus einem anderen Forum - aber er ist nicht festgelegt, wie es funktioniert und er scheint nicht oft zu prüfen.

WiX hat eine benutzerdefinierte Aktion, die die Konsolenausgabe erfasst und klebt es direkt in die ausführliche MSI-Protokoll, so das ist, was ich benutze.

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

Wäre dies das Werkzeug sein, er spricht? http://wix.sourceforge.net/manual-wix2/qtexec.htm Ich bekomme diesen Fehler beim Versuch: Fehler LGHT0103: Das System kann die Datei 'wixca.dll' nicht finden. Ich habe die gesamte Festplatte nach dieser .dll gesucht und konnte sie nicht finden.

Antwort

8

Um alle möglichen Protokollierungen während der Installation einer MSI zu aktivieren, verwenden Sie die Option /lvx* logfile.txt. Aber selbst dies wird die Ausgabe von STDOUT und STDERR von Befehlszeilenprogrammen, die als benutzerdefinierte Aktion aufgerufen werden, nicht protokollieren.

Wenn Sie die benutzerdefinierte Aktion selbst geschrieben haben, können Sie diese Protokollierung hinzufügen. Zum Beispiel haben die DTF-Bibliotheken, die mit wix kommen, eine handliche Session.Log-Methode, die Sie aufrufen können. Weitere Informationen finden Sie unter c:\program files\windows installer xml v3\doc\dtf.chm, Thema "Erstellen von verwalteten benutzerdefinierten Aktionen".

Wenn Sie die Anwendung nicht geschrieben haben, können Sie eine benutzerdefinierte Aktion schreiben, um sie zu umbrechen. Ein solcher Wrapper könnte das .NET Process class verwenden, um eine ausführbare Datei aufzurufen, die StandardError und StandardOutput Streams lesen und alles mit der oben erwähnten Methode Session.Log protokollieren.

bearbeiten: Ich kenne keine standard custom action in wix, die Konsolenausgabe an das Protokoll sendet. Versuchen Sie die wix-users mailing list.

+0

Siehe Update in meiner ursprünglichen Frage, jemand sagte mir, es gibt eine benutzerdefinierte Aktion, die Konsolenausgabe erfasst. Irgendeine Idee, wie man es findet. Ich werde noch ein bisschen googeln. Ich habe es nicht geschrieben, es ist XmlPrecess von CodePlex. – NealWalters

Verwandte Themen