Frage

Für eine benutzerdefinierte Aktion, Ich gründe auf XmlPreprocess.exe auf Namen (ein CodePlex-Dienstprogramm)

und Argumente: / x: "[Settings]" /i:"[TARGETDIR]web.config“/ e: [ENVIRONMENTBUTTON] [Custom]> [TARGETDIR] XmlPreProcess.log

Settings soll aus einer benutzerdefinierten Formularseite zu kommen ich hinzu, und ENVIRONMENTBUTTON ist der Wert eines meiner Radio-Buttons.

Gibt es eine Möglichkeit die Umleitung zur Arbeit zu kommen? Es ist nicht die .log-Datei zu erstellen. Gibt es eine andere Art und Weise die Ergebnisse der benutzerdefinierten Aktion zu sehen? Wie kann ich auch bestätigen, wenn es läuft? Was passiert, wenn ich möchte was parms sehen waren sie geschickt?

Update 3: - Für weitere Szenarien, was ich versucht habe, sehen Sie hier: http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId= 79.454

Danke,

Neal

Update: Ich schrieb einen Quickie VBScript meine parms zu überprüfen.

dim fso, oFile 
set fso = Createobject("Scripting.FileSystemObject") 
set oFile = fso.CreateTextFile("VBScriptOut.txt") 

if WScript.Arguments.Count < 2 then 
   oFile.Writeline("Number of arguments was only = " & WScript.Arguments.Count)
else 
   oFile.WriteLine("SETTINGSFILE=" & WScript.Arguments.Item(0))   
   oFile.WriteLine("ENVIRONMENTBUTTON=" & WScript.Arguments.Item(1))
end if 

oFile.close

No VBScriptout.txt wurde erstellt, so dass ich nicht denke, es läuft sogar (so meine Vermutung ist, wird die XmlPreprocess nicht einmal entweder ausgeführt wird).

I umfasste die InstalLVerification.vbs Datei als benutzerdefinierte Aktion unter „Installieren“. Ich habe die Bedingung = True im Eigenschaftenfenster. Ich habe Custom zu: "[Settings]" [ENVIRONMENTBUTTON]

Update 2: Ich erkennen jetzt Zustand sollte nicht sein „True“. Ich entweder leer es aus oder setzt sie auf „nicht installiert“.

Ich erhalte einen unerklärlichen Fehler auf XmlPreprocess, und ich kann das VBScript ausführt nicht bekommen. Ich versuchte es auch mit CScript64.exe läuft.

War es hilfreich?

Lösung

Nur die Eingabeaufforderung (und gelegentlich andere Tools) verwenden die Größer-als-Symbol Ausgabeumleitung anzuzeigen. Windows Installer ruft nur den Win32-API Createprocess, die nicht mit diesem Symbol nicht verarbeitet. So kann Ihr Versuch, die Ergebnisse zu protokollieren wird nicht funktionieren. Vielleicht können Sie Ihren Befehl umschreiben wie cmd.exe /c XmlPreprocess.exe /x ... > [TARGETDIR]XmlPreprocess.log aussehen (einige zusätzliche Angabe erforderlich sein).

Für die Zwecke der Fehlersuche können Sie in der Regel viel mehr Informationen erhalten, indem ein ausführliches Protokoll des Installationsprozesses nehmen. Es wird eine Liste der Eigenschaften umfasst, und von benutzerdefinierten Aktionen, die es ins Leben gerufen und ihre Rückgabecodes. Ich denke, es wird sogar die vollständig formatierte Befehlszeile für die Anwendung in Ihrem Fall übergeben ist.

Wie Sie in Update 2 sagen, beachten Sie, dass eine Bedingung der True bedeutet tatsächlich bis zu schauen, ob eine Eigenschaft des Namens True definiert ist. Wenn Sie wollen etwas, das immer wahr ist, verwenden Sie den Wert 1.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top