MSI Factory 2.3

Fragment Insertion Properties

Fragment Insertion Properties

Previous topic Next topic  

Fragment Insertion Properties

Previous topic Next topic  

MSI Factory

Main WXS Target

Insertion type:

The location to insert the XML text below into, relative to the XML element located by the Target search string field. Choose from:

First Child - The XML will be inserted as the first child element of the target element.

Last Child - The XML will be inserted as the last child element of the target element.

Before - The XML will be inserted before the target element at the same level as the target element (as a sibling element).

After - The XML will be inserted after the target element at the same level as the target element (as a sibling element).

Target search string:

A string that specifies the location of the target element in the main WXS file. Note that you will need to be familiar with the WiX schema as well as how MSI Factory outputs the WiX files in order to properly use insertions. You can use the following syntax.

Absolute Path

To find an absolute path, use forward slashes starting at the root element. For example, to find the main Product element, you would use "/Wix/Product". You can also use an asterisk to match any element at a particular level if you don't know or care what it is. For example, you could also find the main Product element using "/*/Product".

Anywhere Path (Depth First Search)

To perform a depth first search for an element, use the format "//ELEMENTNAME". So, for example, to find the first Component defined in the file, you would use "//Component". This type of search is most often combined with one of the predicates below to be useful.

Nth Element Predicate

To find the Nth element of a particular name at a specific level, you can add a [#] to the end of the element name. For example, to find the first ComponentRef in the 3rd Feature element, use "/Wix/Product/Feature[3]/ComponentRef".

Child Element Name Predicate

To find an element that contains a specific child element, you can add [ChildElementName] to the end of the element name. For example, to find the first Feature element that contains a MergeRef element, use "/Wix/Product/Feature[MergeRef]".

Attribute Predicate

To find an element that contains a specific attribute, you can add [@AttributeName] to the end of the target element name. For example, to find the first File element that has a KeyPath attribute (depth first), use "//File[@KeyPath]".

Attribute Value Predicate

To find an element that contains a specific attribute that has a specific value, you can add [@AttributeName='Value'] to the end of the target element name. For example, to find the Component element with the Id of "Program.exe", use "//Component[@Id='Program.exe']".

Text to Insert

This edit field contains the properly-formed XML text that should be inserted relative to the target element. Note that you must have one and only one root element. This text will be inserted verbatim into the main WXS file.

Here are examples of valid text:

1.

<UIRef Id="MyUI" />

2.

<Fragment>

<DirectoryRef Id="INSTALLDIR">

<Component Id="ProductX.exe" Guid="4D9959C8-47BE-4627-BB99-5F857F231CA2">

<File Id="ProductX.exe" Name="Product X.exe" DiskId="1" KeyPath="yes" Source="C:\Source\Product X.exe"/>

</Component>

</DirectoryRef>

</Fragment>

Here are examples of invalid text:

1. Not properly formed XML:

Hello world.

2. Not properly formed XML:

<UIRef Id="MyUI"

3. More than one root element:

<UIRef Id="MyUI" />

<Property Id="MyProperty" Value="SomeValue"/>


Learn More: Indigo Rose Software - MSI Factory - Buy Now - Contact Us