Set Variable "Search"
User stories
- As a Setup developer I can declaratively author setting variables such that I don’t have to write code to set variables.
Proposal
Add a new “search” element called SetVariable
that can be scheduled during Detect just like any other search:
<xs:element name="SetVariable"> <xs:annotation> <xs:documentation>Schedules a "search" that sets a variable to the given value.</xs:documentation> <xs:appinfo> <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Bundle" /> <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" /> </xs:appinfo> </xs:annotation> <xs:complexType> <xs:attributeGroup ref="SearchCommonAttributes" /> <xs:attribute name="Value" type="xs:string"> <xs:annotation> <xs:documentation>New value for the variable.</xs:documentation> </xs:annotation> </xs:attribute> <xs:attribute name="Type"> <xs:annotation> <xs:documentation>Type of the variable, inferred from the value if not specified.</xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="string" /> <xs:enumeration value="numeric" /> <xs:enumeration value="version" /> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:anyAttribute namespace="##other" processContents="lax"> <xs:annotation> <xs:documentation> Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema. </xs:documentation> </xs:annotation> </xs:anyAttribute> </xs:complexType></xs:element>
Considerations
If we want to allow setting variables outside of Detect, then we may want to rename this element.