Schema for describing Windows Installer database files (.msi/.msm/.pcp).
http://schemas.microsoft.com/wix/2006/wi
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the Common Public License 1.0 (http://opensource.org/licenses/cpl.php) which can be found in the file CPL.TXT at the root of this distribution. By using this software in any fashion, you are agreeing to be bound by the terms of this license.
You must not remove this notice, or any other, from this software.
| Name | Description |
|---|---|
| AdminExecuteSequence | |
| AdminUISequence | |
| AdvertiseExecuteSequence | |
| AllocateRegistrySpace | Ensures the needed amount of space exists in the registry. |
| AppData | Optional way for defining AppData, generally used for complex CDATA. |
| AppId | Application ID containing DCOM information for the associated application GUID. |
| AppSearch | Uses file signatures to search for existing versions of products. |
| AssemblyName | The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly. |
| Billboard | Billboard to display during install of a Feature |
| BillboardAction | Billboard action during which child Billboards are displayed |
| Binary | Binary data used for CustomAction elements and UI controls. |
| BinaryRef | Used only for PatchFamilies to include only a binary table entry in a patch. |
| BindImage | Binds each executable or DLL that must be bound to the DLLs imported by it. |
| Category | Qualified published component for parent Component |
| CCPSearch | Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. |
| Class | COM Class registration for parent Component. |
| Column | Column definition for a Custom Table |
| ComboBox | Set of items for a particular ComboBox control tied to an install Property |
| ComplianceCheck | Adds a row to the CCPSearch table. |
| ComplianceDrive | Sets the parent of a nested DirectorySearch element to CCP_DRIVE. |
| Component | Component for parent Directory |
| ComponentGroup | Groups together multiple components to be used in other locations. |
| ComponentGroupRef | Create a reference to a ComponentGroup in another Fragment. |
| ComponentRef | Create a reference to a Feature element in another Fragment. |
| ComponentSearch | Searches for file or directory and assigns to value of parent Property. |
| Condition | Conditions for components, controls, features, and products. |
| Configuration | Defines the configurable attributes of merge module. |
| ConfigurationData | Data to use as input to a configurable merge module. |
| Control | Contains the controls that appear on each dialog. |
| CopyFile | Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. |
| CostFinalize | Ends the internal installation costing process begun by the CostInitialize action. |
| CostInitialize | Initiates the internal installation costing process. |
| CreateFolder | Create folder as part of parent Component. |
| CreateFolders | Creates empty folders for components that are set to be installed. |
| CreateShortcuts | Manages the creation of shortcuts. |
| Custom | Use to sequence a custom action. |
| CustomAction | Specifies a custom action to be added to the MSI CustomAction table. |
| CustomActionRef | This will cause the entire contents of the Fragment containing the referenced CustomAction to be included in the installer database. |
| CustomProperty | A custom property for the PatchMetadata table. |
| CustomTable | Defines a custom table for use from a custom action. |
| Data | Used for a Custom Table. Specifies the data for the parent Row and specified Column. |
| DeleteServices | Stops a service and removes its registration from the system. |
| Dependency | Declares a dependency on another merge module. |
| Dialog | Defines a dialog box in the Dialog Table. |
| DialogRef | Reference to a Dialog. |
| DigitalCertificate | Adds a digital certificate. |
| DigitalSignature | Adds a digital signature. |
| Directory | Directory layout for the product. |
| DirectoryRef | Create a reference to a Directory element in another Fragment. |
| DirectorySearch | Searches for directory and assigns to value of parent Property. |
| DirectorySearchRef | References an existing DirectorySearch element. |
| DisableRollback | Disables rollback for the remainder of the installation. |
| DuplicateFiles | Duplicates files installed by the InstallFiles action. |
| EmbeddedChainer | |
| EmbeddedChainerRef | Reference to an EmbeddedChainer element. |
| EmbeddedUI | Element value is the condition. |
| EmbeddedUIResource | Defines a resource for use by the embedded UI. |
| EnsureTable | Use this element to ensure that a table appears in the installer database, even if its empty. |
| Environment | Environment variables added or removed for the parent component. |
| Error | |
| Exclusion | Declares a merge module with which this merge module is incompatible. |
| ExecuteAction | Initiates the execution sequence. |
| Extension | Extension for a Component |
| ExternalFile | Contains information about specific files that are not part of a regular target image. |
| Family | Group of one or more upgraded images of a product. |
| Feature | A feature for the Feature table. |
| FeatureGroup | Groups together multiple components, features, and merges to be used in other locations. |
| FeatureGroupRef | Create a reference to a FeatureGroup in another Fragment. |
| FeatureRef | Create a reference to a Feature element in another Fragment. |
| File | File specification for File table, must be child node of Component. |
| FileCost | Initiates dynamic costing of standard installation actions. |
| FileSearch | Searches for file and assigns to fullpath value of parent Property |
| FileSearchRef | References an existing FileSearch element. |
| FileTypeMask | FileType data for class Id registration. |
| FindRelatedProducts | Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. |
| ForceReboot | Prompts the user for a restart of the system during the installation. |
| Fragment | The Fragment element is the building block of creating an installer database in WiX. |
| Icon | Icon used for Shortcut, ProgId, or Class elements (but not UI controls) |
| IconRef | Used only for PatchFamilies to include only a icon table entry in a patch. |
| IgnoreModularization | This element has been deprecated. |
| IgnoreRange | Specifies part of a file that is to be ignored during patching. |
| IgnoreTable | Specifies a table from the merge module that is not merged into an .msi file. |
| Include | This is the top-level container element for every wxi file. |
| IniFile | Adds or removes .ini file entries. |
| IniFileSearch | Searches for file, directory or registry key and assigns to value of parent Property |
| InstallAdminPackage | Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text. |
| InstallExecute | Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. |
| InstallExecuteAgain | Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. |
| InstallExecuteSequence | |
| InstallFiles | Copies files specified in the File table from the source directory to the destination directory. |
| InstallFinalize | Marks the end of a sequence of actions that change the system. |
| InstallInitialize | Marks the beginning of a sequence of actions that change the system. |
| InstallODBC | Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. |
| InstallServices | Registers a service for the system. |
| InstallUISequence | |
| InstallValidate | Verifies that all costed volumes have enough space for the installation. |
| Instance | Defines an instance transform for your product. |
| InstanceTransforms | Use this element to contain definitions for instance transforms. |
| Interface | COM Interface registration for parent Typelib. |
| IsolateComponent | Shared Component to be privately replicated in folder of parent Component |
| IsolateComponents | Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). |
| LaunchConditions | Queries the LaunchCondition table and evaluates each conditional statement recorded there. |
| ListBox | Set of items for a particular ListBox control tied to an install Property |
| ListItem | The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView. |
| ListView | Set of items for a particular ListView control tied to an install Property |
| Media | Media element describes a disk that makes up the source media for the installation. |
| Merge | Merge directive to bring in a merge module that will be redirected to the parent directory. |
| MergeRef | Merge reference to connect a Merge Module to parent Feature |
| MigrateFeatureStates | Used for upgrading or installing over an existing application. |
| MIME | MIME content-type for an Extension |
| Module | The Module element is analogous to the main function in a C program. |
| MoveFiles | Locates existing files on the system and moves or copies those files to a new location. |
| MsiPublishAssemblies | Manages the advertisement of CLR and Win32 assemblies. |
| MsiUnpublishAssemblies | Manages the unadvertisement of CLR and Win32 assemblies that are being removed. |
| MultiStringValue | Use several of these elements to specify each registry value in a multiString registry value. |
| ODBCDataSource | ODBCDataSource for a Component |
| ODBCDriver | ODBCDriver for a Component |
| ODBCTranslator | ODBCTranslator for a Component |
| OptimizeCustomActions | Indicates whether custom actions can be skipped when applying the patch. |
| Package | Properties about the package to be placed in the Summary Information Stream. |
| Patch | The Patch element is analogous to the main function in a C program. |
| PatchBaseline | Identifies a set of product versions. |
| PatchCertificates | Identifies the possible signer certificates used to digitally sign patches. |
| PatchCreation | The PatchCreation element is analogous to the main function in a C program. |
| PatchFamily | Collection of items that should be kept from the differences between two products. |
| PatchFamilyRef | This will cause the entire contents of the Fragment containing the referenced PatchFamily to be used in the process of creating a patch. |
| PatchFiles | Queries the Patch table to determine which patches are to be applied. |
| PatchInformation | Properties about the patch to be placed in the Summary Information Stream. |
| PatchMetadata | Properties about the patch to be placed in the PatchMetadata table. |
| PatchProperty | A property for this patch database. |
| PatchSequence | Sequence information for this patch database. |
| Permission | Sets ACLs on File, Registry, or CreateFolder. |
| ProcessComponents | Registers and unregisters components, their key paths, and the component clients. |
| Product | The Product element is analogous to the main function in a C program. |
| ProgId | ProgId registration for parent Component. |
| ProgressText | |
| Property | Property value for a Product or Module. |
| PropertyRef | Reference to a Property value. |
| ProtectFile | Specifies a file to be protected. |
| ProtectRange | Specifies part of a file that cannot be overwritten during patching. |
| Publish | |
| PublishComponents | Manages the advertisement of the components from the PublishComponent table. |
| PublishFeatures | Writes each feature's state into the system registry. |
| PublishProduct | Manages the advertisement of the product information with the system. |
| RadioButton | Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup). |
| RadioButtonGroup | Set of radio buttons tied to the specified Property |
| RegisterClassInfo | Manages the registration of COM class information with the system. |
| RegisterComPlus | Registers COM+ applications. |
| RegisterExtensionInfo | Manages the registration of extension related information with the system. |
| RegisterFonts | Registers installed fonts with the system. |
| RegisterMIMEInfo | Registers MIME-related registry information with the system. |
| RegisterProduct | Registers the product information with the installer. |
| RegisterProgIdInfo | Manages the registration of OLE ProgId information with the system. |
| RegisterTypeLibraries | Registers type libraries with the system. |
| RegisterUser | Registers the user information with the installer to identify the user of a product. |
| Registry | |
| RegistryKey | Used for organization of child RegistryValue elements or to create a registry key (and optionally remove it during uninstallation). |
| RegistrySearch | Searches for file, directory or registry key and assigns to value of parent Property |
| RegistrySearchRef | References an existing RegistrySearch element. |
| RegistryValue | Used to create a registry value. For multi-string values, this can be used to prepend or append values. |
| RemoveDuplicateFiles | Deletes files installed by the DuplicateFiles action. |
| RemoveEnvironmentStrings | Modifies the values of environment variables. |
| RemoveExistingProducts | Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. |
| RemoveFile | Remove a file(s) if the parent component is selected for installation or removal. |
| RemoveFiles | Removes files previously installed by the InstallFiles action. |
| RemoveFolder | Remove an empty folder if the parent component is selected for installation or removal. |
| RemoveFolders | Removes any folders linked to components set to be removed or run from source. |
| RemoveIniValues | Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. |
| RemoveODBC | Removes the data sources, translators, and drivers listed for removal during the installation. |
| RemoveRegistryKey | Used for removing registry keys and all child keys either during install or uninstall. |
| RemoveRegistryValue | Used to remove a registry value during installation. |
| RemoveRegistryValues | Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled. |
| RemoveShortcuts | Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. |
| ReplacePatch | A patch that is deprecated by this patch. |
| ReserveCost | Disk cost to reserve in a folder for running locally and/or from source. |
| ResolveSource | Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. |
| RMCCPSearch | Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. |
| Row | Row data for a Custom Table |
| ScheduleReboot | Prompts the user to restart the system at the end of installation. |
| SelfRegModules | Processes all modules listed in the SelfReg table and registers all installed modules with the system. |
| SelfUnregModules | Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. |
| ServiceArgument | Argument used in ServiceControl parent |
| ServiceControl | Starts, stops, and removes services for parent Component. |
| ServiceDependency | Service or group of services that must start before the parent service. |
| ServiceInstall | Adds and removes services for parent Component. |
| SetDirectory | Sets a Directory to a particular value. |
| SetODBCFolders | Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. |
| SetProperty | Sets a Property to a particular value. |
| SFPCatalog | Adds a system file protection update catalog file |
| SFPFile | Provides a many-to-many mapping from the SFPCatalog table to the File table |
| Shortcut | Shortcut, default target is parent File, CreateFolder, or Component's Directory |
| Show | |
| StartServices | Starts system services. |
| StopServices | Stops system services. |
| Subscribe | Sets attributes for events in the EventMapping table |
| Substitution | Specifies the configurable fields of a module database and provides a template for the configuration of each field. |
| SymbolPath | A path to symbols. |
| TargetFile | Information about specific files in a target image. |
| TargetImage | Contains information about the target images of the product. |
| TargetProductCode | A product code for a product that may receive this patch (or '*' for all products). |
| Text | An alternative to using the Text attribute when the value contains special XML characters like <, >, or &. |
| TextStyle | |
| TypeLib | Register a type library (TypeLib). |
| UI | Enclosing element to compartmentalize UI specifications. |
| UIRef | Reference to a UI element. This will force the entire referenced Fragment's contents to be included in the installer database. |
| UIText | Text associated with certain controls |
| UnpublishComponents | Manages the unadvertisement of components listed in the PublishComponent table. |
| UnpublishFeatures | Removes selection-state and feature-component mapping information from the registry. |
| UnregisterClassInfo | Manages the removal of COM class information from the system registry. |
| UnregisterComPlus | Removes COM+ applications from the registry. |
| UnregisterExtensionInfo | Manages the removal of extension-related information from the system registry. |
| UnregisterFonts | Removes registration information about installed fonts from the system. |
| UnregisterMIMEInfo | Unregisters MIME-related registry information from the system. |
| UnregisterProgIdInfo | Manages the unregistration of OLE ProgId information with the system. |
| UnregisterTypeLibraries | Unregisters type libraries from the system. |
| Upgrade | Upgrade info for a particular UpgradeCode |
| UpgradeFile | Specifies files to either ignore or to specify optional data about a file. |
| UpgradeImage | Contains information about the upgraded images of the product. |
| UpgradeVersion | |
| Validate | 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. |
| ValidateProductID | Sets the ProductID property to the full product identifier. |
| Verb | Verb definition for an Extension. |
| Wix | This is the top-level container element for every wxs file. |
| WixVariable | This element exposes advanced WiX functionality. |
| WriteEnvironmentStrings | Modifies the values of environment variables. |
| WriteIniValues | Writes the .ini file information that the application needs written to its .ini files. |
| WriteRegistryValues | Sets up an application's registry information. |
Restricting anyType
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| CostFinalize | ActionSequenceType | 1..1 | Ends the internal installation costing process begun by the CostInitialize action. |
| CostInitialize | ActionSequenceType | 1..1 | Initiates the internal installation costing process. |
| Custom | string (extension) | 0..* | Use to sequence a custom action. |
| FileCost | ActionSequenceType | 1..1 | Initiates dynamic costing of standard installation actions. |
| InstallAdminPackage | ActionSequenceType | 1..1 | Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text. |
| InstallFiles | ActionSequenceType | 1..1 | Copies files specified in the File table from the source directory to the destination directory. |
| InstallFinalize | ActionSequenceType | 1..1 | Marks the end of a sequence of actions that change the system. |
| InstallInitialize | ActionSequenceType | 1..1 | Marks the beginning of a sequence of actions that change the system. |
| InstallValidate | ActionSequenceType | 1..1 | Verifies that all costed volumes have enough space for the installation. |
| LaunchConditions | ActionModuleSequenceType | 1..1 | Queries the LaunchCondition table and evaluates each conditional statement recorded there. |
| ResolveSource | ActionModuleSequenceType | 0..1 | Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. |
<xs:element name="AdminExecuteSequence">
<xs:annotation>
<xs:appinfo>
<xse:msiRef table="AdminExecuteSequence" href="http://msdn.microsoft.com/library/aa367540.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Use to sequence a custom action.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="CostInitialize">
<xs:annotation>
<xs:documentation>Initiates the internal installation costing process.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="FileCost">
<xs:annotation>
<xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="CostFinalize">
<xs:annotation>
<xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallValidate">
<xs:annotation>
<xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallInitialize">
<xs:annotation>
<xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallAdminPackage">
<xs:annotation>
<xs:documentation>Copies the product database to the administrative installation point.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallFiles">
<xs:annotation>
<xs:documentation>Copies files specified in the File table from the source directory to the destination directory.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallFinalize">
<xs:annotation>
<xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="LaunchConditions">
<xs:annotation>
<xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ResolveSource" minOccurs="0">
<xs:annotation>
<xs:documentation>Determines the location of the source and sets the SourceDir property if the source has not been resolved yet.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
Restricting anyType
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| CostFinalize | ActionSequenceType | 1..1 | Ends the internal installation costing process begun by the CostInitialize action. |
| CostInitialize | ActionSequenceType | 1..1 | Initiates the internal installation costing process. |
| Custom | string (extension) | 0..* | Use to sequence a custom action. |
| ExecuteAction | ActionSequenceType | 1..1 | Initiates the execution sequence. |
| FileCost | ActionSequenceType | 1..1 | Initiates dynamic costing of standard installation actions. |
| InstallAdminPackage | ActionSequenceType | 1..1 | Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text. |
| InstallFiles | ActionSequenceType | 1..1 | Copies files specified in the File table from the source directory to the destination directory. |
| InstallFinalize | ActionSequenceType | 1..1 | Marks the end of a sequence of actions that change the system. |
| InstallInitialize | ActionSequenceType | 1..1 | Marks the beginning of a sequence of actions that change the system. |
| InstallValidate | ActionSequenceType | 1..1 | Verifies that all costed volumes have enough space for the installation. |
| LaunchConditions | ActionModuleSequenceType | 1..1 | Queries the LaunchCondition table and evaluates each conditional statement recorded there. |
| Show | string (extension) | 0..* | |
<xs:element name="AdminUISequence">
<xs:annotation>
<xs:appinfo>
<xse:msiRef table="AdminUISequence" href="http://msdn.microsoft.com/library/aa367544.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Use to sequence a custom action.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="Show" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="CostInitialize">
<xs:annotation>
<xs:documentation>Initiates the internal installation costing process.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="FileCost">
<xs:annotation>
<xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="CostFinalize">
<xs:annotation>
<xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ExecuteAction">
<xs:annotation>
<xs:documentation>Initiates the execution sequence.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallValidate">
<xs:annotation>
<xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallInitialize">
<xs:annotation>
<xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallAdminPackage">
<xs:annotation>
<xs:documentation>Copies the product database to the administrative installation point.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallFiles">
<xs:annotation>
<xs:documentation>Copies files specified in the File table from the source directory to the destination directory.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallFinalize">
<xs:annotation>
<xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="LaunchConditions">
<xs:annotation>
<xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
Restricting anyType
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| CostFinalize | ActionSequenceType | 1..1 | Ends the internal installation costing process begun by the CostInitialize action. |
| CostInitialize | ActionSequenceType | 1..1 | Initiates the internal installation costing process. |
| CreateShortcuts | ActionSequenceType | 1..1 | Manages the creation of shortcuts. |
| Custom | string (extension) | 0..* | Use to sequence a custom action. |
| InstallFinalize | ActionSequenceType | 1..1 | Marks the end of a sequence of actions that change the system. |
| InstallInitialize | ActionSequenceType | 1..1 | Marks the beginning of a sequence of actions that change the system. |
| InstallValidate | ActionSequenceType | 1..1 | Verifies that all costed volumes have enough space for the installation. |
| MsiPublishAssemblies | ActionSequenceType | 1..1 | Manages the advertisement of CLR and Win32 assemblies. |
| PublishComponents | ActionSequenceType | 1..1 | Manages the advertisement of the components from the PublishComponent table. |
| PublishFeatures | ActionSequenceType | 1..1 | Writes each feature's state into the system registry. |
| PublishProduct | ActionSequenceType | 1..1 | Manages the advertisement of the product information with the system. |
| RegisterClassInfo | ActionSequenceType | 1..1 | Manages the registration of COM class information with the system. |
| RegisterExtensionInfo | ActionSequenceType | 1..1 | Manages the registration of extension related information with the system. |
| RegisterMIMEInfo | ActionSequenceType | 1..1 | Registers MIME-related registry information with the system. |
| RegisterProgIdInfo | ActionSequenceType | 1..1 | Manages the registration of OLE ProgId information with the system. |
<xs:element name="AdvertiseExecuteSequence">
<xs:annotation>
<xs:appinfo>
<xse:msiRef table="AdvtExecuteSequence" href="http://msdn.microsoft.com/library/aa367551.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="CostInitialize">
<xs:annotation>
<xs:documentation>Initiates the internal installation costing process.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="CostFinalize">
<xs:annotation>
<xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Use to sequence a custom action. The only custom actions that are allowed in the AdvtExecuteSequence are type 19 (0x013) type 35 (0x023) and type 51 (0x033).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallValidate">
<xs:annotation>
<xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallInitialize">
<xs:annotation>
<xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="CreateShortcuts">
<xs:annotation>
<xs:documentation>Manages the creation of shortcuts.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="RegisterClassInfo">
<xs:annotation>
<xs:documentation>Manages the registration of COM class information with the system.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="RegisterExtensionInfo">
<xs:annotation>
<xs:documentation>Manages the registration of extension related information with the system.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="RegisterMIMEInfo">
<xs:annotation>
<xs:documentation>Registers MIME-related registry information with the system.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="RegisterProgIdInfo">
<xs:annotation>
<xs:documentation>Manages the registration of OLE ProgId information with the system.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="PublishComponents">
<xs:annotation>
<xs:documentation>Manages the advertisement of the components from the PublishComponent table.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="PublishFeatures">
<xs:annotation>
<xs:documentation>Writes each feature's state into the system registry.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="PublishProduct">
<xs:annotation>
<xs:documentation>Manages the advertisement of the product information with the system.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="InstallFinalize">
<xs:annotation>
<xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation>
</xs:annotation>
</xs:element>
<!-- Windows Installer 1.5 actions -->
<xs:element ref="MsiPublishAssemblies">
<xs:annotation>
<xs:documentation>Manages the advertisement of CLR and Win32 assemblies.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
Ensures the needed amount of space exists in the registry.
Type ActionSequenceType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
The condition for this action may be specified in the element's inner text.
<xs:element name="AllocateRegistrySpace" type="ActionSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:msiRef action="AllocateRegistrySpace" href="http://msdn.microsoft.com/library/aa367554.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text.</xs:documentation>
</xs:annotation>
</xs:element>
Optional way for defining AppData, generally used for complex CDATA.
Type string
<xs:element name="AppData" type="xs:string">
<xs:annotation>
<xs:documentation>Optional way for defining AppData, generally used for complex CDATA.</xs:documentation>
</xs:annotation>
</xs:element>
Application ID containing DCOM information for the associated application GUID.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| ActivateAtStorage | YesNoType | No | Set this value to 'yes' to configure the client to activate on the same system as persistent storage. |
|
| Advertise | YesNoType | No | Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to generate Registry rows that perform similar registration (without the often problematic Windows Installer advertising behavior). |
|
| Description | string | No | Set this value to the description of the AppId. |
|
| DllSurrogate | string | No | Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value. |
|
| Id | Guid | Yes | Set this value to the AppID GUID that corresponds to the named executable. |
|
| LocalService | string | No | Set this value to the name of a service to allow the object to be installed as a Win32 service. |
|
| RemoteServerName | string | No | Set this value to the name of the remote server to configure the client to request the object be run at a particular machine whenever an activation function is called for which a COSERVERINFO structure is not specified. |
|
| RunAsInteractiveUser | YesNoType | No | Set this value to 'yes' to configure a class to run under the identity of the user currently logged on and connected to the interactive desktop when activated by a remote client without being written as a Win32 service. |
|
| ServiceParameters | string | No | Set this value to the parameters to be passed to a LocalService on invocation. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| Class | anyType (restriction) | 1..1 | COM Class registration for parent Component. |
If this element is nested under a Fragment, Module, or Product element, it must be advertised.
<xs:element name="AppId">
<xs:annotation>
<xs:documentation>
Application ID containing DCOM information for the associated application GUID.
If this element is nested under a Fragment, Module, or Product element, it must be
advertised.
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="AppId" href="http://msdn.microsoft.com/library/aa367566.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:remarks xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension">
When being used in unadvertised mode, the attributes in the AppId element correspond to registry keys
as follows (values that can be specified in authoring are in bold):
<html:dl xmlns:html="http://www.w3.org/1999/xhtml"><html:dt>Id</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\AppID\{<html:b>Id</html:b>}]<html:br /></html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br /></html:dd></html:dl></html:dd><html:dt>ActivateAtStorage</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\AppID\{<html:b>Id</html:b>}]<html:br />
ActivateAtStorage="<html:b>ActivateAtStorage</html:b>"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br />
ActivateAtStorage="<html:b>Y</html:b>"
</html:dd></html:dl></html:dd><html:dt>Description</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\AppID\{<html:b>Id</html:b>}]<html:br />
@="<html:b>Description</html:b>"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br />
@="<html:b>My AppId Description</html:b>"
</html:dd></html:dl></html:dd><html:dt>DllSurrogate</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\AppID\{<html:b>Id</html:b>}]<html:br />
DllSurrogate="<html:b>DllSurrogate</html:b>"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br />
DllSurrogate="<html:b>C:\surrogate.exe</html:b>"
</html:dd></html:dl></html:dd><html:dt>LocalService</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\AppID\{<html:b>Id</html:b>}]<html:br />
LocalService="<html:b>LocalService</html:b>"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br />
LocalService="<html:b>MyServiceName</html:b>"
</html:dd></html:dl></html:dd><html:dt>RemoteServerName</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\AppID\{<html:b>Id</html:b>}]<html:br />
RemoteServerName="<html:b>RemoteServerName</html:b>"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br />
RemoteServerName="<html:b>MyRemoteServer</html:b>"
</html:dd></html:dl></html:dd><html:dt>RunAsInteractiveUser</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\AppID\{<html:b>Id</html:b>}]<html:br />
RunAs="<html:b>RunAsInteractiveUser</html:b>"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br />
RunAs="<html:b>Interactive User</html:b>"
</html:dd></html:dl></html:dd><html:dt>ServiceParameters</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\AppID\{<html:b>Id</html:b>}]<html:br />
ServiceParameters="<html:b>ServiceParameters</html:b>"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br />
ServiceParameters="<html:b>-param</html:b>"
</html:dd></html:dl></html:dd></html:dl></xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Class" />
</xs:choice>
<xs:attribute name="ActivateAtStorage" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set this value to 'yes' to configure the client to activate on the same system as persistent storage.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Advertise" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to
generate Registry rows that perform similar registration (without the often problematic Windows Installer
advertising behavior).
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Description" type="xs:string">
<xs:annotation>
<xs:documentation>
Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DllSurrogate" type="xs:string">
<xs:annotation>
<xs:documentation>
Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE
process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Id" type="Guid" use="required">
<xs:annotation>
<xs:documentation>
Set this value to the AppID GUID that corresponds to the named executable.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LocalService" type="xs:string">
<xs:annotation>
<xs:documentation>
Set this value to the name of a service to allow the object to be installed as a Win32 service.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RemoteServerName" type="xs:string">
<xs:annotation>
<xs:documentation>
Set this value to the name of the remote server to configure the client to request the object
be run at a particular machine whenever an activation function is called for which a COSERVERINFO
structure is not specified.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RunAsInteractiveUser" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set this value to 'yes' to configure a class to run under the identity of the user currently
logged on and connected to the interactive desktop when activated by a remote client without
being written as a Win32 service.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ServiceParameters" type="xs:string">
<xs:annotation>
<xs:documentation>
Set this value to the parameters to be passed to a LocalService on invocation.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Uses file signatures to search for existing versions of products.
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| After | string | No | The name of an action that this action should come after. |
|
| Before | string | No | The name of an action that this action should come before. |
|
| Overridable | YesNoType | No | If "yes", the sequencing of this action may be overridden by sequencing elsewhere. |
|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
The AppSearch action may use this information to determine where upgrades are to be installed. The AppSearch action can also be used to set a property to the existing value of an registry or .ini file entry. AppSearch should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents The AppSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The AppSearch action searches for file signatures using the CompLocator table first, the RegLocator table next, then the IniLocator table, and finally the DrLocator table. The condition for this action may be specified in the element's inner text.
<xs:element name="AppSearch" type="ActionModuleSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="ComponentSearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="FileSearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="IniFileSearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="RegistrySearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="AppSearch" href="http://msdn.microsoft.com/library/aa367579.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef action="AppSearch" href="http://msdn.microsoft.com/library/aa367578.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Uses file signatures to search for existing versions of products. The AppSearch action may use this information to determine where upgrades are to be installed. The AppSearch action can also be used to set a property to the existing value of an registry or .ini file entry. AppSearch should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents The AppSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The AppSearch action searches for file signatures using the CompLocator table first, the RegLocator table next, then the IniLocator table, and finally the DrLocator table. The condition for this action may be specified in the element's inner text.</xs:documentation>
</xs:annotation>
</xs:element>
The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Name of the attribute associated with the value specified in the Value column. |
|
| Value | string | No | Value associated with the name specified in the Name column. |
Always empty.
Consider using the Assembly attribute on File element to have the toolset populate these entries automatically.
<xs:element name="AssemblyName">
<xs:annotation>
<xs:documentation>
The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly.
Consider using the Assembly attribute on File element to have the toolset populate these entries automatically.
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="MsiAssemblyName" href="http://msdn.microsoft.com/library/aa370062.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the attribute associated with the value specified in the Value column.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Value" type="xs:string">
<xs:annotation>
<xs:documentation>Value associated with the name specified in the Name column.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Billboard to display during install of a Feature
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Unique identifier for the Billboard. |
|
| Feature | string | No | Feature whose state determines if the Billboard is shown. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
1..1 | ||
| Control | anyType (restriction) | 0..* | Contains the controls that appear on each dialog. |
<xs:element name="Billboard">
<xs:annotation>
<xs:documentation>
Billboard to display during install of a Feature
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="Billboard" href="http://msdn.microsoft.com/library/aa367823.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="BBControl" href="http://msdn.microsoft.com/library/aa367818.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Control" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Only controls of static type such as: Text, Bitmap, Icon, or custom control can be placed on a billboard.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Unique identifier for the Billboard.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Feature" type="xs:string">
<xs:annotation>
<xs:documentation>Feature whose state determines if the Billboard is shown.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Billboard action during which child Billboards are displayed
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Action name that determines when the Billboard should be shown. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
1..1 | ||
| Billboard | anyType (restriction) | 1..* | Billboard to display during install of a Feature |
<xs:element name="BillboardAction">
<xs:annotation>
<xs:documentation>
Billboard action during which child Billboards are displayed
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="Billboard" href="http://msdn.microsoft.com/library/aa367823.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="BBControl" href="http://msdn.microsoft.com/library/aa367818.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Billboard" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Order of Billboard elements determines order of display</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Action name that determines when the Billboard should be shown.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Binary data used for CustomAction elements and UI controls.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | The Id cannot by longer than 55 characters. |
|
| SourceFile | string | No | Path to the binary file. |
|
| src | string | No | ||
| SuppressModularization | YesNoType | No | Use to suppress modularization of this Binary identifier in merge modules. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| any | 1..1 | Allow any element from the ##other namespace. |
|
<xs:element name="Binary">
<xs:annotation>
<xs:documentation>
Binary data used for CustomAction elements and UI controls.
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="Binary" href="http://msdn.microsoft.com/library/aa367825.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
<xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
</xs:documentation>
</xs:annotation>
</xs:any>
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The Id cannot by longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SourceFile" type="xs:string">
<xs:annotation>
<xs:documentation>Path to the binary file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="src" type="xs:string">
<xs:annotation>
<xs:appinfo>
<xse:deprecated ref="SourceFile" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SuppressModularization" type="YesNoType">
<xs:annotation>
<xs:documentation>
Use to suppress modularization of this Binary identifier in merge modules.
</xs:documentation>
</xs:annotation>
</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>
Used only for PatchFamilies to include only a binary table entry in a patch.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | The identifier of the Binary element to reference. |
Always empty.
<xs:element name="BinaryRef">
<xs:annotation>
<xs:documentation>Used only for PatchFamilies to include only a binary table entry in a patch.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The identifier of the Binary element to reference.</xs:documentation>
</xs:annotation>
</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>
Binds each executable or DLL that must be bound to the DLLs imported by it.
Type ActionSequenceType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
The condition for this action may be specified in the element's inner text.
<xs:element name="BindImage" type="ActionSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:msiRef table="BindImage" href="http://msdn.microsoft.com/library/aa367828.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef action="BindImage" href="http://msdn.microsoft.com/library/aa367827.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Binds each executable or DLL that must be bound to the DLLs imported by it. The condition for this action may be specified in the element's inner text.</xs:documentation>
</xs:annotation>
</xs:element>
Qualified published component for parent Component
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | Guid | Yes | A string GUID that represents the category of components being grouped together. |
|
| Qualifier | string | Yes | A text string that qualifies the value in the Id attribute. |
|
| AppData | string | No | An optional localizable text describing the category. |
|
| Feature | string | No | Feature that controls the advertisement of the category. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| AppData | string | 1..1 | Optional way for defining AppData, generally used for complex CDATA. |
<xs:element name="Category">
<xs:annotation>
<xs:documentation>
Qualified published component for parent Component
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="PublishComponent" href="http://msdn.microsoft.com/library/aa370921.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="AppData" />
</xs:sequence>
<xs:attribute name="Id" use="required" type="Guid">
<xs:annotation>
<xs:documentation>A string GUID that represents the category of components being grouped together.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Qualifier" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>A text string that qualifies the value in the Id attribute. A qualifier is used to distinguish multiple forms of the same Component, such as a Component that is implemented in multiple languages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AppData" type="xs:string">
<xs:annotation>
<xs:documentation>An optional localizable text describing the category. The string is commonly parsed by the application and can be displayed to the user. It should describe the category.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Feature" type="xs:string">
<xs:annotation>
<xs:documentation>Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component .</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| After | string | No | The name of an action that this action should come after. |
|
| Before | string | No | The name of an action that this action should come before. |
|
| Overridable | YesNoType | No | If "yes", the sequencing of this action may be overridden by sequencing elsewhere. |
|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
The CCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents the CCPSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The CCPSearch action must come before the RMCCPSearch action. The condition for this action may be specified in the element's inner text.
<xs:element name="CCPSearch" type="ActionModuleSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="RMCCPSearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="ComplianceCheck" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef action="CCPSearch" href="http://msdn.microsoft.com/library/aa367845.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The CCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents the CCPSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The CCPSearch action must come before the RMCCPSearch action. The condition for this action may be specified in the element's inner text.</xs:documentation>
</xs:annotation>
</xs:element>
COM Class registration for parent Component.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | Guid | Yes | The Class identifier (CLSID) of a COM server. |
|
| Context | anySimpleType (list) | Yes | The server context(s) for this server. |
|
| Description | string | No | Localized description associated with the Class ID and Program ID. |
|
| AppId | Guid | No | This attribute is only allowed when a Class is advertised. |
|
| Icon | string | No | The file providing the icon associated with this CLSID. |
|
| IconIndex | integer | No | Icon index into the icon file. |
|
| Handler | string | No | The default inproc handler. |
|
| Argument | string | No | This column is optional only when the Context column is set to "LocalServer" or "LocalServer32" server context. |
|
| RelativePath | YesNoType | No | When the value is "yes", the bare file name can be used for COM servers. |
|
| Advertise | YesNoType | No | Set this value to "yes" in order to create a normal Class table row. Set this value to "no" in order to generate Registry rows that perform similar registration (without the often problematic Windows Installer advertising behavior). |
|
| ThreadingModel | NMTOKEN (restriction) | No | Threading model for the CLSID. |
|
| Version | string | No | Version for the CLSID. |
|
| Insertable | YesNoType | No | Specifies the CLISD may be insertable. |
|
| Programmable | YesNoType | No | Specifies the CLSID may be programmable. |
|
| Server | string | No | May only be specified if the value of the Advertise attribute is "no". |
|
| ShortPath | YesNoType | No | Specifies whether or not to use the short path for the COM server. |
|
| SafeForScripting | YesNoType | No | May only be specified if the value of the Advertise attribute is "no". |
|
| SafeForInitializing | YesNoType | No | May only be specified if the value of the Advertise attribute is "no". |
|
| Control | YesNoType | No | Set this attribute's value to 'yes' to identify an object as an ActiveX Control. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| FileTypeMask | anyType (restriction) | 1..1 | FileType data for class Id registration. |
| Interface | anyType (restriction) | 1..1 | COM Interface registration for parent Typelib. |
| ProgId | anyType (restriction) | 1..1 | ProgId registration for parent Component. |
<xs:element name="Class">
<xs:annotation>
<xs:documentation>COM Class registration for parent Component.</xs:documentation>
<xs:appinfo>
<xse:seeAlso ref="AppId" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Class" href="http://msdn.microsoft.com/library/aa367861.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="ProgId" href="http://msdn.microsoft.com/library/aa370879.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="AppId" href="http://msdn.microsoft.com/library/aa367566.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:remarks xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension">
When being used in unadvertised mode, the attributes in the Class element correspond to registry keys
as follows (values that can be specified in authoring are in bold):
<html:dl xmlns:html="http://www.w3.org/1999/xhtml"><html:dt>Id/Context/Server</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\CLSID\{<html:b>Id</html:b>}\<html:b>Context1</html:b>]<html:br />
@="[!<html:b>Server</html:b>]"<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\<html:b>Context2</html:b>]<html:br />
@="[!<html:b>Server</html:b>]"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\<html:b>LocalServer</html:b>]<html:br />
@="[!<html:b>comserv.dll</html:b>]"<html:br />
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\<html:b>LocalServer32</html:b>]<html:br />
@="[!<html:b>comserv.dll</html:b>]"
</html:dd></html:dl></html:dd><html:dt>AppId</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\CLSID\{<html:b>Id</html:b>}]<html:br />
AppId="{<html:b>AppId</html:b>}"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br />
AppId="{<html:b>00000000-89AB-0000-0123-000000000000</html:b>}"
</html:dd></html:dl></html:dd><html:dt>Argument</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\CLSID\{<html:b>Id</html:b>}\<html:b>Context</html:b>]<html:br />
@="[!<html:b>Server</html:b>] <html:b>Argument</html:b>"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\<html:b>LocalServer32</html:b>]<html:br />
@="[!<html:b>comserv.dll</html:b>] <html:b>/arg1 /arg2 /arg3</html:b>"<html:br /></html:dd></html:dl></html:dd><html:dt>Control</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
Value "yes" specified:<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\Control]
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Control]
</html:dd></html:dl></html:dd><html:dt>Description</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\CLSID\{<html:b>Id</html:b>}]<html:br />
@="<html:b>Description</html:b>"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br />
@="<html:b>Description of Example COM Component</html:b>"
</html:dd></html:dl></html:dd><html:dt>Handler</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
Value "1" specified:<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\InprocHandler]<html:br />
@="ole.dll"<html:br />
Value "2" specified:<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\InprocHandler32]<html:br />
@="ole32.dll"<html:br />
Value "3" specified:<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\InprocHandler]<html:br />
@="ole.dll"<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\InprocHandler32]<html:br />
@="ole32.dll"<html:br />
Other value specified:<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\InprocHandler32]<html:br />
@="<html:b>Handler</html:b>"
</html:dd><html:dt>Specific Example (for other value)</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\InprocHandler32]<html:br />
@="<html:b>handler.dll</html:b>"
</html:dd></html:dl></html:dd><html:dt>Icon/IconIndex</html:dt><html:dd>This is not currently handled properly.</html:dd><html:dt>Insertable</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
Value "no" specified:<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\NotInsertable]<html:br />
Value "yes" specified:<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\Insertable]
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Insertable]
</html:dd></html:dl></html:dd><html:dt>Programmable</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
Value "yes" specified:<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\Programmable]
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Programmable]
</html:dd></html:dl></html:dd><html:dt>RelativePath</html:dt><html:dd>Unsupported. Please contribute this back to WiX if you know.</html:dd><html:dt>SafeForInitializing</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
Value "yes" specified:<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
</html:dd></html:dl></html:dd><html:dt>SafeForScripting</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
Value "yes" specified:<html:br />
[HKCR\CLSID\{<html:b>Id</html:b>}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
</html:dd></html:dl></html:dd><html:dt>ThreadingModel</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\CLSID\{<html:b>Id</html:b>}\<html:b>Context</html:b>]<html:br />
ThreadingModel="<html:b>ThreadingModel</html:b>"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\<html:b>LocalServer32</html:b>]<html:br />
ThreadingModel="<html:b>Apartment</html:b>"
</html:dd></html:dl></html:dd><html:dt>TypeLibId (from parent TypeLib/@Id)</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\CLSID\{<html:b>Id</html:b>}\TypeLib]<html:br />
@="{<html:b>TypeLibId</html:b>}"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\TypeLib]<html:br />
@="{<html:b>11111111-89AB-1111-0123-111111111111</html:b>}"
</html:dd></html:dl></html:dd><html:dt>Version</html:dt><html:dd><html:dl><html:dt>In General</html:dt><html:dd>
[HKCR\CLSID\{<html:b>Id</html:b>}\Version]<html:br />
@="<html:b>Version</html:b>"
</html:dd><html:dt>Specific Example</html:dt><html:dd>
[HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Version]<html:br />
@="<html:b>1.0.0.0</html:b>"
</html:dd></html:dl></html:dd></html:dl></xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ProgId">
<xs:annotation>
<xs:documentation>A ProgId associated with Class must be a child element of the Class element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="FileTypeMask" />
<xs:element ref="Interface">
<xs:annotation>
<xs:documentation>These Interfaces will be registered with the parent Class and TypeLib (if present).</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:attribute name="Id" type="Guid" use="required">
<xs:annotation>
<xs:documentation>The Class identifier (CLSID) of a COM server.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Context" use="required">
<xs:annotation>
<xs:documentation>The server context(s) for this server.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:list>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="LocalServer">
<xs:annotation>
<xs:documentation>
A 16-bit local server application.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="LocalServer32">
<xs:annotation>
<xs:documentation>
A 32-bit local server application.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="InprocServer">
<xs:annotation>
<xs:documentation>
A 16-bit in-process server DLL.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="InprocServer32">
<xs:annotation>
<xs:documentation>
A 32-bit in-process server DLL.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:list>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Description" type="xs:string">
<xs:annotation>
<xs:documentation>Localized description associated with the Class ID and Program ID.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AppId" type="Guid">
<xs:annotation>
<xs:documentation>
This attribute is only allowed when a Class is advertised. Using this attribute will reference an Application ID
containing DCOM information for the associated application GUID. The value must correspond to an AppId/@Id of an
AppId element nested under a Fragment, Module, or Product element. To associate an AppId with a non-advertised
class, nest the class within a parent AppId element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Icon" type="xs:string">
<xs:annotation>
<xs:documentation>
The file providing the icon associated with this CLSID. Reference to an Icon element
(should match the Id attribute of an Icon element). This is currently not supported if the
value of the Advertise attribute is "no".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IconIndex" type="xs:integer">
<xs:annotation>
<xs:documentation>Icon index into the icon file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Handler" type="xs:string">
<xs:annotation>
<xs:documentation>
The default inproc handler. May be optionally provided only for Context = LocalServer or
LocalServer32. Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler
value). Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value).
Value of "3" creates 16-bit as well as 32-bit InprocHandlers. A non-numeric value is treated
as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value).
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Argument" type="xs:string">
<xs:annotation>
<xs:documentation>
This column is optional only when the Context column is set to "LocalServer"
or "LocalServer32" server context. The text is registered as the argument against
the OLE server and is used by OLE for invoking the server. Note that the resolution
of properties in the Argument field is limited. A property formatted as [Property] in
this field can only be resolved if the property already has the intended value when
the component owning the class is installed. For example, for the argument "[#MyDoc.doc]"
to resolve to the correct value, the same process must be installing the file MyDoc.doc and the
component that owns the class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RelativePath" type="YesNoType">
<xs:annotation>
<xs:documentation>
When the value is "yes", the bare file name can be used for COM servers. The installer
registers the file name only instead of the complete path. This enables the server in
the current directory to take precedence and allows multiple copies of the same component.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Advertise" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set this value to "yes" in order to create a normal Class table row. Set this value to
"no" in order to generate Registry rows that perform similar registration (without the
often problematic Windows Installer advertising behavior).
</xs:documentation>
</xs:annotation>
</xs:attribute>
<!-- Following attributes are not advertised, but add the appropriate rows to the Registry table -->
<xs:attribute name="ThreadingModel">
<xs:annotation>
<xs:documentation>
Threading model for the CLSID.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="apartment" />
<xs:enumeration value="free" />
<xs:enumeration value="both" />
<xs:enumeration value="neutral" />
<xs:enumeration value="single" />
<xs:enumeration value="rental" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Version" type="xs:string">
<xs:annotation>
<xs:documentation>
Version for the CLSID.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Insertable" type="YesNoType">
<xs:annotation>
<xs:documentation>
Specifies the CLISD may be insertable.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Programmable" type="YesNoType">
<xs:annotation>
<xs:documentation>
Specifies the CLSID may be programmable.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Server" type="xs:string">
<xs:annotation>
<xs:documentation>
May only be specified if the value of the Advertise attribute is "no". File Id of the
COM server file. If this element is nested under a File element, this value defaults to
the value of the parent File/@Id.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ShortPath" type="YesNoType">
<xs:annotation>
<xs:documentation>
Specifies whether or not to use the short path for the COM server. This can only apply when Adverstise is set to 'no'. The default is 'no' meaning that it will use the long file name for the COM server.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SafeForScripting" type="YesNoType">
<xs:annotation>
<xs:documentation>
May only be specified if the value of the Advertise attribute is "no".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SafeForInitializing" type="YesNoType">
<xs:annotation>
<xs:documentation>
May only be specified if the value of the Advertise attribute is "no".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Control" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Column definition for a Custom Table
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Identifier for the column. |
|
| PrimaryKey | YesNoType | No | Whether this column is a primary key. |
|
| Type | NMTOKEN (restriction) | Yes | The type of this column. |
|
| Width | integer | No | Width of this column. |
|
| Nullable | YesNoType | No | Whether this column can be left null. |
|
| Localizable | YesNoType | No | Whether this column can be localized. |
|
| MinValue | integer | No | Minimum value for a numeric value, date or version in this column. |
|
| MaxValue | integer | No | Maximum value for a numeric value, date or version in this column. |
|
| KeyTable | string | No | Table in which this column is an external key. |
|
| KeyColumn | integer | No | Column in the table in KeyTable attribute. |
|
| Category | NMTOKEN (restriction) | No | Category of this column. |
|
| Set | string | No | Semicolon delimited list of permissible values. |
|
| Description | string | No | Description of this column. |
|
| Modularize | NMTOKEN (restriction) | No | How this column should be modularized, if at all. |
Always empty.
<xs:element name="Column">
<xs:annotation>
<xs:documentation>Column definition for a Custom Table</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Identifier for the column.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PrimaryKey" type="YesNoType">
<xs:annotation>
<xs:documentation>Whether this column is a primary key.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Type" use="required">
<xs:annotation>
<xs:documentation>The type of this column.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="binary">
<xs:annotation>
<xs:documentation>
Column contains a path to a file that will be inserted into the column as a binary object.
If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="int">
<xs:annotation>
<xs:documentation>
Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="string">
<xs:annotation>
<xs:documentation>
Column contains a non-localizable string value.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Width" type="xs:integer">
<xs:annotation>
<xs:documentation>Width of this column.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Nullable" type="YesNoType">
<xs:annotation>
<xs:documentation>Whether this column can be left null.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Localizable" type="YesNoType">
<xs:annotation>
<xs:documentation>Whether this column can be localized.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MinValue" type="xs:integer">
<xs:annotation>
<xs:documentation>Minimum value for a numeric value, date or version in this column.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MaxValue" type="xs:integer">
<xs:annotation>
<xs:documentation>Maximum value for a numeric value, date or version in this column.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="KeyTable" type="xs:string">
<xs:annotation>
<xs:documentation>Table in which this column is an external key. Can be semicolon delimited.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="KeyColumn" type="xs:integer">
<xs:annotation>
<xs:documentation>Column in the table in KeyTable attribute.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Category">
<xs:annotation>
<xs:documentation>
Category of this column.
This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="Text" />
<xs:enumeration value="UpperCase" />
<xs:enumeration value="LowerCase" />
<xs:enumeration value="Integer" />
<xs:enumeration value="DoubleInteger" />
<xs:enumeration value="TimeDate" />
<xs:enumeration value="Identifier" />
<xs:enumeration value="Property" />
<xs:enumeration value="Filename" />
<xs:enumeration value="WildCardFilename" />
<xs:enumeration value="Path" />
<xs:enumeration value="Paths" />
<xs:enumeration value="AnyPath" />
<xs:enumeration value="DefaultDir" />
<xs:enumeration value="RegPath" />
<xs:enumeration value="Formatted" />
<xs:enumeration value="Template" />
<xs:enumeration value="Condition" />
<xs:enumeration value="Guid" />
<xs:enumeration value="Version" />
<xs:enumeration value="Language" />
<xs:enumeration value="Binary" />
<xs:enumeration value="CustomSource" />
<xs:enumeration value="Cabinet" />
<xs:enumeration value="Shortcut" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Set" type="xs:string">
<xs:annotation>
<xs:documentation>Semicolon delimited list of permissible values.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Description" type="xs:string">
<xs:annotation>
<xs:documentation>Description of this column.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Modularize">
<xs:annotation>
<xs:documentation>How this column should be modularized, if at all.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="None">
<xs:annotation>
<xs:documentation>
Column should not be modularized. This is the default value.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Column">
<xs:annotation>
<xs:documentation>
Column should be modularized.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Condition">
<xs:annotation>
<xs:documentation>
Column is a condition and should be modularized.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Icon">
<xs:annotation>
<xs:documentation>
When the column is an primary or foreign key to the Icon table it should be modularized special.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Property">
<xs:annotation>
<xs:documentation>
Any Properties in the column should be modularized.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="SemicolonDelimited">
<xs:annotation>
<xs:documentation>
Semi-colon list of keys, all of which need to be modularized.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
Set of items for a particular ComboBox control tied to an install Property
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Property | string | Yes | Property tied to this group |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
1..1 | ||
| ListItem | anyType (restriction) | 0..* | The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView. |
<xs:element name="ComboBox">
<xs:annotation>
<xs:documentation>
Set of items for a particular ComboBox control tied to an install Property
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="ComboBox" href="http://msdn.microsoft.com/library/aa367872.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Control" href="http://msdn.microsoft.com/library/aa368044.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Dialog" href="http://msdn.microsoft.com/library/aa368286.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="ListItem" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>entry for ComboBox table</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="Property" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>Property tied to this group</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Adds a row to the CCPSearch table.
Restricting anyType
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| any | 1..1 | Allow any element from the ##other namespace. |
|
|
1..1 | ||
| ComplianceDrive | anyType (restriction) | 0..1 | Sets the parent of a nested DirectorySearch element to CCP_DRIVE. |
| ComponentSearch | anyType (restriction) | 0..* | Searches for file or directory and assigns to value of parent Property. |
| RegistrySearch | anyType (restriction) | 0..* | Searches for file, directory or registry key and assigns to value of parent Property |
| IniFileSearch | anyType (restriction) | 0..* | Searches for file, directory or registry key and assigns to value of parent Property |
| DirectorySearch | anyType (restriction) | 0..* | Searches for directory and assigns to value of parent Property. |
<xs:element name="ComplianceCheck">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="Property" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="CCPSearch" href="http://msdn.microsoft.com/library/aa367846.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Signature" href="http://msdn.microsoft.com/library/aa371853.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Adds a row to the CCPSearch table.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:sequence>
<xs:element ref="ComplianceDrive" minOccurs="0">
<xs:annotation>
<xs:documentation>Starts searches from the CCP_DRIVE.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ComponentSearch" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="RegistrySearch" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="IniFileSearch" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="DirectorySearch" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
<xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
</xs:documentation>
</xs:annotation>
</xs:any>
</xs:choice>
<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>
Sets the parent of a nested DirectorySearch element to CCP_DRIVE.
Restricting anyType
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
1..1 | ||
| DirectorySearch | anyType (restriction) | 1..1 | Searches for directory and assigns to value of parent Property. |
| DirectorySearchRef | anyType (restriction) | 1..1 | References an existing DirectorySearch element. |
<xs:element name="ComplianceDrive">
<xs:annotation>
<xs:documentation>Sets the parent of a nested DirectorySearch element to CCP_DRIVE.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element ref="DirectorySearch" />
<xs:element ref="DirectorySearchRef" />
</xs:choice>
</xs:complexType>
</xs:element>
Component for parent Directory
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Component identifier; this is the primary key for identifying components. |
|
| ComPlusFlags | integer | No | Set this attribute to create a ComPlus entry. |
|
| DisableRegistryReflection | YesNoType | No | Set this attribute to 'yes' in order to disable registry reflection on all existing and new registry keys affected by this component. |
|
| Directory | string | No | Sets the Directory of the Component. |
|
| DiskId | integer | No | This attribute must be set either on a Component element or all of its children File elements. |
|
| Feature | string | No | Identifies a feature to which this component belongs, as a shorthand for a child ComponentRef element of the Feature element. |
|
| Guid | ComponentGuid | Yes | This value should be a guid that uniquely identifies this component's contents, language, platform, and version. |
|
| KeyPath | YesNoType | No | If this attribute's value is set to 'yes', then the Directory of this Component is used as the KeyPath. |
|
| Location | NMTOKEN (restriction) | No | ||
| NeverOverwrite | YesNoType | No | If this attribute is set to 'yes', the installer does not install or reinstall the component if a key path file or a key path registry entry for the component already exists. |
|
| Permanent | YesNoType | No | If this attribute is set to 'yes', the installer does not remove the component during an uninstall. |
|
| Shared | YesNoType | No | If this attribute's value is set to 'yes', enables advanced patching semantics for Components that are shared across multiple Products. |
|
| SharedDllRefCount | YesNoType | No | If this attribute's value is set to 'yes', the installer increments the reference count in the shared DLL registry of the component's key file. |
|
| Transitive | YesNoType | No | If this attribute is set to 'yes', the installer reevaluates the value of the statement in the Condition upon a reinstall. |
|
| UninstallWhenSuperseded | YesNoType | No | If this attribute is set to 'yes', the installer will uninstall the Component's files and registry keys when it is superseded by a patch. |
|
| Win64 | YesNoType | No | Set this attribute to 'yes' to mark this as a 64-bit component. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| any | 1..1 | Allow any element from the ##other namespace. |
|
| AppId | anyType (restriction) | 1..1 | Application ID containing DCOM information for the associated application GUID. |
| Category | anyType (restriction) | 1..1 | Qualified published component for parent Component |
| Class | anyType (restriction) | 1..1 | COM Class registration for parent Component. |
| Condition | string (extension) | 1..1 | Conditions for components, controls, features, and products. |
| CopyFile | anyType (restriction) | 1..1 | Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. |
| CreateFolder | anyType (restriction) | 1..1 | Create folder as part of parent Component. |
| Environment | anyType (restriction) | 1..1 | Environment variables added or removed for the parent component. |
| Extension | anyType (restriction) | 1..1 | Extension for a Component |
| File | anyType (restriction) | 1..1 | File specification for File table, must be child node of Component. |
| IniFile | anyType (restriction) | 1..1 | Adds or removes .ini file entries. |
| Interface | anyType (restriction) | 1..1 | COM Interface registration for parent Typelib. |
| IsolateComponent | anyType (restriction) | 1..1 | Shared Component to be privately replicated in folder of parent Component |
| ODBCDataSource | anyType (restriction) | 1..1 | ODBCDataSource for a Component |
| ODBCDriver | anyType (restriction) | 1..1 | ODBCDriver for a Component |
| ODBCTranslator | anyType (restriction) | 1..1 | ODBCTranslator for a Component |
| ProgId | anyType (restriction) | 1..1 | ProgId registration for parent Component. |
| Registry | anyType (restriction) | 1..1 | |
| RegistryKey | anyType (restriction) | 1..1 | Used for organization of child RegistryValue elements or to create a registry key (and optionally remove it during uninstallation). |
| RegistryValue | anyType (restriction) | 1..1 | Used to create a registry value. For multi-string values, this can be used to prepend or append values. |
| RemoveFile | anyType (restriction) | 1..1 | Remove a file(s) if the parent component is selected for installation or removal. |
| RemoveFolder | anyType (restriction) | 1..1 | Remove an empty folder if the parent component is selected for installation or removal. |
| RemoveRegistryKey | anyType (restriction) | 1..1 | Used for removing registry keys and all child keys either during install or uninstall. |
| RemoveRegistryValue | anyType (restriction) | 1..1 | Used to remove a registry value during installation. |
| ReserveCost | anyType (restriction) | 1..1 | Disk cost to reserve in a folder for running locally and/or from source. |
| ServiceControl | anyType (restriction) | 1..1 | Starts, stops, and removes services for parent Component. |
| ServiceInstall | anyType (restriction) | 1..1 | Adds and removes services for parent Component. |
| Shortcut | anyType (restriction) | 1..1 | Shortcut, default target is parent File, CreateFolder, or Component's Directory |
| SymbolPath | anyType (restriction) | 1..1 | A path to symbols. |
| TypeLib | anyType (restriction) | 1..1 | Register a type library (TypeLib). |
<xs:element name="Component">
<xs:annotation>
<xs:documentation>Component for parent Directory</xs:documentation>
<xs:appinfo>
<xse:seeAlso ref="ComponentRef" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="Media" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Component" href="http://msdn.microsoft.com/library/aa368007.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Condition" href="http://msdn.microsoft.com/library/aa368014.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Directory" href="http://msdn.microsoft.com/library/aa368295.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:howtoRef href="add_a_file.htm" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension">How To: Add a file to your installer</xse:howtoRef>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="AppId" />
<xs:element ref="Category" />
<xs:element ref="Class" />
<xs:element ref="Condition" />
<xs:element ref="CopyFile" />
<xs:element ref="CreateFolder" />
<xs:element ref="Environment" />
<xs:element ref="Extension" />
<xs:element ref="File" />
<xs:element ref="IniFile" />
<xs:element ref="Interface" />
<xs:element ref="IsolateComponent" />
<xs:element ref="ODBCDataSource" />
<xs:element ref="ODBCDriver" />
<xs:element ref="ODBCTranslator" />
<xs:element ref="ProgId" />
<xs:element ref="Registry" />
<xs:element ref="RegistryKey" />
<xs:element ref="RegistryValue" />
<xs:element ref="RemoveFile" />
<xs:element ref="RemoveFolder" />
<xs:element ref="RemoveRegistryKey" />
<xs:element ref="RemoveRegistryValue" />
<xs:element ref="ReserveCost" />
<xs:element ref="ServiceControl" />
<xs:element ref="ServiceInstall" />
<xs:element ref="Shortcut" />
<xs:element ref="SymbolPath" />
<xs:element ref="TypeLib" />
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
<xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
</xs:documentation>
</xs:annotation>
</xs:any>
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Component identifier; this is the primary key for identifying components.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ComPlusFlags" type="xs:integer">
<xs:annotation>
<xs:documentation>
Set this attribute to create a ComPlus entry. The value should be the export flags used
during the generation of the .msi file. For more information see the COM+ documentation
in the Platform SDK.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisableRegistryReflection" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set this attribute to 'yes' in order to disable registry reflection on all existing and
new registry keys affected by this component.
When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key
being accessed by the component.
This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Directory" type="xs:string">
<xs:annotation>
<xs:documentation>
Sets the Directory of the Component. If this element is nested under a Directory element,
this value defaults to the value of the parent Directory/@Id.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DiskId" type="xs:integer">
<xs:annotation>
<xs:documentation>
This attribute must be set either on a Component element or all of its children File
elements. The value of this attribute should correspond to the Id attribute of a
Media element authored elsewhere. By creating this connection between a component (or
particular files), you set the packaging options to the values specified in the Media
element (values such as compression level, cab embedding, etc...).
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Feature" type="xs:string">
<xs:annotation>
<xs:documentation>
Identifies a feature to which this component belongs, as a shorthand for a child
ComponentRef element of the Feature element. The value of this attribute should
correspond to the Id attribute of a Feature element authored elsewhere. Note that
a single component can belong to multiple features but this attribute allows you
to specify only a single feature.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Guid" type="ComponentGuid" use="required">
<xs:annotation>
<xs:documentation>
This value should be a guid that uniquely identifies this component's contents, language, platform, and version.
It's also possible to set the value to an empty string to specify an unmanaged component.
Unmanaged components are a security vulnerability because the component cannot be removed or repaired
by Windows Installer (it is essentially an unpatchable, permanent component). Therefore, a guid should
always be specified for any component which contains resources that may need to be patched in the future.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="KeyPath" type="YesNoType">
<xs:annotation>
<xs:documentation>
If this attribute's value is set to 'yes', then the Directory of this Component is used
as the KeyPath. To set a Registry key or File as the KeyPath of a component, set the
KeyPath attribute to 'yes' on one of those child elements.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Location">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="local">
<xs:annotation>
<xs:documentation>
Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="source">
<xs:annotation>
<xs:documentation>
Enforces that the component can only be run from the source (it cannot be run from the user's computer).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="either">
<xs:annotation>
<xs:documentation>
Allows the component to run from source or locally.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="NeverOverwrite" type="YesNoType">
<xs:annotation>
<xs:documentation>
If this attribute is set to 'yes', the installer does not install or reinstall the
component if a key path file or a key path registry entry for the component already
exists. The application does register itself as a client of the component. Use this
flag only for components that are being registered by the Registry table. Do not use
this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and
Verb tables.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Permanent" type="YesNoType">
<xs:annotation>
<xs:documentation>
If this attribute is set to 'yes', the installer does not remove the component during
an uninstall. The installer registers an extra system client for the component in
the Windows Installer registry settings (which basically just means that at least one
product is always referencing this component). Note that this option differs from the
behavior of not setting a guid because although the component is permanent, it is still
patchable (because Windows Installer still tracks it), it's just not uninstallable.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Shared" type="YesNoType">
<xs:annotation>
<xs:documentation>
If this attribute's value is set to 'yes', enables advanced patching semantics for
Components that are shared across multiple Products. Specifically, the Windows Installer
will cache the shared files to improve patch uninstall. This functionality is available
in Windows Installer 4.5 and later.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SharedDllRefCount" type="YesNoType">
<xs:annotation>
<xs:documentation>
If this attribute's value is set to 'yes', the installer increments the reference count
in the shared DLL registry of the component's key file. If this bit is not set, the
installer increments the reference count only if the reference count already exists.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Transitive" type="YesNoType">
<xs:annotation>
<xs:documentation>
If this attribute is set to 'yes', the installer reevaluates the value of the statement
in the Condition upon a reinstall. If the value was previously False and has changed to
True, the installer installs the component. If the value was previously True and has
changed to False, the installer removes the component even if the component has other
products as clients.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="UninstallWhenSuperseded" type="YesNoType">
<xs:annotation>
<xs:documentation>
If this attribute is set to 'yes', the installer will uninstall the Component's files
and registry keys when it is superseded by a patch. This functionality is available in
Windows Installer 4.5 and later.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Win64" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set this attribute to 'yes' to mark this as a 64-bit component. This attribute facilitates
the installation of packages that include both 32-bit and 64-bit components. If this bit
is not set, the component is registered as a 32-bit component. If this is a 64-bit
component replacing a 32-bit component, set this bit and assign a new GUID in the Guid attribute.
</xs:documentation>
</xs:annotation>
</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>
Groups together multiple components to be used in other locations.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Identifier for the ComponentGroup. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| any | 1..1 | Allow any element from the ##other namespace. |
|
| Component | anyType (restriction) | 1..1 | Component for parent Directory |
| ComponentGroupRef | anyType (restriction) | 1..1 | Create a reference to a ComponentGroup in another Fragment. |
| ComponentRef | anyType (restriction) | 1..1 | Create a reference to a Feature element in another Fragment. |
<xs:element name="ComponentGroup">
<xs:annotation>
<xs:documentation>
Groups together multiple components to be used in other locations.
</xs:documentation>
<xs:appinfo>
<xse:seeAlso ref="ComponentGroupRef" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Component" />
<xs:element ref="ComponentGroupRef" />
<xs:element ref="ComponentRef" />
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
<xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
</xs:documentation>
</xs:annotation>
</xs:any>
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Identifier for the ComponentGroup.</xs:documentation>
</xs:annotation>
</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>
Create a reference to a ComponentGroup in another Fragment.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | The identifier of the ComponentGroup to reference. |
|
| Primary | YesNoType | No | Set this attribute to 'yes' in order to make the parent feature of this component the primary feature for this component. |
Always empty.
<xs:element name="ComponentGroupRef">
<xs:annotation>
<xs:documentation>Create a reference to a ComponentGroup in another Fragment.</xs:documentation>
<xs:appinfo>
<xse:seeAlso ref="ComponentGroup" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The identifier of the ComponentGroup to reference.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Primary" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set this attribute to 'yes' in order to make the parent feature of this component
the primary feature for this component. Components may belong to multiple features.
By designating a feature as the primary feature of a component, you ensure that
whenever a component is selected for install-on-demand (IOD), the primary feature
will be the one to install it. This attribute should only be set if a component
actually nests under multiple features. If a component nests under only one feature,
that feature is the primary feature for the component. You cannot set more than one
feature as the primary feature of a given component.
</xs:documentation>
</xs:annotation>
</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>
Create a reference to a Feature element in another Fragment.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | The identifier of the Component element to reference. |
|
| Primary | YesNoType | No | Set this attribute to 'yes' in order to make the parent feature of this component the primary feature for this component. |
Always empty.
<xs:element name="ComponentRef">
<xs:annotation>
<xs:documentation>Create a reference to a Feature element in another Fragment.</xs:documentation>
<xs:appinfo>
<xse:seeAlso ref="Component" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:howtoRef href="add_a_file.htm" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension">How To: Add a file to your installer</xse:howtoRef>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The identifier of the Component element to reference.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Primary" type="YesNoType">
<xs:annotation>
<xs:documentation>
Set this attribute to 'yes' in order to make the parent feature of this component
the primary feature for this component. Components may belong to multiple features.
By designating a feature as the primary feature of a component, you ensure that
whenever a component is selected for install-on-demand (IOD), the primary feature
will be the one to install it. This attribute should only be set if a component
actually nests under multiple features. If a component nests under only one feature,
that feature is the primary feature for the component. You cannot set more than one
feature as the primary feature of a given component.
</xs:documentation>
</xs:annotation>
</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>
Searches for file or directory and assigns to value of parent Property.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | ||
| Guid | Guid | No | The component ID of the component whose key path is to be used for the search. |
|
| Type | NMTOKEN (restriction) | No | Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..1 | ||
| DirectorySearch | anyType (restriction) | 1..1 | Searches for directory and assigns to value of parent Property. |
| DirectorySearchRef | anyType (restriction) | 1..1 | References an existing DirectorySearch element. |
| FileSearch | anyType (restriction) | 1..1 | Searches for file and assigns to fullpath value of parent Property |
| FileSearchRef | anyType (restriction) | 1..1 | References an existing FileSearch element. |
<xs:element name="ComponentSearch">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="IniFileSearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="RegistrySearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="CompLocator" href="http://msdn.microsoft.com/library/aa368001.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Signature" href="http://msdn.microsoft.com/library/aa371853.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Searches for file or directory and assigns to value of parent Property.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0">
<xs:element ref="DirectorySearch" />
<xs:element ref="DirectorySearchRef" />
<xs:element ref="FileSearch" />
<xs:element ref="FileSearchRef" />
</xs:choice>
<xs:attribute name="Id" use="required" type="xs:string" />
<xs:attribute name="Guid" type="Guid">
<xs:annotation>
<xs:documentation>The component ID of the component whose key path is to be used for the search.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Type">
<xs:annotation>
<xs:documentation>Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="directory">
<xs:annotation>
<xs:documentation>
The key path of the component is a directory.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="file">
<xs:annotation>
<xs:documentation>
The key path of the component is a file. This is the default value.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
</xs:element>
Conditions for components, controls, features, and products.
Extending string
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Action | NMTOKEN (restriction) | No | Used only under Control elements and is required. Allows specific actions to be applied to a control based on the result of this condition. |
|
| Level | integer | No | Used only under Feature elements and is required. |
|
| Message | string | No | Used only under Fragment or Product elements and is required. |
Contains text only.
The condition is specified in the inner text of the element.
<xs:element name="Condition">
<xs:annotation>
<xs:documentation>
Conditions for components, controls, features, and products. The condition is specified in the inner text of the element.
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="Component" href="http://msdn.microsoft.com/library/aa368007.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="ControlCondition" href="http://msdn.microsoft.com/library/aa368035.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Condition" href="http://msdn.microsoft.com/library/aa368014.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="LaunchCondition" href="http://msdn.microsoft.com/library/aa369752.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:howtoRef href="block_install_on_os.htm" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension">How To: Block installation based on OS version</xse:howtoRef>
<xse:howtoRef href="check_the_version_number.htm" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension">How To: Check the version number of a file during installation</xse:howtoRef>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>
Under a Component element, the condition becomes the condition of the component. Under a Control element,
the condition becomes a ControlCondition entry. Under a Feature element, the condition becomes a Condition
entry. Under a Fragment or Product element, the condition becomes a LaunchCondition entry.
</xs:documentation>
</xs:annotation>
<xs:attribute name="Action">
<xs:annotation>
<xs:documentation>
Used only under Control elements and is required. Allows specific actions to be applied to a control based
on the result of this condition.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="default">
<xs:annotation>
<xs:documentation>
Set the Control as the default. Only used under Control elements.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="enable">
<xs:annotation>
<xs:documentation>
Enable the Control. Only used under Control elements.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="disable">
<xs:annotation>
<xs:documentation>
Disable the Control. Only used under Control elements.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="hide">
<xs:annotation>
<xs:documentation>
Hide the Control. Only used under Control elements.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="show">
<xs:annotation>
<xs:documentation>
Display the Control. Only used under Control elements.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Level" type="xs:integer">
<xs:annotation>
<xs:documentation>
Used only under Feature elements and is required. Allows modifying the level of a Feature based on the
result of this condition.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Message" type="xs:string">
<xs:annotation>
<xs:documentation>
Used only under Fragment or Product elements and is required. Set the value to the text to display when the
condition fails and the installation must be terminated.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
Defines the configurable attributes of merge module.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Name | string | Yes | Defines the name of the configurable item. |
|
| Format | string (restriction) | Yes | Specifies the format of the data being changed. |
|
| Type | string | No | Specifies the type of the data being changed. |
|
| ContextData | string | No | Specifies a semantic context for the requested data. |
|
| DefaultValue | string | No | Specifies a default value for the item in this record if the merge tool declines to provide a value. |
|
| KeyNoOrphan | YesNoType | No | Does not merge rule according to rules in MSI SDK. |
|
| NonNullable | YesNoType | No | If yes, null is not a valid entry. |
|
| DisplayName | string | No | Display name for authoring. |
|
| Description | string | No | Description for authoring. |
|
| HelpLocation | string | No | Location of chm file for authoring. |
|
| HelpKeyword | string | No | Keyword into chm file for authoring. |
Always empty.
<xs:element name="Configuration">
<xs:annotation>
<xs:documentation>Defines the configurable attributes of merge module.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Defines the name of the configurable item.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Format" use="required">
<xs:annotation>
<xs:documentation>Specifies the format of the data being changed.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Text" />
<xs:enumeration value="Key" />
<xs:enumeration value="Integer" />
<xs:enumeration value="Bitfield" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Type" type="xs:string">
<xs:annotation>
<xs:documentation>Specifies the type of the data being changed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ContextData" type="xs:string">
<xs:annotation>
<xs:documentation>Specifies a semantic context for the requested data.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DefaultValue" type="xs:string">
<xs:annotation>
<xs:documentation>Specifies a default value for the item in this record if the merge tool declines to provide a value.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="KeyNoOrphan" type="YesNoType">
<xs:annotation>
<xs:documentation>Does not merge rule according to rules in MSI SDK.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="NonNullable" type="YesNoType">
<xs:annotation>
<xs:documentation>If yes, null is not a valid entry.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DisplayName" type="xs:string">
<xs:annotation>
<xs:documentation>Display name for authoring.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Description" type="xs:string">
<xs:annotation>
<xs:documentation>Description for authoring.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HelpLocation" type="xs:string">
<xs:annotation>
<xs:documentation>Location of chm file for authoring.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HelpKeyword" type="xs:string">
<xs:annotation>
<xs:documentation>Keyword into chm file for authoring.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Data to use as input to a configurable merge module.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Name | string | Yes | Key into the ModuleConfiguration table. |
|
| Value | string | Yes | Value to be passed to configurable merge module. |
Always empty.
<xs:element name="ConfigurationData">
<xs:annotation>
<xs:documentation>Data to use as input to a configurable merge module.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Key into the ModuleConfiguration table.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Value to be passed to configurable merge module.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Contains the controls that appear on each dialog.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Combined with the Dialog Id to make up the primary key of the Control table. |
|
| Type | string | Yes | The type of the control. |
|
| X | LocalizableInteger | Yes | Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. |
|
| Y | LocalizableInteger | Yes | Vertical coordinate of the upper-left corner of the rectangular boundary of the control. |
|
| Width | LocalizableInteger | Yes | Width of the rectangular boundary of the control. |
|
| Height | LocalizableInteger | Yes | Height of the rectangular boundary of the control. |
|
| Property | string | No | The name of a defined property to be linked to this control. |
|
| Text | string | No | A localizable string used to set the initial text contained in a control. |
|
| Help | string | No | This attribute is reserved for future use. |
|
| ToolTip | string | No | The string used for the Tooltip. |
|
| CheckBoxValue | string | No | This attribute is only valid for CheckBox Controls. |
|
| TabSkip | YesNoType | No | Set this attribute to "yes" to cause this Control to be skipped in the tab sequence. |
|
| Default | YesNoType | No | Set this attribute to "yes" to cause this Control to be invoked by the return key. |
|
| Cancel | YesNoType | No | Set this attribute to "yes" to cause this Control to be invoked by the escape key. |
|
| Hidden | YesNoType | No | Set this attribute to "yes" to cause the Control to be hidden. |
|
| Disabled | YesNoType | No | Set this attribute to "yes" to cause the Control to be disabled. |
|
| Sunken | YesNoType | No | Set this attribute to "yes" to cause the Control to be sunken. |
|
| Indirect | YesNoType | No | Specifies whether the value displayed or changed by this control is referenced indirectly. |
|
| Integer | YesNoType | No | Set this attribute to "yes" to cause the linked Property value for the Control to be treated as an integer. Otherwise, the Property will be treated as a string. |
|
| RightToLeft | YesNoType | No | Set this attribute to "yes" to cause the Control to display from right to left. |
|
| RightAligned | YesNoType | No | Set this attribute to "yes" to cause the Control to be right aligned. |
|
| LeftScroll | YesNoType | No | Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. |
|
| Transparent | YesNoType | No | This attribute is only valid for Text Controls. |
|
| NoPrefix | YesNoType | No | This attribute is only valid for Text Controls. |
|
| NoWrap | YesNoType | No | This attribute is only valid for Text Controls. |
|
| FormatSize | YesNoType | No | This attribute is only valid for Text Controls. |
|
| UserLanguage | YesNoType | No | This attribute is only valid for Text Controls. |
|
| Multiline | YesNoType | No | This attribute is only valid for Edit Controls. |
|
| Password | YesNoType | No | This attribute is only valid for Edit Controls. |
|
| ProgressBlocks | YesNoType | No | This attribute is only valid for ProgressBar Controls. |
|
| Removable | YesNoType | No | This attribute is only valid for Volume and Directory Controls. |
|
| Fixed | YesNoType | No | This attribute is only valid for Volume and Directory Controls. |
|
| Remote | YesNoType | No | This attribute is only valid for Volume and Directory Controls. |
|
| CDROM | YesNoType | No | This attribute is only valid for Volume and Directory Controls. |
|
| RAMDisk | YesNoType | No | This attribute is only valid for Volume and Directory Controls. |
|
| Floppy | YesNoType | No | This attribute is only valid for Volume and Directory Controls. |
|
| ShowRollbackCost | YesNoType | No | This attribute is only valid for VolumeCostList Controls. |
|
| Sorted | YesNoType | No | This attribute is only valid for Listbox, ListView, and ComboBox Controls. |
|
| ComboList | YesNoType | No | This attribute is only valid for ComboBox Controls. |
|
| Image | YesNoType | No | This attribute is only valid for RadioButton, PushButton, and Icon Controls. |
|
| IconSize | NMTOKEN (restriction) | No | This attribute is only valid for RadioButton, PushButton, and Icon Controls. |
|
| FixedSize | YesNoType | No | This attribute is only valid for RadioButton, PushButton, and Icon Controls. |
|
| Icon | YesNoType | No | This attribute is only valid for RadioButton and PushButton Controls. |
|
| Bitmap | YesNoType | No | This attribute is only valid for RadioButton and PushButton Controls. |
|
| PushLike | YesNoType | No | This attribute is only valid for RadioButton and Checkbox Controls. |
|
| HasBorder | YesNoType | No | This attribute is only valid for RadioButton Controls. |
|
| ElevationShield | YesNoType | No | This attribute is only valid for PushButton controls. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
1..1 | ||
| Text | string (extension) | 0..1 | An alternative to using the Text attribute when the value contains special XML characters like <, >, or &. |
| ComboBox | anyType (restriction) | 0..1 | Set of items for a particular ComboBox control tied to an install Property |
| ListBox | anyType (restriction) | 0..1 | Set of items for a particular ListBox control tied to an install Property |
| ListView | anyType (restriction) | 0..1 | Set of items for a particular ListView control tied to an install Property |
| RadioButtonGroup | anyType (restriction) | 0..1 | Set of radio buttons tied to the specified Property |
| Property | anyType (restriction) | 0..1 | Property value for a Product or Module. |
| Binary | anyType (restriction) | 0..1 | Binary data used for CustomAction elements and UI controls. |
|
0..* | ||
| Condition | string (extension) | 1..1 | Conditions for components, controls, features, and products. |
| Publish | string (extension) | 1..1 | |
| Subscribe | anyType (restriction) | 1..1 | Sets attributes for events in the EventMapping table |
<xs:element name="Control">
<xs:annotation>
<xs:appinfo>
<xse:msiRef table="Control" href="http://msdn.microsoft.com/library/aa368044.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="ComboBox" href="http://msdn.microsoft.com/library/aa367872.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Dialog" href="http://msdn.microsoft.com/library/aa368286.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="ListBox" href="http://msdn.microsoft.com/library/aa369762.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="ListView" href="http://msdn.microsoft.com/library/aa369764.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="RadioButton" href="http://msdn.microsoft.com/library/aa370962.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Contains the controls that appear on each dialog.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Text" minOccurs="0">
<xs:annotation>
<xs:documentation>alternative to Text attribute when CDATA is needed to escape XML delimiters</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ComboBox" minOccurs="0">
<xs:annotation>
<xs:documentation>ComboBox table with ListItem children</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ListBox" minOccurs="0">
<xs:annotation>
<xs:documentation>ListBox table with ListItem children</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ListView" minOccurs="0">
<xs:annotation>
<xs:documentation>ListView table with ListItem children</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="RadioButtonGroup" minOccurs="0">
<xs:annotation>
<xs:documentation>RadioButton table with RadioButton children</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="Property" minOccurs="0">
<xs:annotation>
<xs:documentation>Property table entry for the Property table column associated with this control</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="Binary" minOccurs="0">
<xs:annotation>
<xs:documentation>Icon referenced in icon column of row</xs:documentation>
</xs:annotation>
</xs:element>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>child elements affecting operation of this control</xs:documentation>
</xs:annotation>
<xs:element ref="Condition">
<xs:annotation>
<xs:documentation>Condition to specify actions for this control based on the outcome of the condition.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="Publish" />
<xs:element ref="Subscribe" />
</xs:choice>
</xs:sequence>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>Combined with the Dialog Id to make up the primary key of the Control table.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Type" use="required" type="xs:string">
<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:attribute>
<xs:attribute name="X" use="required" type="LocalizableInteger">
<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:attribute>
<xs:attribute name="Y" use="required" type="LocalizableInteger">
<xs:annotation>
<xs:documentation>Vertical 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:attribute>
<xs:attribute name="Width" use="required" type="LocalizableInteger">
<xs:annotation>
<xs:documentation>Width of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Height" use="required" type="LocalizableInteger">
<xs:annotation>
<xs:documentation>Height of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Property" type="xs:string">
<xs:annotation>
<xs:documentation>The name of a defined property to be linked to this control. This column is required for active controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Text" type="xs:string">
<xs:annotation>
<xs:documentation>A localizable string used to set the initial text contained in a control. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see <a href="http://msdn2.microsoft.com/library/aa368609.aspx" target="_blank" xmlns="http://schemas.microsoft.com/wix/2006/wi">Formatted</a> for details.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Help" type="xs:string">
<xs:annotation>
<xs:documentation>This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ToolTip" type="xs:string">
<xs:annotation>
<xs:documentation>The string used for the Tooltip.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="CheckBoxValue" type="xs:string">
<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:attribute>
<!-- Control ordering - order of declaration in Dialog determines tab ordering -->
<xs:attribute name="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:attribute>
<xs:attribute name="Default" type="YesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause this Control to be invoked by the return key.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Cancel" type="YesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause this Control to be invoked by the escape key.</xs:documentation>
</xs:annotation>
</xs:attribute>
<!-- common Control attributes -->
<xs:attribute name="Hidden" type="YesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the Control to be hidden.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Disabled" type="YesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the Control to be disabled.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Sunken" type="YesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the Control to be sunken.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Indirect" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies whether the value displayed or changed by this control is referenced indirectly. If this bit is set, the control displays or changes the value of the property that has the identifier listed in the Property column of the Control table.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Integer" type="YesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the linked Property value for the Control to be treated as an integer. Otherwise, the Property will be treated as a string.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RightToLeft" type="YesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the Control to display from right to left.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RightAligned" type="YesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the Control to be right aligned.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LeftScroll" type="YesNoType">
<xs:annotation>
<xs:documentation>Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control.</xs:documentation>
</xs:annotation>
</xs:attribute>
<!-- attributes applied to specific Controls -->
<xs:attribute name="Transparent" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="NoPrefix" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="NoWrap" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="FormatSize" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="UserLanguage" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Text Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Multiline" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Edit Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Password" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Edit Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ProgressBlocks" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for ProgressBar Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Removable" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Fixed" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Remote" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="CDROM" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RAMDisk" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Floppy" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ShowRollbackCost" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for VolumeCostList Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Sorted" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for Listbox, ListView, and ComboBox Controls. Set
the value of this attribute to "yes" to have entries appear in the order specified under the Control.
If the attribute value is "no" or absent the entries in the control will appear in alphabetical order.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ComboList" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for ComboBox Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Image" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IconSize">
<xs:annotation>
<xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="16" />
<xs:enumeration value="32" />
<xs:enumeration value="48" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="FixedSize" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Icon" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for RadioButton and PushButton Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Bitmap" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for RadioButton and PushButton Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PushLike" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for RadioButton and Checkbox Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HasBorder" type="YesNoType">
<xs:annotation>
<xs:documentation>This attribute is only valid for RadioButton Controls.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ElevationShield" type="YesNoType">
<xs:annotation>
<xs:documentation>
This attribute is only valid for PushButton controls.
Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control.
If this attribute's value is "yes" and the installation is not yet running with elevated privileges,
the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon).
If this attribute's value is "yes" and the installation is already running with elevated privileges,
the pushbutton control is created using the other icon attributes.
Otherwise, the pushbutton control is created using the other icon attributes.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Primary key used to identify this particular entry. |
|
| FileId | string | No | This attribute cannot be specified if the element is nested under a File element. |
|
| SourceDirectory | string | No | This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. |
|
| SourceProperty | string | No | This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. |
|
| SourceName | WildCardLongFileNameType | No | This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. |
|
| DestinationDirectory | string | No | Set this value to the destination directory where an existing file on the target machine should be moved or copied to. |
|
| DestinationProperty | string | No | Set this value to a property that will have a value that resolves to the full path of the destination directory. |
|
| DestinationName | LongFileNameType | No | In prior versions of the WiX toolset, this attribute specified the short file name. |
|
| DestinationLongName | LongFileNameType | No | ||
| DestinationShortName | ShortFileNameType | No | The short file name of the file in 8.3 format. |
|
| Delete | YesNoType | No | This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. |
Always empty.
When this element is nested under a File element, the parent file will be installed, then copied to the specified destination if the parent component of the file is selected for installation or removal. When this element is nested under a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine.
When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed, then copied to the specified destination if the parent component is selected for installation or removal (use this option to control the copy of a file in a different component by the parent component's installation state). If the specified destination directory is the same as the directory containing the original file and the name for the proposed source file is the same as the original, then no action takes place.
<xs:element name="CopyFile">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="RemoveFile" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="DuplicateFile" href="http://msdn.microsoft.com/library/aa368335.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="MoveFile" href="http://msdn.microsoft.com/library/aa370055.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>
Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. When
this element is nested under a File element, the parent file will be installed, then copied to the specified destination
if the parent component of the file is selected for installation or removal. When this element is nested under
a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine.
When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed,
then copied to the specified destination if the parent component is selected for installation or removal (use
this option to control the copy of a file in a different component by the parent component's installation state). If the
specified destination directory is the same as the directory containing the original file and the name for the proposed source
file is the same as the original, then no action takes place.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Primary key used to identify this particular entry.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="FileId" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute cannot be specified if the element is nested under a File element. Set this attribute's value to the identifier
of a file from a different component to copy it based on the install state of the parent component.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SourceDirectory" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
this value to the source directory from which to copy or move an existing file on the target machine. This Directory must
exist in the installer database at creation time. This attribute cannot be specified in conjunction with SourceProperty.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SourceProperty" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
this value to a property that will have a value that resolves to the full path of the source directory (or full path
including file name if SourceName is not specified). The property does not have to exist in the installer database at
creation time; it could be created at installation time by a custom action, on the command line, etc. This attribute
cannot be specified in conjunction with SourceDirectory.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SourceName" type="WildCardLongFileNameType">
<xs:annotation>
<xs:documentation>
This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set
this value to the localizable name of the file(s) to be copied or moved. All of the files that
match the wild card will be removed from the specified directory. The value is a filename that may also
contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. If this
attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the
SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename.
If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied
files retain the file names from their sources.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DestinationDirectory" type="xs:string">
<xs:annotation>
<xs:documentation>
Set this value to the destination directory where an existing file on the target machine should be moved or copied to. This
Directory must exist in the installer database at creation time. This attribute cannot be specified in conjunction with
DestinationProperty.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DestinationProperty" type="xs:string">
<xs:annotation>
<xs:documentation>
Set this value to a property that will have a value that resolves to the full path of the destination directory. The property
does not have to exist in the installer database at creation time; it could be created at installation time by a custom
action, on the command line, etc. This attribute cannot be specified in conjunction with DestinationDirectory.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DestinationName" type="LongFileNameType">
<xs:annotation>
<xs:documentation>
In prior versions of the WiX toolset, this attribute specified the short file name.
Now set this value to the localizable name to be given to the original file after it is moved or copied.
If this attribute is not specified, then the destination file is given the same name as the source file.
If a short file name is specified, the DestinationShortName attribute may not be specified.
If a long file name is specified, the DestinationLongName attribute may not be specified.
Also, if this value is a long file name, the DestinationShortName attribute may be omitted to
allow WiX to attempt to generate a unique short file name.
However, if this name collides with another file or you wish to manually specify
the short file name, then the DestinationShortName attribute may be specified.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DestinationLongName" type="LongFileNameType">
<xs:annotation>
<xs:appinfo>
<xse:deprecated ref="DestinationName" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DestinationShortName" type="ShortFileNameType">
<xs:annotation>
<xs:documentation>
The short file name of the file in 8.3 format.
This attribute should only be set if there is a conflict between generated short file names
or you wish to manually specify the short file name.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Delete" type="YesNoType">
<xs:annotation>
<xs:documentation>
This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. In other
cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved. Set the value to "yes"
in order to move the file (thus deleting the source file) instead of copying it.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Ends the internal installation costing process begun by the CostInitialize action.
Type ActionSequenceType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action and then call the CostFinalize action to make all final cost calculations available to the installer through the Component table. The CostFinalize action must be executed before starting any user interface sequence which allows the user to view or modify Feature table selections or directories. The CostFinalize action queries the Condition table to determine which features are scheduled to be installed. Costing is done for each component in the Component table. The CostFinalize action also verifies that all the target directories are writable before allowing the installation to continue. The condition for this action may be specified in the element's inner text.
<xs:element name="CostFinalize" type="ActionSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="CostInitialize" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="FileCost" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef action="CostFinalize" href="http://msdn.microsoft.com/library/aa368048.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Ends the internal installation costing process begun by the CostInitialize action. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action and then call the CostFinalize action to make all final cost calculations available to the installer through the Component table. The CostFinalize action must be executed before starting any user interface sequence which allows the user to view or modify Feature table selections or directories. The CostFinalize action queries the Condition table to determine which features are scheduled to be installed. Costing is done for each component in the Component table. The CostFinalize action also verifies that all the target directories are writable before allowing the installation to continue. The condition for this action may be specified in the element's inner text.</xs:documentation>
</xs:annotation>
</xs:element>
Initiates the internal installation costing process.
Type ActionSequenceType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the CostInitialize action to make all final cost calculations available to the installer through the Component table. The condition for this action may be specified in the element's inner text.
<xs:element name="CostInitialize" type="ActionSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="FileCost" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="CostFinalize" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef action="CostInitialize" href="http://msdn.microsoft.com/library/aa368048.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Initiates the internal installation costing process. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the CostInitialize action to make all final cost calculations available to the installer through the Component table. The condition for this action may be specified in the element's inner text.</xs:documentation>
</xs:annotation>
</xs:element>
Create folder as part of parent Component.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Directory | string | No | Identifier of Directory to create. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| any | 1..1 | Allow any element from the ##other namespace. |
|
| Permission | anyType (restriction) | 0..* | Sets ACLs on File, Registry, or CreateFolder. |
| Shortcut | anyType (restriction) | 0..* | Shortcut, default target is parent File, CreateFolder, or Component's Directory |
<xs:element name="CreateFolder">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="RemoveFolder" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="CreateFolder" href="http://msdn.microsoft.com/library/aa368053.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Create folder as part of parent Component.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Shortcut" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Non-advertised shortcut to this folder, Shortcut Target is preset to the folder</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="Permission" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>ACL permission</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
<xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
</xs:documentation>
</xs:annotation>
</xs:any>
</xs:choice>
<xs:attribute name="Directory" type="xs:string">
<xs:annotation>
<xs:documentation>Identifier of Directory to create. Defaults to Directory of parent Component.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Creates empty folders for components that are set to be installed.
Type ActionSequenceType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
The condition for this action may be specified in the element's inner text.
<xs:element name="CreateFolders" type="ActionSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:msiRef action="CreateFolders" href="http://msdn.microsoft.com/library/aa368052.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Creates empty folders for components that are set to be installed. The condition for this action may be specified in the element's inner text.</xs:documentation>
</xs:annotation>
</xs:element>
Manages the creation of shortcuts.
Type ActionSequenceType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
The condition for this action may be specified in the element's inner text.
<xs:element name="CreateShortcuts" type="ActionSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:msiRef action="CreateShortcuts" href="http://msdn.microsoft.com/library/aa368054.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text.</xs:documentation>
</xs:annotation>
</xs:element>
Use to sequence a custom action.
Extending string
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Action | string | Yes | The action to which the Custom element applies. |
|
| OnExit | NMTOKEN (restriction) | No | Mutually exclusive with Before, After, and Sequence attributes |
|
| Before | string | No | The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes |
|
| After | string | No | The name of the standard or custom action after which this action should be performed. |
|
| Overridable | YesNoType | No | If "yes", the sequencing of this action may be overridden by sequencing elsewhere. |
|
| Sequence | integer | No | The sequence number for this action. |
Contains text only.
<xs:element name="Custom">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="CustomAction" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Use to sequence a custom action.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>Text node specifies the condition of the action.</xs:documentation>
</xs:annotation>
<xs:attribute name="Action" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The action to which the Custom element applies.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="OnExit">
<xs:annotation>
<xs:documentation>Mutually exclusive with Before, After, and Sequence attributes</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="success" />
<xs:enumeration value="cancel" />
<xs:enumeration value="error" />
<xs:enumeration value="suspend" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Before" type="xs:string">
<xs:annotation>
<xs:documentation>The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="After" type="xs:string">
<xs:annotation>
<xs:documentation>The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Overridable" type="YesNoType">
<xs:annotation>
<xs:documentation>
If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Sequence" type="xs:integer">
<xs:annotation>
<xs:documentation>The sequence number for this action. Mutually exclusive with Before, After, and OnExit attributes</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
Specifies a custom action to be added to the MSI CustomAction table.
Extending string
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | No | The identifier of the custom action. |
|
| BinaryKey | string | No | This attribute is a reference to a Binary element with matching Id attribute. |
|
| FileKey | string | No | This attribute specifies a reference to a File element with matching Id attribute that will execute the custom action code in the file after the file is installed. |
|
| Property | string | No | This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property to be used or updated on execution of this custom action. |
|
| Directory | string | No | This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path. |
|
| DllEntry | string | No | This attribute specifies the name of a function in a custom action to execute. |
|
| ExeCommand | string | No | This attribute specifies the command line parameters to supply to an externally run executable. |
|
| JScriptCall | string | No | This attribute specifies the name of the JScript function to execute in a script. |
|
| VBScriptCall | string | No | This attribute specifies the name of the VBScript Subroutine to execute in a script. |
|
| Script | NMTOKEN (restriction) | No | Creates a type 37 or 38 custom action. |
|
| SuppressModularization | YesNoType | No | Use to suppress modularization of this custom action name in merge modules. |
|
| Value | string | No | This attribute specifies a string value to use in the custom action. |
|
| Error | string | No | This attribute specifies an index in the MSI Error table to use as an error message for a type 19 custom action that displays the error message and aborts a product's installation. |
|
| Return | NMTOKEN (restriction) | No | Set this attribute to set the return behavior of the custom action. |
|
| Execute | NMTOKEN (restriction) | No | This attribute indicates the scheduling of the custom action. |
|
| Impersonate | YesNoType | No | This attribute specifies whether the Windows Installer, which executes as LocalSystem, should impersonate the user context of the installing user when executing this custom action. |
|
| PatchUninstall | YesNoType | No | This attribute specifies that the Windows Installer, execute the custom action only when a patch is being uninstalled. |
|
| Win64 | YesNoType | No | Specifies that a script custom action targets a 64-bit platform. |
|
| TerminalServerAware | YesNoType | No | This attribute specifies controls whether the custom action will impersonate the installing user during per-machine installs on Terminal Server machines. |
|
| HideTarget | YesNoType | No | Ensures the installer does not log the CustomActionData for the deferred custom action. |
Contains text only.
Various combinations of the attributes for this element correspond to different custom action types. For more information about custom actions see the Custom Action Types topic on MSDN.
<xs:element name="CustomAction">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="Custom" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="CustomActionRef" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="CustomAction" href="http://msdn.microsoft.com/library/aa368062.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>
Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element
correspond to different custom action types. For more information about custom actions see the
<html:a href="http://msdn.microsoft.com/library/aa372048.aspx" target="_blank" xmlns:html="http://www.w3.org/1999/xhtml">
Custom Action Types</html:a> topic on MSDN.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>
The text node is only valid if the Script attribute is specified. In that case, the text node contains the script to embed.
</xs:documentation>
</xs:annotation>
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>
The identifier of the custom action.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<!-- CustomAction Source specification, sets source Attribute bits -->
<xs:attribute name="BinaryKey" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute is a reference to a Binary element with matching Id attribute. That binary stream contains
the custom action for use during install. The custom action will not be installed into a target directory. This attribute is
typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand
attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes
to specify a type 5 or 6 custom action.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="FileKey" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute specifies a reference to a File element with matching Id attribute that
will execute the custom action code in the file after the file is installed. This
attribute is typically used with the ExeCommand attribute to specify a type 18 custom action
that runs an installed executable, with the DllEntry attribute to specify an installed custom
action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall
attributes to specify a type 21 or 22 custom action.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Property" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property
to be used or updated on execution of this custom action. This attribute is
typically used with the Value attribute to create a type 51 custom action that parses
the text in Value and places it into the specified Property. This attribute is also used with
the ExeCommand attribute to create a type 50 custom action that uses the value of the
given property to specify the path to the executable. Type 51 custom actions are often useful to
pass values to a deferred custom action.
See <html:a href="http://msdn.microsoft.com/library/aa370543.aspx" target="_blank" xmlns:html="http://www.w3.org/1999/xhtml">
http://msdn.microsoft.com/library/aa370543.aspx</html:a>
for more information.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Directory" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path.
This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34
custom action, or with the Value attribute to specify a formatted string to place in the specified Directory
table entry in a type 35 custom action.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<!-- CustomAction Target specification, sets target Attribute bits -->
<xs:attribute name="DllEntry" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute specifies the name of a function in a custom action to execute.
This attribute is used with the BinaryKey attribute to create a type 1 custom
action, or with the FileKey attribute to create a type 17 custom action.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExeCommand" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute specifies the command line parameters to supply to an externally
run executable. This attribute is typically used with the BinaryKey attribute for a type 2 custom action,
the FileKey attribute for a type 18 custom action, the Property attribute for a type 50 custom action,
or the Directory attribute for a type 34 custom action that specify the executable to run.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="JScriptCall" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute specifies the name of the JScript function to execute in a script. The script must be
provided in a Binary element identified by the BinaryKey attribute described above. In other words, this
attribute must be specified in conjunction with the BinaryKey attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VBScriptCall" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be
provided in a Binary element identified by the BinaryKey attribute described above. In other words, this
attribute must be specified in conjunction with the BinaryKey attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Script">
<xs:annotation>
<xs:documentation>
Creates a type 37 or 38 custom action. The text of the element should contain the script to be embedded in the package.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="jscript" />
<xs:enumeration value="vbscript" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="SuppressModularization" type="YesNoType">
<xs:annotation>
<xs:documentation>
Use to suppress modularization of this custom action name in merge modules.
This should only be necessary for table-driven custom actions because the
table name which they interact with cannot be modularized, so there can only
be one instance of the table.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Value" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute specifies a string value to use in the custom action. This attribute
must be used with the Property attribute to set the property as part of a
type 51 custom action or with the Directory attribute to set a directory path in that
table in a type 35 custom action. The value can be a literal value or derived from a
Property element using the <html:a href="http://msdn.microsoft.com/library/aa368609.aspx" target="_blank" xmlns:html="http://www.w3.org/1999/xhtml">Formatted</html:a>
syntax.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Error" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute specifies an index in the MSI Error table to use as an error message for a
type 19 custom action that displays the error message and aborts a product's installation.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<!-- Other CustomAction type attributes -->
<xs:attribute name="Return">
<xs:annotation>
<xs:documentation>
Set this attribute to set the return behavior of the custom action.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="asyncNoWait">
<xs:annotation>
<xs:documentation>
Indicates that the custom action will run asyncronously and execution may continue after the installer terminates.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="asyncWait">
<xs:annotation>
<xs:documentation>
Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="check">
<xs:annotation>
<xs:documentation>
Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="ignore">
<xs:annotation>
<xs:documentation>
Indicates that the custom action will run synchronously and the return code will not be checked.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Execute">
<xs:annotation>
<xs:documentation>
This attribute indicates the scheduling of the custom action.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="commit">
<xs:annotation>
<xs:documentation>
Indicates that the custom action will run after successful completion of the installation script (at the end of the installation).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="deferred">
<xs:annotation>
<xs:documentation>
Indicates that the custom action runs in-script (possibly with elevated privileges).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="firstSequence">
<xs:annotation>
<xs:documentation>
Indicates that the custom action will only run in the first sequence that runs it.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="immediate">
<xs:annotation>
<xs:documentation>
Indicates that the custom action will run during normal processing time with user privileges. This is the default.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="oncePerProcess">
<xs:annotation>
<xs:documentation>
Indicates that the custom action will only run in the first sequence that runs it in the same process.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="rollback">
<xs:annotation>
<xs:documentation>
Indicates that a custom action will run in the rollback sequence when a failure
occurs during installation, usually to undo changes made by a deferred custom action.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="secondSequence">
<xs:annotation>
<xs:documentation>
Indicates that a custom action should be run a second time if it was previously run in an earlier sequence.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Impersonate" type="YesNoType">
<xs:annotation>
<xs:documentation>
This attribute specifies whether the Windows Installer, which executes as LocalSystem,
should impersonate the user context of the installing user when executing this custom action.
Typically the value should be 'yes', except when the custom action needs elevated privileges
to apply changes to the machine.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PatchUninstall" type="YesNoType">
<xs:annotation>
<xs:documentation>
This attribute specifies that the Windows Installer, execute the custom action only when
a patch is being uninstalled. These custom actions should also be conditioned using the
MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5)
behavior.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Win64" type="YesNoType">
<xs:annotation>
<xs:documentation>
Specifies that a script custom action targets a 64-bit platform. Valid only when used with
the Script, VBScriptCall, and JScriptCall attributes.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TerminalServerAware" type="YesNoType">
<xs:annotation>
<xs:documentation>
This attribute specifies controls whether the custom action will impersonate the
installing user during per-machine installs on Terminal Server machines.
Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no',
will run with no user impersonation on Terminal Server machines during
per-machine installations. This attribute is only applicable when installing on the
Windows Server 2003 family.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HideTarget" type="YesNoType">
<xs:annotation>
<xs:documentation>Ensures the installer does not log the CustomActionData for the deferred custom action.</xs:documentation>
</xs:annotation>
</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:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
This will cause the entire contents of the Fragment containing the referenced CustomAction to be included in the installer database.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | The identifier of the CustomAction to reference. |
Always empty.
<xs:element name="CustomActionRef">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="CustomAction" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>
This will cause the entire contents of the Fragment containing the referenced CustomAction to be
included in the installer database.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The identifier of the CustomAction to reference.</xs:documentation>
</xs:annotation>
</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>
A custom property for the PatchMetadata table.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Company | string | Yes | The name of the company. |
|
| Property | string | Yes | The name of the metadata property. |
|
| Value | string | Yes | Value of the metadata property. |
Always empty.
<xs:element name="CustomProperty">
<xs:annotation>
<xs:documentation>A custom property for the PatchMetadata table.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Company" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The name of the company.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Property" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The name of the metadata property.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Value of the metadata property.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Defines a custom table for use from a custom action.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Identifier for the custom table. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
1..1 | ||
| Column | anyType (restriction) | 0..* | Column definition for a Custom Table |
| Row | anyType (restriction) | 0..* | Row data for a Custom Table |
<xs:element name="CustomTable">
<xs:annotation>
<xs:documentation>Defines a custom table for use from a custom action.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Column" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Column definition for the custom table.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="Row" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Row definition for the custom table.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Identifier for the custom table.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Used for a Custom Table. Specifies the data for the parent Row and specified Column.
Extending string
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Column | string | Yes | Specifies in which column to insert this data. |
Contains text only.
<xs:element name="Data">
<xs:annotation>
<xs:documentation>Used for a Custom Table. Specifies the data for the parent Row and specified Column.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>A data value</xs:documentation>
</xs:annotation>
<xs:attribute name="Column" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>Specifies in which column to insert this data.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
Stops a service and removes its registration from the system.
Type ActionSequenceType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
The condition for this action may be specified in the element's inner text.
<xs:element name="DeleteServices" type="ActionSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:msiRef action="DeleteServices" href="http://msdn.microsoft.com/library/aa368270.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text.</xs:documentation>
</xs:annotation>
</xs:element>
Declares a dependency on another merge module.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| RequiredId | string | Yes | Identifier of the merge module required by the merge module. |
|
| RequiredLanguage | integer | Yes | Numeric language ID of the merge module in RequiredID. |
|
| RequiredVersion | string | No | Version of the merge module in RequiredID. |
Always empty.
<xs:element name="Dependency">
<xs:annotation>
<xs:documentation>Declares a dependency on another merge module.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="RequiredId" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Identifier of the merge module required by the merge module.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RequiredLanguage" type="xs:integer" use="required">
<xs:annotation>
<xs:documentation>Numeric language ID of the merge module in RequiredID.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RequiredVersion" type="xs:string">
<xs:annotation>
<xs:documentation>Version of the merge module in RequiredID.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Defines a dialog box in the Dialog Table.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Unique identifier for the dialog. |
|
| X | integer | No | Horizontal placement of the dialog box as a percentage of screen width. |
|
| Y | integer | No | Vertical placement of the dialog box as a percentage of screen height. |
|
| Width | integer | Yes | The width of the dialog box in dialog units. |
|
| Height | integer | Yes | The height of the dialog box in dialog units. |
|
| Title | string | No | The title of the dialog box. |
|
| Hidden | YesNoType | No | Used to hide the dialog. |
|
| Modeless | YesNoType | No | Used to set the dialog as modeless. |
|
| NoMinimize | YesNoType | No | Used to specify if the dialog can be minimized. |
|
| SystemModal | YesNoType | No | Used to set the dialog as system modal. |
|
| KeepModeless | YesNoType | No | Keep modeless dialogs alive when this dialog is created through DoAction. |
|
| TrackDiskSpace | YesNoType | No | Have the dialog periodically call the installer to check if available disk space has changed. |
|
| CustomPalette | YesNoType | No | Used to specify if pictures in the dialog box are rendered with a custom palette. |
|
| RightToLeft | YesNoType | No | Used to specify if the text in the dialog should be displayed in right to left reading order. |
|
| RightAligned | YesNoType | No | Align text on the right. |
|
| LeftScroll | YesNoType | No | Used to align the scroll bar on the left. |
|
| ErrorDialog | YesNoType | No | Specifies this dialog as an error dialog. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
1..1 | ||
| Control | anyType (restriction) | 0..* | Contains the controls that appear on each dialog. |
<xs:element name="Dialog">
<xs:annotation>
<xs:appinfo>
<xse:msiRef table="Control" href="http://msdn.microsoft.com/library/aa368044.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="ComboBox" href="http://msdn.microsoft.com/library/aa367872.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Dialog" href="http://msdn.microsoft.com/library/aa368286.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="ListBox" href="http://msdn.microsoft.com/library/aa369762.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="ListView" href="http://msdn.microsoft.com/library/aa369764.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="RadioButton" href="http://msdn.microsoft.com/library/aa370962.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>
Defines a dialog box in the Dialog Table.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Control" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Control elements belonging to this dialog.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Unique identifier for the dialog.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="X" type="xs:integer">
<xs:annotation>
<xs:documentation>Horizontal placement of the dialog box as a percentage of screen width. The default value is 50.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Y" type="xs:integer">
<xs:annotation>
<xs:documentation>Vertical placement of the dialog box as a percentage of screen height. The default value is 50.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Width" use="required" type="xs:integer">
<xs:annotation>
<xs:documentation>The width of the dialog box in dialog units.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Height" use="required" type="xs:integer">
<xs:annotation>
<xs:documentation>The height of the dialog box in dialog units.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Title" type="xs:string">
<xs:annotation>
<xs:documentation>The title of the dialog box.</xs:documentation>
</xs:annotation>
</xs:attribute>
<!-- 'Attributes' column integer value generated from XML attributes below -->
<xs:attribute name="Hidden" type="YesNoType">
<xs:annotation>
<xs:documentation>Used to hide the dialog.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Modeless" type="YesNoType">
<xs:annotation>
<xs:documentation>Used to set the dialog as modeless.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="NoMinimize" type="YesNoType">
<xs:annotation>
<xs:documentation>Used to specify if the dialog can be minimized.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SystemModal" type="YesNoType">
<xs:annotation>
<xs:documentation>Used to set the dialog as system modal.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="KeepModeless" type="YesNoType">
<xs:annotation>
<xs:documentation>Keep modeless dialogs alive when this dialog is created through DoAction.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="TrackDiskSpace" type="YesNoType">
<xs:annotation>
<xs:documentation>Have the dialog periodically call the installer to check if available disk space has changed.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="CustomPalette" type="YesNoType">
<xs:annotation>
<xs:documentation>Used to specify if pictures in the dialog box are rendered with a custom palette.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RightToLeft" type="YesNoType">
<xs:annotation>
<xs:documentation>Used to specify if the text in the dialog should be displayed in right to left reading order.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RightAligned" type="YesNoType">
<xs:annotation>
<xs:documentation>Align text on the right.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LeftScroll" type="YesNoType">
<xs:annotation>
<xs:documentation>Used to align the scroll bar on the left.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ErrorDialog" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies this dialog as an error dialog.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Reference to a Dialog.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | The identifier of the Dialog to reference. |
Always empty.
This will cause the entire referenced section's contents
to be included in the installer database.
<xs:element name="DialogRef">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="Dialog" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>
Reference to a Dialog. This will cause the entire referenced section's contents
to be included in the installer database.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The identifier of the Dialog to reference.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Adds a digital certificate.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Identifier for a certificate file. |
|
| SourceFile | string | Yes | The path to the certificate file. |
Always empty.
<xs:element name="DigitalCertificate">
<xs:annotation>
<xs:documentation>
Adds a digital certificate.
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="MsiDigitalCertificate" href="http://msdn.microsoft.com/library/aa370086.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Identifier for a certificate file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SourceFile" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The path to the certificate file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Adds a digital signature.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| SourceFile | string | No | The path to signature's optional hash file. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
1..1 | ||
| DigitalCertificate | anyType (restriction) | 1..1 | Adds a digital certificate. |
<xs:element name="DigitalSignature">
<xs:annotation>
<xs:documentation>
Adds a digital signature.
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="MsiDigitalSignature" href="http://msdn.microsoft.com/library/aa370087.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element ref="DigitalCertificate" />
</xs:choice>
<xs:attribute name="SourceFile" type="xs:string">
<xs:annotation>
<xs:documentation>The path to signature's optional hash file.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Directory layout for the product.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | This value is the unique identifier of the directory entry. |
|
| ComponentGuidGenerationSeed | Guid | No | The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*") is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder, etc). |
|
| DiskId | integer | No | Sets the default disk identifier for the files contained in this directory. |
|
| FileSource | string | No | Used to set the file system source for this directory's child elements. |
|
| LongName | LongFileNameType | No | ||
| LongSource | LongFileNameType | No | ||
| Name | LongFileNameType | No | The name of the directory. |
|
| ShortName | ShortFileNameType | No | The short name of the directory in 8.3 format. |
|
| ShortSourceName | ShortFileNameType | No | The short name of the directory on the source media in 8.3 format. |
|
| SourceName | LongFileNameType | No | The name of the directory on the source media. |
|
| src | string | No |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| any | 1..1 | Allow any element from the ##other namespace. |
|
| Component | anyType (restriction) | 1..1 | Component for parent Directory |
| Directory | anyType (restriction) | 1..1 | Directory layout for the product. |
| Merge | anyType (restriction) | 1..1 | Merge directive to bring in a merge module that will be redirected to the parent directory. |
| SymbolPath | anyType (restriction) | 1..1 | A path to symbols. |
Also specifies the mappings between source and target directories.
<xs:element name="Directory">
<xs:annotation>
<xs:documentation>Directory layout for the product. Also specifies the mappings between source and target directories.</xs:documentation>
<xs:appinfo>
<xse:seeAlso ref="DirectoryRef" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Directory" href="http://msdn.microsoft.com/library/aa368295.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:howtoRef href="add_a_file.htm" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension">How To: Add a file to your installer</xse:howtoRef>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Component" />
<xs:element ref="Directory" />
<xs:element ref="Merge" />
<xs:element ref="SymbolPath" />
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
<xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
</xs:documentation>
</xs:annotation>
</xs:any>
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>This value is the unique identifier of the directory entry.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ComponentGuidGenerationSeed" type="Guid">
<xs:annotation>
<xs:documentation>
The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*")
is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder, etc).
It is recommended that this attribute be avoided and that developers install their Components under standard
directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is
important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until
the directory name changes.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DiskId" type="xs:integer">
<xs:annotation>
<xs:documentation>
Sets the default disk identifier for the files contained in this directory.
This attribute must be set on a Component, Directory, or DirectoryRef element or all of its children File
elements, else the default disk identifier of 1 is assumed. The value of this attribute should correspond to the Id attribute of a
Media element authored elsewhere. By creating this connection between a component (or
particular files), you set the packaging options to the values specified in the Media
element (values such as compression level, cab embedding, etc...).
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="FileSource" type="xs:string">
<xs:annotation>
<xs:documentation>Used to set the file system source for this directory's child elements.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LongName" type="LongFileNameType">
<xs:annotation>
<xs:appinfo>
<xse:deprecated ref="Name" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="LongSource" type="LongFileNameType">
<xs:annotation>
<xs:appinfo>
<xse:deprecated ref="SourceName" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="LongFileNameType">
<xs:annotation>
<xs:documentation>
The name of the directory.
Do not specify this attribute (or the LongName attribute) if this directory represents
the same directory as the parent (see the Windows Installer SDK's
<html:a href="http://msdn2.microsoft.com/library/Aa368295.aspx" target="_blank" xmlns:html="http://www.w3.org/1999/xhtml">Directory table</html:a>
topic for more information about the "." operator).
In prior versions of the WiX toolset, this attribute specified the short directory name.
This attribute's value may now be either a short or long directory name.
If a short directory name is specified, the ShortName attribute may not be specified.
If a long directory name is specified, the LongName attribute may not be specified.
Also, if this value is a long directory name, the ShortName attribute may be omitted to
allow WiX to attempt to generate a unique short directory name.
However, if this name collides with another directory or you wish to manually specify
the short directory name, then the ShortName attribute may be specified.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ShortName" type="ShortFileNameType">
<xs:annotation>
<xs:documentation>
The short name of the directory in 8.3 format.
This attribute should only be set if there is a conflict between generated short directory names
or the user wants to manually specify the short directory name.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ShortSourceName" type="ShortFileNameType">
<xs:annotation>
<xs:documentation>
The short name of the directory on the source media in 8.3 format.
This attribute should only be set if there is a conflict between generated short directory names
or the user wants to manually specify the short source directory name.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SourceName" type="LongFileNameType">
<xs:annotation>
<xs:documentation>
The name of the directory on the source media.
If this attribute is note specified, the Windows Installer will default to the Name attribute.
In prior versions of the WiX toolset, this attribute specified the short source directory name.
This attribute's value may now be either a short or long directory name.
If a short directory name is specified, the ShortSourceName attribute may not be specified.
If a long directory name is specified, the LongSource attribute may not be specified.
Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to
allow WiX to attempt to generate a unique short directory name.
However, if this name collides with another directory or you wish to manually specify
the short directory name, then the ShortSourceName attribute may be specified.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="src" type="xs:string">
<xs:annotation>
<xs:appinfo>
<xse:deprecated ref="FileSource" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Create a reference to a Directory element in another Fragment.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | The identifier of the Directory element to reference. |
|
| DiskId | integer | No | Sets the default disk identifier for the files contained in this directory. |
|
| FileSource | string | No | Used to set the file system source for this directory ref's child elements. |
|
| src | string | No |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| any | 1..1 | Allow any element from the ##other namespace. |
|
| Component | anyType (restriction) | 1..1 | Component for parent Directory |
| Directory | anyType (restriction) | 1..1 | Directory layout for the product. |
| Merge | anyType (restriction) | 1..1 | Merge directive to bring in a merge module that will be redirected to the parent directory. |
<xs:element name="DirectoryRef">
<xs:annotation>
<xs:documentation>Create a reference to a Directory element in another Fragment.</xs:documentation>
<xs:appinfo>
<xse:seeAlso ref="Directory" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:howtoRef href="add_a_file.htm" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension">How To: Add a file to your installer</xse:howtoRef>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Component" />
<xs:element ref="Directory" />
<xs:element ref="Merge" />
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
<xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
</xs:documentation>
</xs:annotation>
</xs:any>
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The identifier of the Directory element to reference.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DiskId" type="xs:integer">
<xs:annotation>
<xs:documentation>
Sets the default disk identifier for the files contained in this directory.
This attribute must be set on a Component, Directory, or DirectoryRef element or all of its children File
elements, else the default disk identifier of 1 is assumed. The value of this attribute should correspond to the Id attribute of a
Media element authored elsewhere. By creating this connection between a component (or
particular files), you set the packaging options to the values specified in the Media
element (values such as compression level, cab embedding, etc...).
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="FileSource" type="xs:string">
<xs:annotation>
<xs:documentation>Used to set the file system source for this directory ref's child elements.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="src" type="xs:string">
<xs:annotation>
<xs:appinfo>
<xse:deprecated ref="FileSource" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
</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>
Searches for directory and assigns to value of parent Property.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Unique identifier for the directory search. |
|
| Path | string | No | Path on the user's system. Either absolute, or relative to containing directories. |
|
| Depth | integer | No | Depth below the path that the installer searches for the file or directory specified by the search. |
|
| AssignToProperty | YesNoType | No | Set the result of this search to the value of the outer Property. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..1 | ||
| DirectorySearch | anyType (restriction) | 1..1 | Searches for directory and assigns to value of parent Property. |
| DirectorySearchRef | anyType (restriction) | 1..1 | References an existing DirectorySearch element. |
| FileSearch | anyType (restriction) | 1..1 | Searches for file and assigns to fullpath value of parent Property |
| FileSearchRef | anyType (restriction) | 1..1 | References an existing FileSearch element. |
<xs:element name="DirectorySearch">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="ComponentSearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="IniFileSearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="RegistrySearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="DrLocator" href="http://msdn.microsoft.com/library/aa368331.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Signature" href="http://msdn.microsoft.com/library/aa371853.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:howtoRef href="check_the_version_number.htm" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension">How To: Check the version number of a file during installation</xse:howtoRef>
</xs:appinfo>
<xs:documentation>Searches for directory and assigns to value of parent Property.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0">
<xs:element ref="DirectorySearch" />
<xs:element ref="DirectorySearchRef" />
<xs:element ref="FileSearch" />
<xs:element ref="FileSearchRef" />
</xs:choice>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>Unique identifier for the directory search.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="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:attribute>
<xs:attribute name="Depth" type="xs:integer">
<xs:annotation>
<xs:documentation>
Depth below the path that the installer searches for the file or directory specified by the search.
If this value is not specified, the depth is assumed to be 0.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AssignToProperty" type="YesNoType">
<xs:annotation>
<xs:documentation>Set the result of this search to the value of the outer Property.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
References an existing DirectorySearch element.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Id of the search being referred to. |
|
| Parent | string | No | This attribute is the signature of the parent directory of the file or directory in the Signature_ column. |
|
| Path | string | No | Path on the user's system. Either absolute, or relative to containing directories. |
|
| AssignToProperty | YesNoType | No | Set the result of this search to the value of the outer Property. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..1 | ||
| DirectorySearch | anyType (restriction) | 1..1 | Searches for directory and assigns to value of parent Property. |
| DirectorySearchRef | anyType (restriction) | 1..1 | References an existing DirectorySearch element. |
| FileSearch | anyType (restriction) | 1..1 | Searches for file and assigns to fullpath value of parent Property |
| FileSearchRef | anyType (restriction) | 1..1 | References an existing FileSearch element. |
<xs:element name="DirectorySearchRef">
<xs:annotation>
<xs:appinfo>
<xse:seeAlso ref="ComponentSearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="IniFileSearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="RegistrySearch" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:remarks xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension">
<html:p xmlns:html="http://www.w3.org/1999/xhtml">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>
</xse:remarks>
</xs:appinfo>
<xs:documentation>References an existing DirectorySearch element.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0">
<xs:element ref="DirectorySearch" />
<xs:element ref="DirectorySearchRef" />
<xs:element ref="FileSearch" />
<xs:element ref="FileSearchRef" />
</xs:choice>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>Id of the search being referred to.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Parent" type="xs:string">
<xs:annotation>
<xs:documentation>This attribute is the signature of the parent directory of the file or directory in the Signature_ column. If this field is null, and the Path column does not expand to a full path, then all the fixed drives of the user's system are searched by using the Path. This field is a key into one of the following tables: the RegLocator, the IniLocator, the CompLocator, or the DrLocator tables.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="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:attribute>
<xs:attribute name="AssignToProperty" type="YesNoType">
<xs:annotation>
<xs:documentation>Set the result of this search to the value of the outer Property.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Disables rollback for the remainder of the installation.
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| After | string | No | The name of an action that this action should come after. |
|
| Before | string | No | The name of an action that this action should come before. |
|
| Overridable | YesNoType | No | If "yes", the sequencing of this action may be overridden by sequencing elsewhere. |
|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.
<xs:element name="DisableRollback" type="ActionModuleSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:msiRef action="DisableRollback" href="http://msdn.microsoft.com/library/aa368308.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Disables rollback for the remainder of the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
</xs:annotation>
</xs:element>
Duplicates files installed by the InstallFiles action.
Type ActionSequenceType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
The condition for this action may be specified in the element's inner text.
<xs:element name="DuplicateFiles" type="ActionSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:msiRef action="DuplicateFiles" href="http://msdn.microsoft.com/library/aa368334.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text.</xs:documentation>
</xs:annotation>
</xs:element>
Extending string
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Unique identifier for embedded chainer. |
|
| CommandLine | string | No | Value to append to the transaction handle and passed to the chainer executable. |
|
| BinarySource | string | No | Reference to the Binary element that contains the chainer executeable. |
|
| FileSource | string | No | Reference to the File element that is the chainer executeable. |
|
| PropertySource | string | No | Reference to a Property that resolves to the full path to the chainer executeable. |
Contains text only.
<xs:element name="EmbeddedChainer">
<xs:annotation>
<xs:appinfo>
<xse:msiRef table="MsiEmbeddedChainer " href="http://msdn.microsoft.com/library/bb736316.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="Binary" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="File" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="Property" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:seeAlso ref="EmbeddedChainerRef" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>
Element value is the condition. CDATA may be used to when a condition contains many XML characters
that must be escaped. It is important to note that each EmbeddedChainer element must have a mutually exclusive condition
to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer
that executes is undeterministic.
</xs:documentation>
</xs:annotation>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Unique identifier for embedded chainer.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="CommandLine" type="xs:string">
<xs:annotation>
<xs:documentation>Value to append to the transaction handle and passed to the chainer executable.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="BinarySource" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to the Binary element that contains the chainer executeable. Mutually exclusive with
the FileSource and PropertySource attributes.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="FileSource" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to the File element that is the chainer executeable. Mutually exclusive with
the BinarySource and PropertySource attributes.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="PropertySource" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to a Property that resolves to the full path to the chainer executeable. Mutually exclusive with
the BinarySource and FileSource attributes.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
Reference to an EmbeddedChainer element.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes |
Always empty.
This will force the entire referenced Fragment's contents to be included in the installer database.
<xs:element name="EmbeddedChainerRef">
<xs:annotation>
<xs:documentation>
Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents
to be included in the installer database.
</xs:documentation>
<xs:appinfo>
<xse:seeAlso ref="EmbeddedChainer" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
<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>
Element value is the condition.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Unique identifier for embedded UI. |
|
| IgnoreFatalExit | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages. |
|
| IgnoreError | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages. |
|
| IgnoreWarning | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages. |
|
| IgnoreUser | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_USER messages. |
|
| IgnoreInfo | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_INFO messages. |
|
| IgnoreFilesInUse | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages. |
|
| IgnoreResolveSource | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages. |
|
| IgnoreOutOfDiskSpace | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages. |
|
| IgnoreActionStart | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages. |
|
| IgnoreActionData | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages. |
|
| IgnoreProgress | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages. |
|
| IgnoreCommonData | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages. |
|
| IgnoreInitialize | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages. |
|
| IgnoreTerminate | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages. |
|
| IgnoreShowDialog | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages. |
|
| IgnoreRMFilesInUse | YesNoType | No | Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages. |
|
| Name | LongFileNameType | No | The name for the embedded UI DLL when it is extracted from the Product and executed. (Windows Installer does not support the typical short filename and long filename combination for embedded UI files as it does for other kinds of files.) |
|
| SourceFile | string | Yes | Path to the binary file that is the embedded UI. |
|
| SupportBasicUI | YesNoType | No | Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation. |
Can contain a mix of text and the elements defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
1..1 | ||
| EmbeddedUIResource | anyType (restriction) | 0..* | Defines a resource for use by the embedded UI. |
Use CDATA if message contains delimiter characters.
<xs:element name="EmbeddedUI">
<xs:annotation>
<xs:appinfo>
<xse:msiRef table="MsiEmbeddedUI" href="http://msdn.microsoft.com/library/bb736317.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Element value is the condition. Use CDATA if message contains delimiter characters.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="EmbeddedUIResource" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Specifies extra files to be extracted for use by the embedded UI, such as language resources.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Unique identifier for embedded UI.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreFatalExit" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreError" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreWarning" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreUser" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_USER messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreInfo" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INFO messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreFilesInUse" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreResolveSource" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreOutOfDiskSpace" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreActionStart" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreActionData" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreProgress" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreCommonData" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreInitialize" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreTerminate" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreShowDialog" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreRMFilesInUse" type="YesNoType">
<xs:annotation>
<xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="LongFileNameType">
<xs:annotation>
<xs:documentation>
The name for the embedded UI DLL when it is extracted from the Product and executed. (Windows Installer
does not support the typical short filename and long filename combination for embedded UI files as it
does for other kinds of files.) If this attribute is not specified the Id attribute will be used.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SourceFile" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Path to the binary file that is the embedded UI. This must be a DLL that exports the following
three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SupportBasicUI" type="YesNoType">
<xs:annotation>
<xs:documentation>Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Defines a resource for use by the embedded UI.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Identifier for the embedded UI resource. |
|
| Name | LongFileNameType | Yes | The name for the resource when it is extracted from the Product for use by the embedded UI DLL. (Windows Installer does not support the typical short filename and long filename combination for embedded UI files as it does for other kinds of files.) |
|
| SourceFile | string | Yes | Path to the binary file that is the embedded UI resource. |
Always empty.
<xs:element name="EmbeddedUIResource">
<xs:annotation>
<xs:documentation>
Defines a resource for use by the embedded UI.
</xs:documentation>
<xs:appinfo>
<xse:seeAlso ref="EmbeddedUI" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="MsiEmbeddedUI" href="http://msdn.microsoft.com/library/bb736317.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Identifier for the embedded UI resource.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="LongFileNameType" use="required">
<xs:annotation>
<xs:documentation>
The name for the resource when it is extracted from the Product for use by the embedded UI DLL. (Windows
Installer does not support the typical short filename and long filename combination for embedded UI files
as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SourceFile" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Path to the binary file that is the embedded UI resource.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Use this element to ensure that a table appears in the installer database, even if its empty.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | The name of the table. |
Always empty.
<xs:element name="EnsureTable">
<xs:annotation>
<xs:documentation>
Use this element to ensure that a table appears in the installer database, even if its empty.
</xs:documentation>
<xs:appinfo>
<xse:remarks xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension">
This element is particularly useful for two problems that may occur while merging merge modules:
<html:ol xmlns:html="http://www.w3.org/1999/xhtml"><html:li>
The first likely problem is that in order to properly merge you need to have certain
tables present prior to merging. Using this element is one way to ensure those tables
are present prior to the merging.
</html:li><html:li>
The other common problem is that a merge module has incorrect validation information
about some tables. By ensuring these tables prior to merging, you can avoid this
problem because the correct validation information will go into the installer database
before the merge module has a chance to set it incorrectly.
</html:li></html:ol></xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>The name of the table.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Environment variables added or removed for the parent component.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Unique identifier for environment entry. |
|
| Name | string | Yes | Name of the environment variable. |
|
| Value | string | No | The value to set into the environment variable. |
|
| Separator | string | No | Optional attribute to change the separator used between values. |
|
| Action | NMTOKEN (restriction) | No | Specfies whether the environmental variable should be created, set or removed when the parent component is installed. |
|
| Part | NMTOKEN (restriction) | No | ||
| Permanent | YesNoType | No | Specifies that the environment variable should not be removed on uninstall. |
|
| System | YesNoType | No | Specifies that the environment variable should be added to the system environment space. |
Always empty.
<xs:element name="Environment">
<xs:annotation>
<xs:documentation>
Environment variables added or removed for the parent component.
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="Environment" href="http://msdn.microsoft.com/library/aa368369.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Unique identifier for environment entry.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Name of the environment variable.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Value" type="xs:string">
<xs:annotation>
<xs:documentation>
The value to set into the environment variable.
If this attribute is not set, the environment variable is removed during installation if it exists on the machine.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Separator" type="xs:string">
<xs:annotation>
<xs:documentation>Optional attribute to change the separator used between values. By default a semicolon is used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Action">
<xs:annotation>
<xs:documentation>Specfies whether the environmental variable should be created, set or removed when the parent component is installed.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="create">
<xs:annotation>
<xs:documentation>Creates the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="set">
<xs:annotation>
<xs:documentation>Creates the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="remove">
<xs:annotation>
<xs:documentation>
Removes the environment variable during an installation.
The installer only removes an environment variable during an installation if the name and value
of the variable match the entries in the Name and Value attributes.
If you want to remove an environment variable, regardless of its value, do not set the Value attribute.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Part">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="all">
<xs:annotation>
<xs:documentation>
This value is the entire environmental variable. This is the default.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="first">
<xs:annotation>
<xs:documentation>
This value is prefixed.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="last">
<xs:annotation>
<xs:documentation>
This value is appended.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Permanent" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies that the environment variable should not be removed on uninstall.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="System" type="YesNoType">
<xs:annotation>
<xs:documentation>
Specifies that the environment variable should be added to the system environment space. The default
is 'no' which indicates the environment variable is added to the user environment space.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Extending string
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | integer | No | Number of the error for which a message is being provided. |
Contains text only.
<xs:element name="Error">
<xs:annotation>
<xs:appinfo>
<xse:msiRef table="Error" href="http://msdn.microsoft.com/library/aa368554.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>Element value is Message, use CDATA if message contains delimiter characters</xs:documentation>
</xs:annotation>
<xs:attribute name="Id" type="xs:integer">
<xs:annotation>
<xs:documentation>Number of the error for which a message is being provided. See MSI SDK for error definitions.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
Declares a merge module with which this merge module is incompatible.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| ExcludedId | string | Yes | Identifier of the merge module that is incompatible. |
|
| ExcludeExceptLanguage | integer | No | Numeric language ID of the merge module in ExcludedID. |
|
| ExcludeLanguage | integer | No | Numeric language ID of the merge module in ExcludedID. |
|
| ExcludedMinVersion | string | No | Minimum version excluded from a range. |
|
| ExcludedMaxVersion | string | No | Maximum version excluded from a range. |
Always empty.
<xs:element name="Exclusion">
<xs:annotation>
<xs:documentation>Declares a merge module with which this merge module is incompatible.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="ExcludedId" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Identifier of the merge module that is incompatible.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExcludeExceptLanguage" type="xs:integer">
<xs:annotation>
<xs:documentation>Numeric language ID of the merge module in ExcludedID. All except this language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExcludeLanguage" type="xs:integer">
<xs:annotation>
<xs:documentation>Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExcludedMinVersion" type="xs:string">
<xs:annotation>
<xs:documentation>Minimum version excluded from a range. If not set, all versions before max are excluded. If neither max nor min, no exclusion based on version.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ExcludedMaxVersion" type="xs:string">
<xs:annotation>
<xs:documentation>Maximum version excluded from a range. If not set, all versions after min are excluded. If neither max nor min, no exclusion based on version.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Initiates the execution sequence.
Type ActionSequenceType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Sequence | integer | No | A value used to indicate the position of this action in a sequence. |
|
| Suppress | YesNoType | No | If yes, this action will not occur. |
Contains text only.
The condition for this action may be specified in the element's inner text.
<xs:element name="ExecuteAction" type="ActionSequenceType">
<xs:annotation>
<xs:appinfo>
<xse:msiRef action="ExecuteAction" href="http://msdn.microsoft.com/library/aa368565.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
<xs:documentation>Initiates the execution sequence. The condition for this action may be specified in the element's inner text.</xs:documentation>
</xs:annotation>
</xs:element>
Extension for a Component
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | This is simply the file extension, like "doc" or "xml". Do not include the preceding period. |
|
| ContentType | string | No | The MIME type that is to be written. |
|
| Advertise | YesNoType | No | Whether this extension is to be advertised. The default is "no". |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| MIME | anyType (restriction) | 1..1 | MIME content-type for an Extension |
| Verb | anyType (restriction) | 1..1 | Verb definition for an Extension. |
<xs:element name="Extension">
<xs:annotation>
<xs:documentation>
Extension for a Component
</xs:documentation>
<xs:appinfo>
<xse:msiRef table="MIME" href="http://msdn.microsoft.com/library/aa370035.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Verb" href="http://msdn.microsoft.com/library/aa372487.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>MIME and Verbs can be associated with Extensions</xs:documentation>
</xs:annotation>
<xs:element ref="MIME" />
<xs:element ref="Verb" />
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>This is simply the file extension, like "doc" or "xml". Do not include the preceding period.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ContentType" type="xs:string">
<xs:annotation>
<xs:documentation>The MIME type that is to be written.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Advertise" type="YesNoType">
<xs:annotation>
<xs:documentation>Whether this extension is to be advertised. The default is "no".</xs:documentation>
</xs:annotation>
</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>
Contains information about specific files that are not part of a regular target image.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| File | string | Yes | Foreign key into the File table. |
|
| Source | string | No | Full path of the external file. |
|
| src | string | No | ||
| Order | int | Yes | Specifies the order of the external files to use when creating the patch. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
1..1 | ||
| ProtectRange | anyType (restriction) | 1..* | Specifies part of a file that cannot be overwritten during patching. |
| SymbolPath | anyType (restriction) | 1..* | A path to symbols. |
|
0..* | ||
| IgnoreRange | anyType (restriction) | 1..1 | Specifies part of a file that is to be ignored during patching. |
<xs:element name="ExternalFile">
<xs:annotation>
<xs:documentation>Contains information about specific files that are not part of a regular target image.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="ProtectRange" maxOccurs="unbounded" />
<xs:element ref="SymbolPath" maxOccurs="unbounded" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="IgnoreRange" />
</xs:choice>
</xs:sequence>
<xs:attribute name="File" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Foreign key into the File table.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Source" type="xs:string">
<xs:annotation>
<xs:documentation>Full path of the external file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="src" type="xs:string">
<xs:annotation>
<xs:appinfo>
<xse:deprecated ref="Source" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Order" type="xs:int" use="required">
<xs:annotation>
<xs:documentation>Specifies the order of the external files to use when creating the patch.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
Group of one or more upgraded images of a product.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| DiskId | int | No | Entered into the DiskId field of the new Media table record. |
|
| DiskPrompt | string | No | Value to display in the "[1]" of the DiskPrompt Property. |
|
| MediaSrcProp | string | No | Entered into the Source field of the new Media table entry of the upgraded image. |
|
| Name | string | Yes | Identifier for the family. |
|
| SequenceStart | int | No | Sequence number for the starting file. |
|
| VolumeLabel | string | No | Entered into the VolumeLabel field of the new Media table record. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
1..1 | ||
| UpgradeImage | anyType (restriction) | 1..* | Contains information about the upgraded images of the product. |
|
0..* | ||
| ExternalFile | anyType (restriction) | 1..1 | Contains information about specific files that are not part of a regular target image. |
| ProtectFile | anyType (restriction) | 1..1 | Specifies a file to be protected. |
<xs:element name="Family">
<xs:annotation>
<xs:documentation>Group of one or more upgraded images of a product.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="UpgradeImage" maxOccurs="unbounded" />
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ExternalFile" />
<xs:element ref="ProtectFile" />
</xs:choice>
</xs:sequence>
<xs:attribute name="DiskId" type="xs:int">
<xs:annotation>
<xs:documentation>Entered into the DiskId field of the new Media table record.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DiskPrompt" type="xs:string">
<xs:annotation>
<xs:documentation>Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="MediaSrcProp" type="xs:string">
<xs:annotation>
<xs:documentation>Entered into the Source field of the new Media table entry of the upgraded image.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Identifier for the family.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SequenceStart" type="xs:int">
<xs:annotation>
<xs:documentation>Sequence number for the starting file.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VolumeLabel" type="xs:string">
<xs:annotation>
<xs:documentation>Entered into the VolumeLabel field of the new Media table record.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
A feature for the Feature table.
Restricting anyType
| Name | Type | Required? | Default | Description |
|---|---|---|---|---|
| Id | string | Yes | Unique identifier of the feature. |
|
| Absent | NMTOKEN (restriction) | No | This attribute determines if a user will have the option to set a feature to absent in the user interface. |
|
| AllowAdvertise | NMTOKEN (restriction) | No | This attribute determins the possible advertise states for this feature. |
|
| ConfigurableDirectory | string | No | Specify the Id of a Directory that can be configured by the user at installation time. |
|
| Description | string | No | Longer string of text describing the feature. |
|
| Display | string | No | Determines the initial display of this feature in the feature tree. |
|
| InstallDefault | NMTOKEN (restriction) | No | This attribute determines the default install/run location of a feature. |
|
| Level | integer | Yes | Sets the install level of this feature. |
|
| Title | string | No | Short string of text identifying the feature. |
|
| TypicalDefault | NMTOKEN (restriction) | No | This attribute determines the default advertise state of the feature. |
Contains elements as defined in the following table.
| Component | Type | Occurs | Description |
|---|---|---|---|
|
0..* | ||
| any | 1..1 | Allow any element from the ##other namespace. |
|
| Component |