que - ¿Cómo utilizar las condiciones en las características de WiX?
wix precios (2)
Estoy tratando de hacer que Windows sea sencillo, y no sé cómo lidiar con esto. Tengo dos características: feature1 y feature2. Quiero que la característica 2 se instale solo si el usuario selecciona la característica1 que se instalará. Así que intenté:
<Feature Id=''core'' Title=''Core''
Description=''ØMQ 1.0.0 core functionality and C++ API'' Level=''1''>
<ComponentRef Id=''Core_include'' />
<ComponentRef Id=''Core_bin'' />
<ComponentRef Id=''Core_lib'' />
<ComponentRef Id=''Core_zmq'' />
<ComponentRef Id=''cpp_bin'' />
</Feature>
<Feature Id=''core_perf'' Title=''core_perf'' Description=''0MQ core perf'' Level=''999''>
<Condition Level="0">NOT (&core = "3")</Condition>
<ComponentRef Id=''cpp_perf'' />
</Feature>
Pero esto no instala la función core_perf si el usuario selecciona la función core.
¿Cómo puedo arreglar esto?
¡Necesita mover su condición a la definición de su componente y usarla! (Estado de la característica) en lugar de & (Acción de la característica) para que funcione cuando intenta agregar los ejemplos volviendo a ejecutar la instalación por segunda vez:
<Component Id="example1">
<Condition>!feature1 = 3</Condition>
</Component>
<Component Id="example2">
<Condition>!feature2 = 3</Condition>
</Component>
<Feature Id="feature1">
</Feature>
<Feature Id="feature2">
</Feature>
<Feature Id="examples">
<ComponentRef Id="example1" />
<ComponentRef Id="example2" />
</Feature>
¿Has considerado hacer feature1 el padre de feature2? Entonces, feature2 no se puede instalar a menos que feature1 también se instale. Ninguna condición necesaria.
<Feature Id=''core'' Title=''Core''
Description=''ØMQ 1.0.0 core functionality and C++ API'' Level=''1''>
<ComponentRef Id=''Core_include'' />
<ComponentRef Id=''Core_bin'' />
<ComponentRef Id=''Core_lib'' />
<ComponentRef Id=''Core_zmq'' />
<ComponentRef Id=''cpp_bin'' />
<Feature Id=''core_perf'' Title=''core_perf'' Description=''0MQ core perf''
Level=''999''>
<ComponentRef Id=''cpp_perf'' />
</Feature>
</Feature>