C # WiX CustomAction Sitzung.Log. Wo kann ich das Protokoll finden?

8

Ich bin neu im WiX-Installer.

Ich verwende Session.Log, um einige nützliche Daten für den Prozess zu protokollieren.

%Vor%

Aber ich bin mir nicht sicher, wo ich das Protokoll finden kann. Gibt es einen Standardpfad für die Protokollierung? Oder muss ich den Pfad angeben, den ich in der .wxs-Datei des Installationsprogramms bereitstellen muss?

    
Keshavdas M 04.06.2014, 05:19
quelle

5 Antworten

11

Sie müssen Ihr Installationsprogramm über die Befehlszeile mit msiexec.exe ausführen und dann die Befehlszeilenoption L einfügen, um anzugeben, wo die Protokolle gespeichert werden sollen.

Zum Beispiel:

%Vor%

Weitere Informationen zu den Parametern von msiexec finden Sie unter Befehlszeile Optionen

    
rfernandes 04.06.2014, 06:30
quelle
1
  1. session.Log funktioniert wie session.Message mit Info-Ebene:

    %Vor%
  2. Sie können den Dirty-Trick verwenden: Definieren Sie eine Eigenschaft im Referenzmodul und setzen Sie ihren Wert in CA auf eine Nachricht, die Sie protokollieren möchten. Es scheint, dass WIX Änderungen von Eigenschaften protokolliert:

& lt; Property Id="WIX_MAGIX_TRICK_PROPERTY" Wert="0" / & gt;

und in CA:

session ["WIX_MAGIX_TRICK_PROPERTY"]="Nachricht zum Einloggen";

Das Ergebnis sollte ähnlich sein:

MSI (c) (78! 34) [09: 48: 13: 770]: PROPERTY CHANGE: Ändern der WIX_MAGIX_TRICK_PROPERTY-Eigenschaft. Der aktuelle Wert ist '0'. Der neue Wert: 'Nachricht zum Einloggen'.

    
sk_ra 15.03.2017 09:14
quelle
1

Session.Log fügt Ihr Protokoll dem Standard-MSI-Protokoll hinzu. Wenn Sie den Schalter /l*v <LogPath> während der Ausführung zur Verfügung gestellt haben, werden Protokolle der benutzerdefinierten Aktion in LogPath gefunden.

Falls Sie Property MsiLogging mit Wert als vx im Installer verwendet haben, Es würde Standard-MSI-Benutzer-Temp-Speicherort generieren (Typ% temp% in Ausführung), wobei LogName wie MSI * .LOG aussieht, automatisch auch ohne den Schalter /L*v . LogPath könnte jedoch mit dem Schalter /L*v überschrieben werden.

Dinge, die Sie wissen müssen:

  1. session.Log protokolliert nicht, wenn es von einer UI-Aktion ausgeführt wird.

  2. Manchmal kann das Installationsprogramm das MSI * -Log aufgrund von Speicherleckproblemen nicht generieren. In diesem Szenario können Sie den explorer.exe-Prozess neu starten.

Ashish Kamat 20.03.2017 15:34
quelle
0

Ich bin mir nicht sicher, wo session.Log Nachrichten protokolliert. Jedoch session.Message :

%Vor%

wird in der Protokolldatei angezeigt, die generiert wird mit:

%Vor%     
Colin 31.08.2016 13:48
quelle
0

Ausführen der msi mit den Argumenten: /L!*vx hat das für mich gelöst. ZB

%Vor%

Jetzt werden alle meine Aufrufe von Session.Log("..") in install.log

angezeigt     
user8483789 18.08.2017 12:46
quelle

Tags und Links