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.
The source code schema for the Windows Installer XML Toolset Utility Extension.
Closes applications or schedules a reboot if application cannot be closed.
Condition that determines if the application should be closed. Must be blank or evaluate to true
for the application to be scheduled for closing.
Identifier for the close application (primary key).
Name of the exectuable to be closed. This should only be file name.
Description to show if application is running and needs to be closed.
Optionally orders the applications to be closed.
Optionally sends a close message to the application. Default is no.
Optionally sends a close message to the application from deffered action without impersonation. Default is no.
Optionally prompts for reboot if application is still running. Default is yes.
Property to be set if application is still running. Useful for launch conditions or to conditionalize custom UI to ask user to shut down apps.
Creates an event source.
The number of categories in CategoryMessageFile. CategoryMessageFile
must be specified too.
Name of the category message file. CategoryCount must be specified too.
Note that this is a formatted field, so you can use [#fileId] syntax to
refer to a file being installed. It is also written as a REG_EXPAND_SZ
string, so you can use %environment_variable% syntax to refer to a file
already present on the user's machine.
Name of the event message file.
Note that this is a formatted field, so you can use [#fileId] syntax to
refer to a file being installed. It is also written as a REG_EXPAND_SZ
string, so you can use %environment_variable% syntax to refer to a file
already present on the user's machine.
Marks the EventSource registry as the key path of the component it belongs to.
Name of the event source's log.
Name of the event source.
Name of the parameter message file.
Note that this is a formatted field, so you can use [#fileId] syntax to
refer to a file being installed. It is also written as a REG_EXPAND_SZ
string, so you can use %environment_variable% syntax to refer to a file
already present on the user's machine.
Equivalent to EVENTLOG_ERROR_TYPE.
Equivalent to EVENTLOG_AUDIT_FAILURE.
Equivalent to EVENTLOG_INFORMATION_TYPE.
Equivalent to EVENTLOG_AUDIT_SUCCESS.
Equivalent to EVENTLOG_WARNING_TYPE.
Creates a file share out of the component's directory.
ACL permission
Identifier for the file share (primary key).
Name of the file share.
Description of the file share.
Sets ACLs on a FileShare. This element has no Id attribute.
The table and key are taken from the parent element.
For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.
For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.
For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent.
For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent.
specifying this will fail to grant read access
Finds user groups on the local machine or specified Active Directory domain. The local machine will be
searched for the group first then fallback to looking in Active Directory. This element is not capable
of creating new groups but can be used to add new or existing users to an existing group.
Unique identifier in your installation package for this group.
A Formatted string that contains the name of the group to be found.
An optional Formatted string that specifies the domain for the group.
Used to join a user to a group
How To: Create a shortcut to a webpage
Creates a shortcut to a URL.
Unique identifier in your installation package for this Internet shortcut.
Identifier reference to Directory element where shortcut is to be created. This attribute's value defaults to the parent Component directory.
The name of the shortcut file, which is visible to the user. (The .lnk
extension is added automatically and by default, is not shown to the user.)
URL that should be opened when the user selects the shortcut. Windows
opens the URL in the appropriate handler for the protocol specified
in the URL. Note that this is a formatted field, so you can use
[#fileId] syntax to refer to a file being installed (using the file:
protocol).
Which type of shortcut should be created.
Creates .url files using IUniformResourceLocatorW.
Creates .lnk files using IShellLinkW (default).
Used to create performance categories and configure performance counters.
Unique identifier in your installation package for this performance counter category.
Name for the performance counter category. If this attribute is not provided the Id attribute is used as the name of the performance counter category.
Optional help text for the performance counter category.
Flag that specifies whether the performance counter category is multi or single instanced. Default is single instance.
DLL that contains the performance counter. The default is "netfxperf.dll" which should be used for all managed code performance counters.
Function entry point in to the Library DLL called when opening the performance counter. The default is "OpenPerformanceData" which should be used for all managed code performance counters.
Function entry point in to the Library DLL called when closing the performance counter. The default is "ClosePerformanceData" which should be used for all managed code performance counters.
Function entry point in to the Library DLL called when collecting data from the performance counter. The default is "CollectPerformanceData" which should be used for all managed code performance counters.
Default language for the performance category and contained counters' names and help text.
Creates a performance counter in a performance category.
Name for the performance counter.
Optional help text for the performance counter.
Type of the performance counter.
Language for the peformance counter name and help. The default is to use the parent PerformanceCategory element's DefaultLanguage attribute.
Used to install Perfmon counters.
Used to install Perfmon Counter Manifests.
The directory that holds the resource file of the providers in the perfmon counter manifest. Often the resource file path cannot be determined until setup time. Put the directory here and during perfmon manifest registrtion the path will be updated in the registry. If not specified, Perfmon will look for the resource file in the same directory of the perfmon counter manifest file.
Used to install Event Manifests.
The message file (including path) of all the providers in the event manifest. Often the message file path cannot be determined until setup time. Put your MessageFile here and the messageFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
The parameter file (including path) of all the providers in the event manifest. Often the parameter file path cannot be determined until setup time. Put your ParameterFile here and the parameterFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
The resource file (including path) of all the providers in the event manifest. Often the resource file path cannot be determined until setup time. Put your ResourceFile here and the resourceFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
Sets ACLs on File, Registry, CreateFolder, or ServiceInstall. When under a Registry element, this cannot be used
if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute.
The table and key are taken from the parent element. To use PermissionEx with an IA-64 MSI, you must
compile all of your source files with the "-arch ia64" switch, to ensure the IA-64 custom action is used, and not
the x64 custom action.
For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.
For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.
For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent.
For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent.
specifying this will fail to grant read access
Required to call the QueryServiceConfig and QueryServiceConfig2 functions to query the service configuration. Only valid under a 'ServiceInstall' parent.
Required to call the ChangeServiceConfig or ChangeServiceConfig2 function to change the service configuration. Only valid under a 'ServiceInstall' parent.
Required to call the QueryServiceStatus function to ask the service control manager about the status of the service. Only valid under a 'ServiceInstall' parent.
Required to call the EnumDependentServices function to enumerate all the services dependent on the service. Only valid under a 'ServiceInstall' parent.
Required to call the StartService function to start the service. Only valid under a 'ServiceInstall' parent.
Required to call the ControlService function to stop the service. Only valid under a 'ServiceInstall' parent.
Required to call the ControlService function to pause or continue the service. Only valid under a 'ServiceInstall' parent.
Required to call the ControlService function to ask the service to report its status immediately. Only valid under a 'ServiceInstall' parent.
Required to call the ControlService function to specify a user-defined control code. Only valid under a 'ServiceInstall' parent.
Service configuration information for failure actions.
Nesting a ServiceConfig element under a ServiceInstall element will result in the service being installed to be configured.
Nesting a ServiceConfig element under a component element will result in an already installed service to be configured. If the service does not exist prior to the install of the MSI package, the install will fail.
Required if not under a ServiceInstall element.
Action to take on the first failure of the service.
Action to take on the second failure of the service.
Action to take on the third failure of the service.
Number of days after which to reset the failure count to zero if there are no failures.
If any of the three *ActionType attributes is "restart", this specifies the number of seconds to wait before doing so.
If any of the three *ActionType attributes is "runCommand", this specifies the command to run when doing so.
If any of the three *ActionType attributes is "reboot", this specifies the message to broadcast to server users before doing so.
User for all kinds of things. When it is not nested under a component it is included in the MSI so it can be referenced by other elements such as the User attribute in the AppPool element. When it is nested under a Component element, the User will be created on install and can also be used for reference.
A Formatted string that contains the name of the user account.
A Formatted string that contains the local machine or Active Directory domain for the user.
Usually a Property that is passed in on the command-line to keep it more secure.
The account's password never expires. Equivalent to UF_DONT_EXPIRE_PASSWD.
The user cannot change the account's password. Equivalent to UF_PASSWD_CANT_CHANGE.
Indicates whether the user account should be removed or left behind on uninstall.
Indicates if the install should fail if the user already exists.
Indicates whether or not the user can logon as a serivce. User creation can be skipped if all that is desired is to set this access right on the user.
Indicates if the user account properties should be updated if the user already exists.
Indicates whether the user must change their password on their first login.
The account is disabled. Equivalent to UF_ACCOUNTDISABLE.
Indicates whether or not to create the user. User creation can be skipped if all that is desired is to join a user to groups.
Adds or removes .xml file entries. If you use the XmlFile element you must reference WixUtilExtension.dll as it contains the XmlFile custom actions.
Identifier for xml file modification.
The XPath of the element to be modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped.
Path of the .xml file to configure.
Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.
The value to be written. See the Formatted topic for information how to escape square brackets in the value.
The type of modification to be made to the XML file when the component is installed.
Creates a new element under the element specified in ElementPath. The Name attribute is required in this case and specifies the name of the new element. The Value attribute is not necessary when createElement is specified as the action. If the Value attribute is set, it will cause the new element's text value to be set.
Deletes a value from the element specified in the ElementPath. If Name is specified, the attribute with that name is deleted. If Name is not specified, the text value of the element specified in the ElementPath is deleted. The Value attribute is ignored if deleteValue is the action specified.
Sets a value in the element specified in the ElementPath. If Name is specified, and attribute with that name is set to the value specified in Value. If Name is not specified, the text value of the element is set. Value is a required attribute if setValue is the action specified.
Sets all the values in the elements that match the ElementPath. If Name is specified, attributes with that name are set to the same value specified in Value. If Name is not specified, the text values of the elements are set. Value is a required attribute if setBulkValue is the action specified.
Specifies whether or not the modification should be removed on uninstall. This has no effect on uninstall if the action was deleteValue.
Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.
Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.
Specify whether the DOM object should use XPath language or the old XSLPattern language (default) as the query language.
Adds or removes .xml file entries. If you use the XmlConfig element you must reference WixUtilExtension.dll as it contains the XmlConfig custom actions.
Identifier for xml file modification.
The Id of another XmlConfig to add attributes to. In this case, the 'Action' 'Node' and 'On' attributes must be left unspecified.
The XPath of the parent element being modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped.
Path of the .xml file to configure.
Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.
Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.
Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.
The value to be written. See the Formatted topic for information how to escape square brackets in the value.
The XPath to the element being modified. This is required for 'delete' actions. For 'create' actions, VerifyPath is used to decide if the element already exists.
Values of this type will either be "yes" or "no".
Enumeration of valid languages for performance counters.
Enumeration of valid types for performance counters.