Pregunta

Para una acción personalizada, Soy la creación de nombre a XmlPreprocess.exe (una utilidad CodePlex)

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

SETTINGSFILE se supone que está viniendo de una página de formulario personalizado añadí, y ENVIRONMENTBUTTON es el valor de una de mis botones de radio.

¿Hay alguna manera de conseguir la redirección funcione? No es crear el archivo .log. ¿Hay alguna otra manera de ver los resultados de la acción personalizada? ¿Cómo puedo confirmar aún si funcionara? ¿Qué pasa si me gustaría ver lo que parms fueron enviados a ella?

Actualización 3: - Para más escenarios de lo que he tratado, ver aquí: http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId= 79454

Gracias,

Neal

Actualización: Acabo de escribir un polvo rápido VBScript para verificar mis 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

No se VBScriptout.txt fue creado, así que no creo que incluso corrió (así que yo creo es el XmlPreprocess ni siquiera está funcionando bien).

He incluido el archivo InstalLVerification.vbs como una acción personalizada en "Instalar". Me puse la condición = True en la ventana de propiedades. Puse CustomActionData a: "[SETTINGSFILE]" [ENVIRONMENTBUTTON]

Actualización 2: Me di cuenta ahora Estado no debe ser "verdadera". Yo ya sea en blanco hacia fuera o se establece en "no instalado".

Recibo un error inexplicable en XmlPreprocess, y no puedo conseguir el VBScript para ejecutar. Intenté funcionar también con CScript64.exe.

¿Fue útil?

Solución

Sólo el símbolo del sistema (y de vez en cuando otras herramientas) utilizan el símbolo mayor que indicar redirección de la salida. Windows Installer sólo llama a la API de Win32 CreateProcess que no procesar este símbolo. Así, su intento de registrar los resultados no funcionará. Tal vez puede volver a escribir su comando para parecerse cmd.exe /c XmlPreprocess.exe /x ... > [TARGETDIR]XmlPreprocess.log (se puede requerir un poco de sobrepeso citar).

Para propósitos de depuración, generalmente puede obtener mucha más información mediante la adopción de un registro detallado del proceso de instalación. Se incluirá una lista de las propiedades y de las acciones personalizadas se puso en marcha y sus códigos de retorno. Creo que va a incluir incluso la línea de comandos en su formato original pasa a la aplicación en su caso.

Como se dice en la actualización 2, tenga en cuenta que una condición de True en realidad significa mirar hacia arriba si una propiedad del nombre True se define. Si quieres algo que siempre es verdadera, utilice el valor 1.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top