2009-11-28 19 views
6

Tengo una secuencia de acciones SetProperty que dependen una de la otra. Aquí está un ejemplo simplificado: "¡Hola mundo"Ordenar la ejecución de las acciones de WiX SetProperty

<SetProperty Id="A" Before="AppSearch" Value="Hello" /> 
<SetProperty Id="B" Before="AppSearch" Value="[A] world!" /> 

Property necesita ser puesto delante de la propiedad B en este caso, por lo que el valor de B se convierte.

Desde WiX no define un atributo para establecer el nombre de acción personalizada en este caso, no tengo un nombre que se utilizará en el Antes o Después atributos.

I hizo observe que el orden de ejecución de estas acciones coincide con el orden alfabético de los nombres de las propiedades, pero se siente como un detalle de implementación en el que no debería confiar.

¿Cómo puedo aplicar limpiamente el orden de las acciones personalizadas SetProperty?

Respuesta

9

También puede usar el atributo "Acción" del elemento SetProperty para marcar el nombre de la acción personalizada. Esto se vuelve esencial si desea establecer la misma propiedad en dos acciones distintas de SetProperty, ya que elimina los nombres ambiguos de las acciones "SetXXX".

Por ejemplo:

<SetProperty Id="A" Action="MyFirstAction" Before="AppSearch" Value="Hello" /> 
<SetProperty Id="B" Action="MySecondAction" After="MyFirstAction" Value="[A] world!" /> 
<SetProperty Id="A" Action="MyThirdAction" After ="MySecondAction" Value="Goodbye cruel world!" /> 
+0

extraño, en mi pregunta (publicado en 2009) me dijo que no había tal atributo para establecer el nombre. O me lo perdí o quizás se agregó en uno de los lanzamientos de wix 3 desde entonces. ¡Gracias por la actualización! –

4

Utilicé orca para descubrir los nombres generados para las acciones personalizadas. Resultan ser SetA y SetB. El siguiente hace lo que quiero:

<SetProperty Id="A" Before="AppSearch" Value="Hello" /> 
<SetProperty Id="B" After="SetA" Value="[A] world!" /> 
Cuestiones relacionadas