Question

Pour une action personnalisée, je suis mise à Nom à XmlPreprocess.exe (un utilitaire CodePlex)

et arguments à: / x: "[SETTINGSFILE]" /i:"[TARGETDIR]web.config »/ e: [ENVIRONMENTBUTTON] [CustomSettings]> [TARGETDIR] XmlPreProcess.log

SETTINGSFILE est censé provenir d'une page de formulaire personnalisé j'ajouté, et ENVIRONMENTBUTTON est la valeur d'un de mes boutons radio.

Y at-il moyen d'obtenir la redirection de travailler? Il ne crée pas le fichier .log. Est-il une autre façon de voir les résultats de l'action personnalisée? Comment puis-je confirmer même si elle a couru? Que faire si je voudrais voir ce que parms ont été envoyés à elle?

Mise à jour 3: - Pour plus de scénarios de ce que j'ai essayé, voir ici: http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId= 79454

Merci,

Neal

Mise à jour: Je viens d'écrire un quickie VBScript pour vérifier mes 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 a été créé, donc je ne pense pas qu'il a même couru (donc je suppose le XmlPreprocess est même ne fonctionne pas non plus).

J'inclus le fichier InstalLVerification.vbs comme une action personnalisée dans « Installer ». Je mis la condition = True dans la fenêtre des propriétés. Je mis CustomActionData à: "[SETTINGSFILE]" [ENVIRONMENTBUTTON]

Mise à jour 2: Je réalisais maintenant état ne doit pas être « vrai ». Je soit vide dehors ou réglez-le sur « Non installé ».

Je reçois une erreur inexpliquée sur XmlPreprocess, et je ne peux pas obtenir le VBScript pour exécuter. J'ai essayé de courir aussi avec CScript64.exe.

Était-ce utile?

La solution

Seul l'invite de commande (et d'autres outils occasionnels) utilisent le symbole plus grand que pour indiquer la redirection de sortie. Windows Installer appelle simplement l'API Win32 CreateProcess qui ne traite pas ce symbole. Ainsi, votre tentative de connexion les résultats ne fonctionnera pas. Peut-être que vous pouvez réécrire votre commande pour ressembler cmd.exe /c XmlPreprocess.exe /x ... > [TARGETDIR]XmlPreprocess.log (certains supplémentaire peut être nécessaire de citer).

Pour des fins de débogage, vous pouvez généralement obtenir beaucoup plus d'informations en prenant un journal détaillé du processus d'installation. Il comprendra une liste des propriétés et des actions personnalisées il a lancé et leurs codes de retour. Je pense qu'il va même inclure la ligne de commande entièrement formatée transmise à l'application dans votre cas.

Comme vous dites dans Update 2, notez qu'une condition de True signifie en fait de rechercher si une propriété du nom True est défini. Si vous voulez quelque chose qui est toujours vrai, utilisez la valeur 1.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top