Registers a game in Game Explorer on Windows Vista and later. The executable must have an
Registers a game in Game Explorer on Windows Vista and later. The executable must have an
embedded Game Definition File. For more information about Game Explorer and GDFs, see
embedded Game Definition File. For more information about Game Explorer and GDFs, see
<html:ahref="http://msdn2.microsoft.com/en-us/library/bb173432.aspx">The Windows Vista Game Explorer</html:a>.
<html:ahref="http://msdn.microsoft.com/library/bb173432.aspx"target="_blank">The Windows Vista Game Explorer</html:a>.
This registration is accomplished via custom action.
This registration is accomplished via custom action.
On Windows XP, this element instead records the same information in the registry so that
On Windows XP, this element instead records the same information in the registry so that
@ -53,7 +53,7 @@
<xs:complexType>
<xs:complexType>
<xs:choiceminOccurs="0"maxOccurs="unbounded">
<xs:choiceminOccurs="0"maxOccurs="unbounded">
<xs:annotation>
<xs:annotation>
<xs:documentation>Each game can support multiple play and support tasks that are shown in the Game Explorer context menu.</xs:documentation>
<xs:documentation>Each game can support multiple play and support tasks that are shown in the Game Explorer context menu. PlayTask and SupportTask are not needed when using when authoring the tasks in the GDF using ExtendedProperties\GameTasks available in Windows 7. At least one play task should be created using either PlayTask or the ExtendedProperties\GameTasks\Play in the GDF.</xs:documentation>
</xs:annotation>
</xs:annotation>
<xs:elementref="PlayTask"/>
<xs:elementref="PlayTask"/>
<xs:elementref="SupportTask"/>
<xs:elementref="SupportTask"/>
@ -81,9 +81,9 @@
<xs:annotation>
<xs:annotation>
<xs:documentation>
<xs:documentation>
Creates a shortcut to the parent File and registers it as a "play task" in Game Explorer. For more information, see
Creates a shortcut to the parent File and registers it as a "play task" in Game Explorer. For more information, see
<xs:documentation>Defines properties for a web application. These properties can be used for more than one application defined in a web site, directory, or vroot, by defining this element in a common location and referring to it by setting the WebApplication attribute of the WebSite, WebDir, and WebVirtualDir elements.</xs:documentation>
<xs:documentation>Defines properties for a web application. These properties can be used for more than one application defined in a web site or vroot, by defining this element in a common location and referring to it by setting the WebApplication attribute of the WebSite and WebVirtualDir elements.</xs:documentation>
The name of the database. If the name does not follow the SQL server "Rules for Regular Identifiers" (see <html:ahref="http://msdn.microsoft.com/library/en-us/acdata/ac_8_con_03_6e9e.asp">MSDN</html:a>) it must be surrounded by quotes or square brackets. Since this value can be formatted text, this means that if you choose to use square brackets you must use the MSI method for escaping square brackets, for example: [\[]blah[\]].
The name of the database. If the name does not follow the SQL server "Rules for Regular Identifiers" (see <html:ahref="http://msdn.microsoft.com/en-us/library/ms175874.aspx">MSDN</html:a>) it must be surrounded by quotes or square brackets. Since this value can be formatted text, this means that if you choose to use square brackets you must use the MSI method for escaping square brackets, for example: [\[]blah[\]].
<xs:documentation>Specifies to execute the script when the associated component is installed.</xs:documentation>
<xs:documentation>Specifies to execute the script when the associated component is installed. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
<xs:documentation>Specifies whether to execute the script when the associated component is reinstalled. Setting ExecuteOnInstall to yes does <html:b>not</html:b> imply ExecuteOnReinstall is set to yes. ExecuteOnReinstall must be set in addition to ExecuteOnInstall for it to be executed during both install and reinstall.</xs:documentation>
<xs:documentation>Specifies whether to execute the script when the associated component is reinstalled. Setting ExecuteOnInstall to yes does <html:b>not</html:b> imply ExecuteOnReinstall is set to yes. ExecuteOnReinstall must be set in addition to ExecuteOnInstall for it to be executed during both install and reinstall. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
<xs:documentation>Specifies to execute the script when the associated component is uninstalled.</xs:documentation>
<xs:documentation>Specifies to execute the script when the associated component is uninstalled. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
<xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to install the associated component.</xs:documentation>
<xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to install the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
<xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to reinstall the associated component.</xs:documentation>
<xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to reinstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
<xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to uninstall the associated component.</xs:documentation>
<xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to uninstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
<xs:documentation>Specifies to execute the string when the associated component is installed.</xs:documentation>
<xs:documentation>Specifies to execute the string when the associated component is installed. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
Specifies whether to execute the string when the associated component is reinstalled. Setting ExecuteOnInstall to yes does <html:b>not</html:b> imply ExecuteOnReinstall is set to yes. ExecuteOnReinstall must be set in addition to ExecuteOnInstall for it to be executed during both install and reinstall.
Specifies whether to execute the string when the associated component is reinstalled. Setting ExecuteOnInstall to yes does <html:b>not</html:b> imply ExecuteOnReinstall is set to yes. ExecuteOnReinstall must be set in addition to ExecuteOnInstall for it to be executed during both install and reinstall. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.
<xs:documentation>Specifies to execute the string when the associated component is uninstalled.</xs:documentation>
<xs:documentation>Specifies to execute the string when the associated component is uninstalled. This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
<xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to install the associated component.</xs:documentation>
<xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to install the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
<xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to reinstall the associated component.</xs:documentation>
<xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to reinstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
<xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to uninstall the associated component.</xs:documentation>
<xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to uninstall the associated component. This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
Extensibility point in the WiX XML Schema. Schema extensions can register additional
@ -589,21 +590,36 @@
</xs:element>
</xs:element>
<xs:elementname="Validate">
<xs:elementname="Validate">
<xs:annotation><xs:documentation>Sets information on the patch transform that determines to which product the transform applies and what errors should be ignored when applying the patch transform.</xs:documentation></xs:annotation>
<xs:annotation>
<xs:documentation>Sets information in the patch transform that determines if the transform applies to an installed product and what errors should be ignored when applying the patch transform.</xs:documentation>
<xs:appinfo>
<xse:remarks>
<html:p>A transform contains the differences between the target product and the upgraded product. When a transform or a patch (which contains transforms) is applied, the following properties of the installed product are validated against the properties of the target product stored in a transform.</html:p>
<html:ul>
<html:li>ProductCode</html:li>
<html:li>ProductLanguage</html:li>
<html:li>ProductVersion</html:li>
<html:li>UpgradeCode</html:li>
</html:ul>
<html:p>Windows Installer simply validates that the ProductCode, ProductLanguage, and UpgradeCode of an installed product are equivalent to those propeties of the target product used to create the transform; however, the ProductVersion can be validated with a greater range of comparisons.</html:p>
<html:p>You can compare up to the first three fields of the ProductVersion. Changes to the fourth field are not validated and are useful for small updates. You can also choose how to compare the target ProductVersion used to create the transform with the installed ProductVersion. For example, while the default value of 'Equals' is recommended, if you wanted a minor upgrade patch to apply to the target ProductVersion and all older products with the same ProductCode, you would use 'LesserOrEqual'.</html:p>
<xs:documentation>Requires that the upgrade ProductCode match the target ProductCode. The default is 'yes'.</xs:documentation>
<xs:documentation>Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'.</xs:documentation>
<xs:documentation>Requires that the upgrade ProductLanguage match the target ProductLanguage. The default is 'no'.</xs:documentation>
<xs:documentation>Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'.</xs:documentation>
<xs:documentation>Determines how many fields in the ProductVersion to check. The default is 'Update'.</xs:documentation>
<xs:documentation>Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'.</xs:documentation>
<xs:documentation>Determines how the target and upgrade ProductVersions are compared. The default is 'Equal'.</xs:documentation>
<xs:documentation>Determines how the installed ProductVersion is compared to the target ProductVersion used to create the transform. See remarks for more information. The default is 'Equal'.</xs:documentation>
<xs:documentation>Requires that the upgrade UpgradeCode match the target UpgradeCode. The default is 'yes'.</xs:documentation>
<xs:documentation>Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'.</xs:documentation>
<xs:documentation>A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.</xs:documentation>
<xs:documentation>A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.</xs:documentation>
</xs:annotation>
</xs:annotation>
@ -1022,17 +1038,41 @@
</xs:complexType>
</xs:complexType>
</xs:element>
</xs:element>
<xs:elementname="TargetProductCodes">
<xs:annotation>
<xs:documentation>
The product codes for products that can accept the patch.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choicemaxOccurs="unbounded">
<xs:elementref="TargetProductCode"/>
</xs:choice>
<xs:attributename="Replace"type="YesNoType">
<xs:annotation>
<xs:documentation>Whether to replace the product codes that can accept the patch from the target packages with the child elements.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:elementname="TargetProductCode">
<xs:elementname="TargetProductCode">
<xs:annotation>
<xs:annotation>
<xs:documentation>
<xs:documentation>
A product code for a product that may receive this patch (or '*' for all products).
A product code for a product that can accept the patch.
</xs:documentation>
</xs:documentation>
<xs:appinfo>
<xse:remarks>
<html:p>When using the PatchCreation element, if the Id attribute value is '*' or this element is not authored, the product codes of all products referenced by the TargetImages element are used.</html:p>
<html:p>When using the Patch element, the Id attribute value must not be '*'. Use the TargetProductCodes/@Replace attribute instead.</html:p>
<xse:howtoRefhref="check_the_version_number.htm">How To: Check the version number of a file during installation</xse:howtoRef>
<xse:howtoRefhref="check_the_version_number.htm">How To: Check the version number of a file during installation</xse:howtoRef>
<xse:remarks>
<html:a>When the parent DirectorySearch/@Depth attribute is greater than 1, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'.</html:a>
</xse:remarks>
</xs:appinfo>
</xs:appinfo>
<xs:documentation>Searches for file and assigns to fullpath value of parent Property</xs:documentation>
<xs:documentation>Searches for file and assigns to fullpath value of parent Property</xs:documentation>
</xs:annotation>
</xs:annotation>
<xs:complexType>
<xs:complexType>
<xs:attributename="Id"type="xs:string">
<xs:attributename="Id"type="xs:string">
<xs:annotation><xs:documentation>Unique identifier for the file search and external key into the Signature table. If the parent DirectorySearch/@Depth is greater than 1, this must either be set to the parent DirectorySearch/@Id or absent.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Unique identifier for the file search and external key into the Signature table. If this attribute value is not set then the parent element's @Id attribute is used.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:attribute>
<xs:attributename="Name"type="LongFileNameType">
<xs:attributename="Name"type="LongFileNameType">
<xs:annotation>
<xs:annotation>
@ -1938,7 +1981,7 @@
<xs:appinfo>
<xs:appinfo>
<xse:seeAlsoref="FileSearch"/>
<xse:seeAlsoref="FileSearch"/>
<xse:remarks>
<xse:remarks>
<html:p>If you intend to use a FileSearchRef to reference a FileSearch but they have different parent elements, you must use a FileSearch instead of a FileSearchRef. This is because the DrLocator table in an installer package is keyed on the Id, Parent, and Path. A file is associated with its parent directory in the DrLocator table. When a FileSearch and a FileSearchRef element are under different parent elements, the Parent will automatically be different so a FileSearchRef will not have a FileSearch to reference.</html:p>
<html:p>A reference to another FileSearch element must reference the same Id and the same Parent Id. If any of these attribute values are different you must instead use a FileSearch element.</html:p>
</xse:remarks>
</xse:remarks>
</xs:appinfo>
</xs:appinfo>
<xs:documentation>References an existing FileSearch element.</xs:documentation>
<xs:documentation>References an existing FileSearch element.</xs:documentation>
<xse:howtoRefhref="check_the_version_number.htm">How To: Check the version number of a file during installation</xse:howtoRef>
<xse:howtoRefhref="check_the_version_number.htm">How To: Check the version number of a file during installation</xse:howtoRef>
<xse:howtoRefhref="directorysearchref.htm">How To: Reference another DirectorySearch element</xse:howtoRef>
<xse:howtoRefhref="parentdirectorysearch.htm">How To: Get the parent directory of a file search</xse:howtoRef>
<xse:remarks>
<html:p>Use the AssignToProperty attribute to search for a file but set the outer property to the directory containing the file. When this attribute is set to 'yes', you may only nest a FileSearch element with a unique Id or define no child element.</html:p>
<html:a>When the parent DirectorySearch/@Depth attribute is greater than 1, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'.</html:a>
</xse:remarks>
</xs:appinfo>
</xs:appinfo>
<xs:documentation>Searches for directory and assigns to value of parent Property.</xs:documentation>
<xs:documentation>Searches for directory and assigns to value of parent Property.</xs:documentation>
</xs:annotation>
</xs:annotation>
@ -1979,13 +2028,12 @@
<xs:attributename="Depth"type="xs:integer">
<xs:attributename="Depth"type="xs:integer">
<xs:annotation>
<xs:annotation>
<xs:documentation>
<xs:documentation>
Depth below the path that the installer searches for the file or directory specified by the search.
Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information.
If this value is not specified, the depth is assumed to be 0.
<xs:annotation><xs:documentation>Set the result of this search to the value of the outer Property.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Set the value of the outer Property to the result of this search. See remarks for more information.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:attribute>
</xs:complexType>
</xs:complexType>
</xs:element>
</xs:element>
@ -1996,8 +2044,9 @@
<xse:seeAlsoref="ComponentSearch"/>
<xse:seeAlsoref="ComponentSearch"/>
<xse:seeAlsoref="IniFileSearch"/>
<xse:seeAlsoref="IniFileSearch"/>
<xse:seeAlsoref="RegistrySearch"/>
<xse:seeAlsoref="RegistrySearch"/>
<xse:howtoRefhref="directorysearchref.htm">How To: Reference another DirectorySearch element</xse:howtoRef>
<xse:remarks>
<xse:remarks>
<html:p>If you intend to use a DirectorySearchRef to reference a DirectorySearch but they have different parent elements, you must use a DirectorySearch instead of a DirectorySearchRef. This is because the DrLocator table in an installer package is keyed on the Id, Parent, and Path. When a DirectorySearch and a DirectorySearchRef element are under different parent elements, the Parent will automatically be different so a DirectorySearchRef will not have a DirectorySearch to reference.</html:p>
<html:p>A reference to another DirectorySearch element must reference the same Id, the same Parent Id, and the same Path. If any of these attribute values are different you must instead use a DirectorySearch element.</html:p>
</xse:remarks>
</xse:remarks>
</xs:appinfo>
</xs:appinfo>
<xs:documentation>References an existing DirectorySearch element.</xs:documentation>
<xs:documentation>References an existing DirectorySearch element.</xs:documentation>
@ -2019,9 +2068,6 @@
<xs:attributename="Path"type="xs:string">
<xs:attributename="Path"type="xs:string">
<xs:annotation><xs:documentation>Path on the user's system. Either absolute, or relative to containing directories.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Path on the user's system. Either absolute, or relative to containing directories.</xs:documentation></xs:annotation>
<xse:howtoRefhref="read_a_registry_entry.htm">How To: Read a registry entry during installation</xse:howtoRef>
<xse:howtoRefhref="read_a_registry_entry.htm">How To: Read a registry entry during installation</xse:howtoRef>
<xse:remarks>
<html:p>
When the Type attribute value is 'directory' the registry value must specify the path to a directory excluding the file name.
When the Type attribute value is 'file' the registry value must specify the path to a file including the file name;
however, if there is no child FileSearch element the parent directory of the file is returned. The FileSearch element requires
that you author the name of the file you are searching for. If you do not know the file name
you must set the Type attribute to 'raw' to return the full file path including the file name.
</html:p>
</xse:remarks>
</xs:appinfo>
</xs:appinfo>
<xs:documentation>Searches for file, directory or registry key and assigns to value of parent Property</xs:documentation>
<xs:documentation>Searches for file, directory or registry key and assigns to value of parent Property</xs:documentation>
</xs:annotation>
</xs:annotation>
@ -2217,7 +2272,7 @@
<xs:attributename="Type"use="required">
<xs:attributename="Type"use="required">
<xs:annotation>
<xs:annotation>
<xs:documentation>
<xs:documentation>
The value must be 'file' if the last child is a FileSearch element and must be 'directory' if last child is a DirectorySearch element.
The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element.
</xs:documentation>
</xs:documentation>
</xs:annotation>
</xs:annotation>
<xs:simpleType>
<xs:simpleType>
@ -2225,26 +2280,33 @@
<xs:enumerationvalue="directory">
<xs:enumerationvalue="directory">
<xs:annotation>
<xs:annotation>
<xs:documentation>
<xs:documentation>
Sets a directory path from the registry value.
The registry value contains the path to a directory.
</xs:documentation>
</xs:documentation>
</xs:annotation>
</xs:annotation>
</xs:enumeration>
</xs:enumeration>
<xs:enumerationvalue="file">
<xs:enumerationvalue="file">
<xs:annotation>
<xs:annotation>
<xs:documentation>
<xs:documentation>
Sets a file path from the registry value.
The registry value contains the path to a file. To return the full file path you must add a FileSearch element as a child of this element; otherwise, the parent directory of the file path is returned.
</xs:documentation>
</xs:documentation>
</xs:annotation>
</xs:annotation>
</xs:enumeration>
</xs:enumeration>
<xs:enumerationvalue="raw">
<xs:enumerationvalue="raw">
<xs:annotation>
<xs:annotation>
<xs:documentation>
<xs:documentation>
Sets the raw value from the registry value. Please note that this value will contain a prefix as follows:<html:br/>
Sets the raw value from the registry value. Please note that this value will contain a prefix as follows:<html:br/><html:br/>
DWORD: Starts with '#' optionally followed by '+' or '-'.<html:br/>
<html:dl>
REG_BINARY: Starts with '#x' and the installer converts and saves each hexadecimal digit (nibble) as an ASCII character prefixed by '#x'.<html:br/>
<html:dt>DWORD</html:dt>
REG_EXPAND_SZ: Starts with '#%'.<html:br/>
<html:dd>Starts with '#' optionally followed by '+' or '-'.</html:dd>
REG_MULTI_SZ: Starts with '[~]' and ends with '[~]'.<html:br/>
<html:dt>REG_BINARY</html:dt>
REG_SZ: No prefix, but if the first character of the registry value is '#', the installer escapes the character by prefixing it with another '#'.<html:br/>
<html:dd>Starts with '#x' and the installer converts and saves each hexadecimal digit (nibble) as an ASCII character prefixed by '#x'.</html:dd>
<html:dt>REG_EXPAND_SZ</html:dt>
<html:dd>Starts with '#%'.</html:dd>
<html:dt>REG_MULTI_SZ</html:dt>
<html:dd>Starts with '[~]' and ends with '[~]'.</html:dd>
<html:dt>REG_SZ</html:dt>
<html:dd>No prefix, but if the first character of the registry value is '#', the installer escapes the character by prefixing it with another '#'.</html:dd>
</html:dl>
</xs:documentation>
</xs:documentation>
</xs:annotation>
</xs:annotation>
</xs:enumeration>
</xs:enumeration>
@ -2588,17 +2650,17 @@
<xse:seeAlsoref="Shortcut"/>
<xse:seeAlsoref="Shortcut"/>
<xse:msiReftable="MsiShortcutProperty"/>
<xse:msiReftable="MsiShortcutProperty"/>
</xs:appinfo>
</xs:appinfo>
<xs:documentation>Property values for a shortcut.</xs:documentation>
<xs:documentation>Property values for a shortcut. This element's functionality is available starting with MSI 5.0.</xs:documentation>
</xs:annotation>
</xs:annotation>
<xs:complexTypemixed="true">
<xs:complexTypemixed="true">
<xs:attributename="Id"type="xs:string">
<xs:attributename="Id"type="xs:string">
<xs:annotation><xs:documentation>Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Sets a default value for the property. The value will be overwritten if the Property is used for a search.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>A formatted string identifying the property to be set.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:attribute>
<xs:attributename="Value"type="xs:string">
<xs:attributename="Value"type="xs:string">
<xs:annotation><xs:documentation>Sets a default value for the property. The value will be overwritten if the Property is used for a search.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>A formatted string supplying the value of the property.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:attribute>
</xs:complexType>
</xs:complexType>
</xs:element>
</xs:element>
@ -3063,7 +3125,16 @@
</xs:simpleType>
</xs:simpleType>
</xs:attribute>
</xs:attribute>
<xs:attributename="DiskId"type="xs:integer">
<xs:attributename="DiskId"type="xs:integer">
<xs:annotation><xs:documentation>Specifies the Media this File should be sourced on. This attribute overrides the default DiskId attribute from the parent Component element. If no DiskId attribute is specifed, the default is "1".</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>
The value of this attribute should correspond to the Id attribute of a Media
element authored elsewhere. By creating this connection between a file and
its media, you set the packaging options to the values specified in the Media
element (values such as compression level, cab embedding, etc...). Specifying
the DiskId attribute on the File element overrides the default DiskId attribute
from the parent Component element. If no DiskId attribute is specified,
the default is "1". This DiskId attribute is ignored when creating a merge module
because merge modules do not have media.
</xs:documentation></xs:annotation>
</xs:attribute>
</xs:attribute>
<xs:attributename="Source"type="xs:string">
<xs:attributename="Source"type="xs:string">
<xs:annotation><xs:documentation>Specifies the path to the File in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more information, see <ahref="\html\specifying_source_files.htm">Specifying source files</a>.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Specifies the path to the File in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more information, see <ahref="\html\specifying_source_files.htm">Specifying source files</a>.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Version-independent ProgId must be child element of actual ProgId. Nesting further ProgId elements within the Version-independent ProgId is disallowed.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>The version-independent ProgId must be the first child element of actual ProgId. Nesting other ProgId elements within the Version-independent ProgId will create COM+ aliases, see <ahref="http://support.microsoft.com/kb/305745">http://support.microsoft.com/kb/305745</a> for more information.</xs:documentation></xs:annotation>
Configures the failure actions for a service being installed or one that already exists.
Configures the failure actions for a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0.
<xs:annotation><xs:documentation>The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>This attribute is only valid for CheckBox Controls. When set, the linked Property will be set to this value when the check box is checked.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>This attribute is only valid for CheckBox Controls. When set, the linked Property will be set to this value when the check box is checked.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>This attribute is only valid for CheckBox controls. The value is the name of a Property that was already used as the Property for another CheckBox control. The Property attribute cannot be specified. The attribute exists to support multiple checkboxes on different dialogs being tied to the same property.</xs:documentation></xs:annotation>
</xs:attribute>
<!-- Control ordering - order of declaration in Dialog determines tab ordering -->
<!-- Control ordering - order of declaration in Dialog determines tab ordering -->
<xs:attributename="TabSkip"type="YesNoType">
<xs:attributename="TabSkip"type="YesNoType">
<xs:annotation><xs:documentation>Set this attribute to "yes" to cause this Control to be skipped in the tab sequence.</xs:documentation></xs:annotation>
<xs:annotation><xs:documentation>Set this attribute to "yes" to cause this Control to be skipped in the tab sequence.</xs:documentation></xs:annotation>
<_PleaseSetThisInProjectFile>Please set this in the project file before the <Import> of the wix.targets file.</_PleaseSetThisInProjectFile>
<_PleaseSetThisInProjectFile>Please set this in the project file before the <Import> of the wix.targets file.</_PleaseSetThisInProjectFile>
<_OutputTypeDescription>The OutputType defines whether a Windows Installer package (.msi), merge module (.msm), or wix library (.wixlib) is being built. $(_PleaseSetThisInProjectFile) Possible values are 'Package', 'Module', and 'Library'.</_OutputTypeDescription>
<_OutputTypeDescription>The OutputType defines whether a Windows Installer package (.msi), PatchCreation (.pcp), merge module (.msm), or wix library (.wixlib) is being built. $(_PleaseSetThisInProjectFile) Possible values are 'Package', 'Module', and 'Library'.</_OutputTypeDescription>
</PropertyGroup>
</PropertyGroup>
<Target Name="_CheckRequiredProperties">
<Target Name="_CheckRequiredProperties">
@ -328,7 +327,7 @@ Copyright (c) Microsoft Corporation. All rights reserved.
<Error
<Error
Code="WIXTARGETS102"
Code="WIXTARGETS102"
Condition=" '$(OutputType)' != 'Package' and '$(OutputType)' != 'Module' and '$(OutputType)' != 'Library' "
Condition=" '$(OutputType)' != 'Package' and '$(OutputType)' != 'PatchCreation' and '$(OutputType)' != 'Module' and '$(OutputType)' != 'Library' "
Text="The OutputType property '$(OutputType)' is not valid in project "$(MSBuildProjectFile)". $(_OutputTypeDescription)" />
Text="The OutputType property '$(OutputType)' is not valid in project "$(MSBuildProjectFile)". $(_OutputTypeDescription)" />
<!-- Although we try to ensure a trailing slash, it's possible to circumvent this if the property is set on the command line -->
<!-- Although we try to ensure a trailing slash, it's possible to circumvent this if the property is set on the command line -->
@ -599,31 +598,28 @@ Copyright (c) Microsoft Corporation. All rights reserved.
-->
-->
<Target
<Target
Name="ResolveWixExtensionPaths">
Name="ResolveWixExtensionPaths">
<PropertyGroup>
<WixExtensionSearchPaths>
$(ReferencePaths);
{HintPathFromItem};
{RawFileName};
$(WixExtDir)
</WixExtensionSearchPaths>
</PropertyGroup>
<!-- Generate flat item group without metadata -->
Condition="Exists('$(TargetDir)%(EmbeddedResourceWithCulture.Culture)\$(TargetName)$(TargetPdbExt)') And '%(EmbeddedResourceWithCulture.Culture)' != ''">