Domanda

Per un'azione personalizzata, sto impostando a Nome per XmlPreprocess.exe (un programma di utilità CodePlex)

e argomenti: / x: "[SETTINGSFILE]" /i:"[TARGETDIR]web.config"/ e: [ENVIRONMENTBUTTON] [CustomSettings]> [TARGETDIR] XmlPreProcess.log

SETTINGSFILE si suppone che sia proveniente da una pagina di modulo personalizzato ho aggiunto, e ENVIRONMENTBUTTON è il valore di uno dei miei pulsanti di opzione.

C'è un modo per ottenere il reindirizzamento a lavorare? Non è la creazione del file di log. C'è un altro modo per vedere i risultati dell'azione personalizzata? Come posso anche confermare se corresse? Che cosa succede se mi piacerebbe vedere cosa parms sono stati inviati ad esso?

Aggiornamento 3: - Per ulteriori scenari di quello che ho provato, vedere qui: http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId= 79454

Grazie,

Neal

Aggiornamento: Ho appena scritto una sveltina VBScript per verificare i miei parms.

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

Non VBScriptout.txt è stato creato, in modo da non penso ancora di corse (quindi la mia ipotesi è il XmlPreprocess non è nemmeno in esecuzione o).

Ho incluso il file InstalLVerification.vbs come un'azione personalizzata sotto la voce "Installa". Ho impostato la condizione = True nella finestra delle proprietà. Ho impostato CustomActionData: "[SETTINGSFILE]" [ENVIRONMENTBUTTON]

Aggiornamento 2: Ho capito ora Condizione non dovrebbe essere "True". Mi sia vuota fuori o impostarlo su "Non installato".

Ricevo un errore inspiegabile su XmlPreprocess, e non riesco a ottenere il VBScript per l'esecuzione. Ho provato a fare funzionare anche con CScript64.exe.

È stato utile?

Soluzione

Solo il prompt dei comandi (e occasionali altri strumenti) utilizzano il simbolo maggiore di indicare reindirizzamento uscita. Di Windows Installer solo chiama l'API Win32 CreateProcess che non elaborare questo simbolo. Così il vostro tentativo di registrare i risultati non funzionerà. Forse si può riscrivere il vostro comando per assomigliare cmd.exe /c XmlPreprocess.exe /x ... > [TARGETDIR]XmlPreprocess.log (può essere richiesto qualche extra citando).

Per scopi di debug, si può generalmente ottenere molte più informazioni prendendo un registro dettagliato del processo di installazione. Esso comprenderà un elenco di proprietà e di azioni personalizzate è lanciato ed i loro codici di ritorno. Penso che sarà anche includere la riga di comando completamente formattato trasmessa all'applicazione nel tuo caso.

Come si dice in Update 2, si noti che una condizione di True significa in realtà per cercare se una proprietà del nome True è definito. Se si desidera qualcosa che è sempre vero, utilizzare il valore di 1.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top