Schema for describing Windows Installer database files (.msi/.msm/.msp).
This is the top-level container element for every wxs file. Among the possible children,
the Bundle, Package, Module, Patch elements are analogous to the main function in a C program.
There can only be one of these present when linking occurs. Package compiles into an MSI file,
Module compiles into an MSM file, Patch compiles into an MSP file. The Fragment element is an atomic
unit which ultimately links into either a Package, Module. The Fragment can either be completely included or excluded during linking.
Required version of the WiX toolset to compile this input file.
Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
This is the top-level container element for every wxi file.
The root element for creating bundled packages.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
A URL for more information about the bundle to display in Programs and Features (also
known as Add/Remove Programs).
Whether Packages and Payloads not assigned to a container should be added to the default attached container or if they should be external. The default is yes.
The condition of the bundle. If the condition is not met, the bundle will
refuse to run. Conditions are checked before the bootstrapper application is loaded
(before detect), and thus can only reference built-in variables such as
variables which indicate the version of the OS.
The legal copyright found in the version resources of final bundle executable. If
this attribute is not provided the copyright will be set to "Copyright (c) [Bundle/@Manufacturer]. All rights reserved.".
Determines whether the bundle can be modified via the Programs and Features (also known as
Add/Remove Programs). If the value is "button" then Programs and Features will show a single
"Uninstall/Change" button. If the value is "yes" then Programs and Features will only show
the "Uninstall" button". If the value is "no", the default, then a "Change" button is shown.
See the DisableRemove attribute for information how to not display the bundle in Programs
and Features.
Determines whether the bundle can be removed via the Programs and Features (also
known as Add/Remove Programs). If the value is "yes" then the "Uninstall" button will
not be displayed. The default is "no" which ensures there is an "Uninstall" button to
remove the bundle. If the "DisableModify" attribute is also "yes" or "button" then the
bundle will not be displayed in Progams and Features and another mechanism (such as
registering as a related bundle addon) must be used to ensure the bundle can be removed.
A telephone number for help to display in Programs and Features (also known as
Add/Remove Programs).
A URL to the help for the bundle to display in Programs and Features (also known as
Add/Remove Programs).
Path to an icon that will replace the default icon in the final Bundle executable.
This icon will also be displayed in Programs and Features (also known as Add/Remove
Programs).
_New in WiX v6: WiX v6 adds this attribute to the `Package` element._
A globally unique identiifer for the bundle in the world. It is recommended to use a prefix such as "CompanyName." to
create a namespace of sorts. By default, higher versioned upgrade lower versioned bundles with the same Id. Use this
attribute instead of the UpgradeCode attribute in new development.
Optional name to display in Add/Remove Programs while the bundle is being installed, uninstalled, repaired.
The publisher of the bundle to display in Programs and Features (also known as
Add/Remove Programs).
The name of the bundle to display in Programs and Features (also known as Add/Remove
Programs). This name can be accessed and overwritten by a BootstrapperApplication
using the WixBundleName bundle variable.
The name of the parent bundle to display in Installed Updates (also known as Add/Remove
Programs). This name is used to nest or group bundles that will appear as updates.
If the parent name does not actually exist, a virtual parent is created automatically.
Optional attribute to explicitly author the provider key for the entire bundle.
This provider key is designed to persist throughout compatible upgrades so that dependent bundles do not have to be reinstalled
and will not prevent your product from being upgraded. If this attribute is not authored, the value is the
automatically-generated bundle ID and will not automatically support upgrades.
Only a single provider key is supported for bundles. To author that your bundle provides additional features via
packages, author different provider keys for your packages.
Path to a bitmap that will be shown as the bootstrapper application is being loaded. If this attribute is not specified, no splash screen will be displayed.
Set this string to uniquely identify this bundle to its own BA, and to related bundles. The value of this string only matters to the BA, and its value has no direct effect on engine functionality.
A URL for updates of the bundle to display in Programs and Features (also
known as Add/Remove Programs).
For new bundles, it is recommended to use the Id attribute instead. This attribute exists for
backwards compatibility scenarios. Use this attribute to provide a specific unique identifier
for a family of bundles. If two bundles have the same UpgradeCode the bundle with the highest
version will be installed.
The version of the bundle. Newer versions upgrade earlier versions of the bundles
with matching UpgradeCodes. If the bundle is registered in Programs and Features
then this attribute will be displayed in the Programs and Features user interface.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Provides information about an .exe so that the BA can request the engine to run it elevated from any secure location.
The identifier of the ApprovedExeForElevation element.
The key path.
For security purposes, the root key will be HKLM and Variables are not supported.
The value name.
For security purposes, Variables are not supported.
Overrides the default registry to search. The value `always64` will force
the search to look in the 64-bit registry even when building for 32-bit.
Simliarly, the value `always32` will force the search to look in the 32-bit
registry even when building for 64-bit.
The default value is `default` where the search will look in the same registry
as the bitness of the package.
Overrides the default log settings for a bundle.
Disables the default logging in the Bundle. The end user can still generate a
log file by specifying the "-l" command-line argument when installing the
Bundle.
Name of a Variable that will hold the path to the log file. An empty value
will cause the variable to not be set. The default is "WixBundleLog".
File name and optionally a relative path to use as the prefix for the log file. The
default is to use the Bundle/@Name or, if Bundle/@Name is not specified, the value
"Setup".
The extension to use for the log. The default is ".log".
Describes the entry point to the bootstrapper application.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of BootstrapperApplicationDll element.
Location of the source file.
The default value is the Name attribute, if provided.
At a minimum, the SourceFile or Name attribute must be specified.
The destination path and file name for this payload.
The default is the source file name.
At a minimum, the Name or SourceFile attribute must be specified.
This must be a relative path ('\foo' or 'C:\foo' is not allowed).
The DPI awareness of the BootstrapperApplication. The default is 'perMonitorV2'. Microsoft High DPI documentation is at https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows.
Corresponds to the .exe manifest element 'gdiScaling' with content of 'true'. Windows does not support combining this with other DPI awareness modes.
Corresponds to the .exe manifest element 'dpiAware' with content of 'true/pm'.
Corresponds to the .exe manifest element 'dpiAwareness' with content of 'PerMonitorV2, PerMonitor' and the manifest element 'dpiAware' with content of 'true/pm'.
Corresponds to the .exe manifest element 'dpiAware' with content of 'true'.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Contains all the relevant information about the setup UI.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the BootstrapperApplication element. Only required if you want to reference this element using a BootstrapperApplicationRef element.
[WIX v5 and later]
The relative destination path and file name for the bootstrapper application executable.
The default is the source file name. Use this attribute to rename the bootstrapper application executable or extract it into a subfolder.
At a minimum, the Name or SourceFile attribute must be specified.
This must be a relative path ('\foo' or 'C:\foo' is not allowed).
[WIX v5 and later]
The path to the bootstrapper application executable.
If not provided, will use the Name attribute value.
At a minimum, the SourceFile or Name attribute must be specified.
[WIX v5 and later]
Indicates whether the bootstrapper application is the secondary or fallback.
This bootstrapper application will only run if the primary bootstrapper application returns a non-zero exit code.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Used to reference a BootstrapperApplication element and optionally add additional payloads to the bootstrapper application.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the BootstrapperApplication element to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Defines a custom XML element for use in a bundle data manifest.
Attribute definition for BundleCustomData. There must be at least one defined.
Instance data for BundleCustomData.
Identifier for the custom table.
Also used as the name of the XML element.
Indicates the custom data is transformed into the bootstrapper application data manifest or the bundle extension data manifest.
Defaults to BootstrapperExtension if ExtensionId is specified, otherwise BootstrapperApplication.
Identifier for the bootstrapper extension.
Required when Type is BootstrapperExtension, must not be specified otherwise.
Attribute definition for BundleCustomData.
The name of the attribute.
Instance data for BundleCustomData.
Used for BundleCustomData. Specifies a BundleAttributeDefinition and its value for the parent BundleElement.
Specifies the BundleAttributeDefinition associated with this value.
An attribute's value.
Used to reference a BundleCustomData element and optionally add more data.
Instance data for BundleCustomData.
The identifier of the BundleCustomData element to reference.
[WIX v5] An extension to the Burn engine. Currently requires a WiX compiler extension to do anything useful.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the BootstrapperExtension element. Only required if you want to reference this element using a BootstrapperExtensionRef element.
The relative destination path and file name for the bundle extension DLL.
The default is the source file name. Use this attribute to rename the bundle extension DLL or extract it into a subfolder.
At a minimum, the Name or SourceFile attribute must be specified.
This must be a relative path ('\foo' or 'C:\foo' is not allowed).
The DLL with the bundle extension entry function.
The default value is the Name attribute, if provided.
At a minimum, the SourceFile or Name attribute must be specified.
[WiX v5] Used to reference a BootstrapperExtension element.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the BootstrapperExtension element to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
[WIX v4 only]An extension to the Burn engine. Currently requires a WiX compiler extension to do anything useful.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the BundleExtension element. Only required if you want to reference this element using a BundleExtensionRef element.
The relative destination path and file name for the bundle extension DLL.
The default is the source file name. Use this attribute to rename the bundle extension DLL or extract it into a subfolder.
At a minimum, the Name or SourceFile attribute must be specified.
This must be a relative path ('\foo' or 'C:\foo' is not allowed).
The DLL with the bundle extension entry function.
The default value is the Name attribute, if provided.
At a minimum, the SourceFile or Name attribute must be specified.
[WiX v4 only] Used to reference a BundleExtension element.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the BundleExtension element to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Writes additional information to the Windows registry that can be used to detect the bundle.
This registration is intended primarily for update to an existing product.
The attributes are used to write the following registry values to the key:
SOFTWARE\[Manufacturer]\Updates\[ProductFamily]\[Name]
ThisVersionInstalled: Y
PackageName: (bundle name)
PackageVersion: (bundle version)
Publisher: [Manufacturer]
PublishingGroup: [Department]
ReleaseType: [Classification]
InstalledBy: [LogonUser]
InstalledDate: [Date]
InstallerName: (installer name)
InstallerVersion: (installer version)
The name of the manufacturer. The default is the Bundle/@Manufacturer attribute,
but may also be a short form, ex: Acme instead of Acme Corporation.
An error is generated at build time if neither attribute is specified.
The name of the department or division publishing the update bundle.
The PublishingGroup registry value is not written if this attribute is not specified.
The name of the family of products being updated. The default is the Bundle/@ParentName attribute.
The corresponding registry key is not created if neither attribute is specified.
The name of the bundle. The default is the Bundle/@Name attribute,
but may also be a short form, ex: KB12345 instead of Update to Product (KB12345).
An error is generated at build time if neither attribute is specified.
The release type of the update bundle, such as Update, Security Update, Service Pack, etc.
The default value is Update.
Contains the chain of packages to install.
Specifies whether the bundle will attempt to roll back packages
executed in the chain. If "yes" is specified then when a vital
package fails to install only that package will roll back and the
chain will stop with the error. The default is "no" which
indicates all packages executed during the chain will be
rolledback to their previous state when a vital package fails.
Specifies whether the bundle will attempt to create a system
restore point when executing the chain. If "yes" is specified then
a system restore point will not be created. The default is "no" which
indicates a system restore point will be created when the bundle is
installed, uninstalled, repaired, modified, etc. If the system restore
point cannot be created, the bundle will log the issue and continue.
Specifies whether the bundle will start installing packages
while other packages are still being cached. If "yes",
packages will start executing when a rollback boundary is
encountered. The default is "no" which dictates all packages
must be cached before any packages will start to be installed.
Describes a single msi package to install.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema. The extension's
CompilerExtension.ParseElement()
method will be called with the package identifier as the first value in
contextValues.
A condition that determines during Repair if the package will be repaired by default.
This condition can use built-in variables and variables returned by searches.
Specifies whether the bundle will allow individual control over the installation state of Features inside
the msi package. Managing feature selection requires special care to ensure the install, modify, update and
uninstall behavior of the package is always correct. The default is "no".
Override the automatic per-machine detection of MSI packages and force the package to be per-machine.
The default is "no", which allows the tools to detect the expected value.
Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is
specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI
will not be displayed.
Describes a single msp package to install.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema. The extension's
CompilerExtension.ParseElement()
method will be called with the package identifier as the first value in
contextValues.
A condition that determines during Repair if the package will be repaired by default.
This condition can use built-in variables and variables returned by searches.
Indicates the package must be executed elevated. The default is "no".
Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no".
Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired.
Describes a single msu package to install.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema. The extension's
CompilerExtension.ParseElement()
method will be called with the package identifier as the first value in
contextValues.
A condition that determines if the package is present on the target system. This condition can use built-in
variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
method to detect the presence of an MsuPackage. Burn uses this condition to determine how to treat this
package during a bundle action; for example, if this condition is false or omitted and the bundle is being
installed, Burn will install this package.
Describes a single exe package to install.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema. The extension's
CompilerExtension.ParseElement()
method will be called with the package identifier as the first value in
contextValues.
A condition that determines if the package is present on the target system. This condition can use built-in
variables and variables returned by searches. This condition is necessary because Windows doesn't provide a
method to detect the presence of an ExePackage. Burn uses this condition to determine how to treat this
package during a bundle action; for example, if this condition is false or omitted and the bundle is being
installed, Burn will install this package.
A condition that determines during Repair if the package will be repaired by default.
This condition can use built-in variables and variables returned by searches.
This attribute may only be specified if RepairArguments is also specified.
The command-line arguments provided to the ExePackage during install. If this attribute is absent the executable will be launched with no command-line arguments.
The command-line arguments to specify to indicate a repair. If the executable package can be repaired but
does not require any special command-line arguments to do so then set the attribute's value to blank. To
indicate that the package does not support repair, omit this attribute.
The command-line arguments provided to the ExePackage during uninstall. If this attribute is absent the executable will be launched with no command-line arguments. To prevent an ExePackage from being uninstalled set the Permanent attribute to "yes".
Indicates the package must be executed elevated. The default is "no".
Indicates the package is a WiX bundle. The default is "no".
If "yes", then the default Protocol value is "burn".
The engine will prepend command line arguments such as "-norestart" for all operations,
as well as avoid running this bundle as a related bundle.
Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none".
Describes a single bundle package to install.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema. The extension's
CompilerExtension.ParseElement()
method will be called with the package identifier as the first value in
contextValues.
A condition that determines during Repair if the package will be repaired by default.
This condition can use built-in variables and variables returned by searches.
The command-line arguments provided to the BundlePackage during install.
The command-line arguments provided to the BundlePackage during repair.
"/repair" is added automatically.
The command-line arguments provided to the BundlePackage during uninstall.
"/uninstall" is added automatically.
Specifies whether the bundle will be displayed in Programs and Features (also known as Add/Remove Programs).
If "yes" is specified the bundle package information will be displayed in Programs and Features.
"no" indicates the bundle will not be displayed.
If not specified, the default is the value of the Permanent attribute.
Describes a rollback boundary in the chain.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema. The extension's
CompilerExtension.ParseElement()
method will be called with the rollback boundary identifier as the 'RollbackBoundaryId' key in
contextValues.
Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is
not provided a stable identifier will be generated.
Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if
the rollback boundary is encountered then the chain will fail and roll back or stop. If "no"
is specified then the chain should continue successfuly at the next rollback boundary.
Name of a Variable that will hold the path to the log file when the rollback boundary is a MSI package transaction.
An empty value will cause the variable to not be set. The default is "WixBundleLog_[RollbackBoundaryId]".
Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no".
Only MsiPackages and MspPackages may be inside of a rollback boundary with Transaction set to "yes".
Specifies whether the package can be uninstalled. The default is "no".
Location of the package to add to the bundle.
The default value is the Name attribute, if provided.
At a minimum, the SourceFile or Name attribute must be specified.
Must not be specified if the package payload is given by the *PackagePayload element.
The destination path and file name for this chain payload. Use this attribute to rename the
chain entry point or extract it into a subfolder. The default value is the file name from the
SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified.
This must be a relative path ('\foo' or 'C:\foo' is not allowed).
Must not be specified if the package payload is given by the *PackagePayload element.
The URL to use to download the package. The following substitutions are supported:
{0} is replaced by the package Id.
{1} is replaced by the payload Id.
{2} is replaced by the payload file name.
Must not be specified if the package payload is given by the *PackagePayload element.
Identifier for this package, for ordering and cross-referencing. The default is the Name attribute
modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores).
The identifier of another package that this one should be installed after. By default the After
attribute is set to the previous sibling package in the Chain or PackageGroup element. If this
attribute is specified ensure that a cycle is not created explicitly or implicitly.
The size this package will take on disk in bytes after it is installed. By default, the binder will
calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs)
and use the total for the install size of the package.
A condition to evaluate before installing the package. The package will only be installed if the condition
evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified,
the package will be uninstalled.
Whether to cache the package. The default is "keep".
The identifier to use when caching the package.
Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages
use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use
the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the
bootstrapper application data manifest.
Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages
use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use
the Description patch metadata property. Other package types must use this attribute to define a description in the
bootstrapper application data manifest.
Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not
be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging.
Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause
the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which
default to no logging.
Specifies whether the package must succeed for the chain to continue. The default "yes"
indicates that if the package fails then the chain will fail and roll back or stop. If
"no" is specified then the chain will continue even if the package reports failure.
Whether the package payload should be embedded in a container or left as an external payload.
Must not be specified if the package payload is given by the *PackagePayload element.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema. The extension's
CompilerExtension.ParseAttribute()
method will be called with the package identifier in
contextValues["PackageId"].
Describes a package group to a bootstrapper.
Identifier for package group.
Create a reference to PackageGroup element that exists inside a Bundle or Fragment element.
The identifier of the PackageGroup element to reference.
The identifier of a package that this group should be installed after.
Allows an MSI property to be set based on the value of a burn engine expression.
The name of the MSI property to set. Burn controls the follow MSI properties so they cannot be set with MsiProperty: ACTION, ALLUSERS, REBOOT, REINSTALL, REINSTALLMODE
The value to set the property to. This string is evaluated by the Burn engine and can be as simple as a Burn engine variable reference or as complex as a full expression.
Condition to determine whether to pass the MSI Property. If this evaluates to false, the MSI Property is not passed along.
Specifies a patch included in the same bundle that is installed when the parent MSI package is installed.
You can also specify that any MspPackage elements in the chain are automatically slipstreamed by setting the Slipstream attribute of an MspPackage to "yes". This will reduce the amount of authoring you need to write and will determine which msi packages can slipstream patches when building a bundle.
The identifier for a MspPackage in the bundle.
Describes a burn engine variable to define.
Whether the value of the variable should be hidden.
The name for the variable.
Whether the variable should be persisted.
Starting value for the variable.
Type of the variable, inferred from the value if not specified.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Id of the search for ordering and dependency.
Name of the variable in which to place the result of the search.
Condition for evaluating the search. If this evaluates to false, the search is not executed at all.
Id of the search that this one should come after.
Schedules a "search" that sets a variable to the given value.
New value for the variable. This string gets formatted, then converted to the specified type, then assigned to the variable.
Leaving Value and Type unspecified will clear the variable.
Type of the variable, inferred from the value if not specified.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Used to reference a SetVariable element.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the SetVariable element to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Representation of a file that contains one or more files.
The URL to use to download the container. This attribute is only valid when the container is detached. The
following substitutions are supported:
{0} is always null.
{1} is replaced by the container Id.
{2} is replaced by the container file name.
The unique identifier for the container. If this attribute is not specified the Name attribute will be used.
The file name for this container. A relative path may be provided to place the container in a sub-folder of the bundle.
Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If
this attribute is not specified, the default is to create a detached container.
Create a reference to an existing Container element.
The identifier of Container element to reference.
Information about the Add/Remove Programs entry that is installed by the package.
ArpEntry may not be specified with DetectCondition or UninstallArguments.
The id of the ARP entry.
Whether the ARP entry is 64-bit.
The DisplayVersion value of the ARP entry that is installed by this package.
Older or missing versions cause this package to be detected as absent.
Newer versions cause this package to be detected as obsolete.
Additional arguments for the uninstall command line.
If yes, use the `UninstallString` value instead of the default `QuietUninstallString`.
Describes map of exit code returned from executable package to a bootstrapper behavior.
Exit code returned from executable package. If no value is provided it means all values not explicitly set default to this behavior.
Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot, errorScheduleReboot, errorForceReboot.
The process completed successfully.
The process failed.
The process completed successfully and requires the machine to be restarted.
The process completed successfully and initiated a restart.
The process failed and requires the machine to be restarted.
The process failed and initiated a restart.
Describes additional, conditional command-line arguments for an ExePackage or BundlePackage.
Additional command-line arguments to apply during package installation if Condition is true.
Additional command-line arguments to apply during package uninstallation if Condition is true.
Additional command-line arguments to apply during package repair if Condition is true.
The condition that controls whether the command-line arguments specified in the
InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the
command line passed to the package. Which attribute is used depends on the
action being applied to the package. For example, when the package is
being installed, the InstallArgument attribute value is appended to the command
line when the package is executed.
Describes a payload to a bootstrapper.
The identifier of Payload element.
Optional public key of the certificate used to sign the payload. It is not recommended to use this attribute and rely on the Hash alone.
Optional thumbprint of the certificate used to sign the payload. It is not recommended to use this attribute and rely on the Hash alone.
Whether the payload should be embedded in a container or left as an external payload.
Optional SHA256 hash of the payload. Must be provided if the SourceFile attribute is not used.
Optional size of the payload in bytes. Required if Hash is specified, otherwise must not be specified.
Location of the source file.
The default value is the Name attribute, if provided.
At a minimum, the SourceFile or Name attribute must be specified.
The destination path and file name for this payload.
The default is the source file name.
At a minimum, the Name or SourceFile attribute must be specified.
This must be a relative path ('\foo' or 'C:\foo' is not allowed).
The URL to use to download the package. The following substitutions are supported:
{0} is replaced by the package Id.
{1} is replaced by the payload Id.
{2} is replaced by the payload file name.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Describes a payload group to a bootstrapper. PayloadGroups referenced from within a Bundle are tied to the Bundle.
PayloadGroups referenced from a Fragment are tied to the context of whatever references them such as an ExePackage or MsiPackage.
It is possible to share a PayloadGroup between multiple Packages and/or a Bundle by creating multiple references to it.
Identifier for payload group.
Create a reference to PayloadGroup element that exists inside a Bundle or Fragment element.
The identifier of the PayloadGroup element to reference.
Describes information about the BundlePackage payload.
Cannot be specified if the owning BundlePackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Choose one of the supported payload generation types: none, externalWithoutDownloadUrl, external, all.
None of the bundle's payloads or containers are automatically included as payloads for the package.
All detached containers from the bundle that have no download url are included as payloads for the package,
as well as all external payloads from the bundle that have no download url.
All detached containers from the bundle are included as payloads for the package,
as well as all external payloads from the bundle.
All detached containers from the bundle are included as payloads for the package,
as well as all other payloads that are not compressed into the detached containers.
This option normally requires extra work to use since it requires all attached containers to have been extracted.
Describes information about the ExePackage payload.
Cannot be specified if the owning ExePackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
Describes information about the MsiPackage payload.
Cannot be specified if the owning MsiPackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
Describes information about the MspPackage payload.
Cannot be specified if the owning MspPackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
Describes information about the MsuPackage payload.
Cannot be specified if the owning MsuPackage specified any of SourceFile, Name, DownloadUrl, or Compressed.
The identifier of the package payload element.
The URL to use to download the package. The following substitutions are supported:
{0} is replaced by the package Id.
{1} is replaced by the payload Id.
{2} is replaced by the payload file name.
Whether the package payload should be embedded in a container or left as an external payload.
The destination path and file name for this chain payload.
Use this attribute to rename the chain entry point or extract it into a subfolder.
The default value is the file name from the SourceFile attribute.
At a minimum, the Name or SourceFile attribute must be specified.
This must be a relative path ('\foo' or 'C:\foo' is not allowed).
Location of the package to add to the bundle.
The default value is the Name attribute, if provided.
At a minimum, the SourceFile or Name attribute must be specified.
Location of the package to add to the bundle.
The default value is the Name attribute, if provided.
If Hash is specified, must not be specified.
Optional public key of the certificate used to sign the payload. It is not recommended to use this attribute and rely on the Hash alone.
Optional thumbprint of the certificate used to sign the payload. It is not recommended to use this attribute and rely on the Hash alone.
Description of the file from version resources.
If Hash is not specified, must not be specified.
SHA-512 hash of the RemotePayload.
If SourceFile is specified, must not be specified.
If specified then Name, DownloadUrl, and Size are required.
Product name of the file from version resouces.
If Hash is not specified, must not be specified.
Size of the remote file in bytes.
Required if Hash is specified, otherwise must not be specified.
Version of the remote file.
If Hash is not specified, must not be specified.
Describes information about the referenced Bundle.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The id of the bundle.
The display name of the bundle.
The version of the bundle's engine.
The size this bundle will take on disk in bytes after it is installed.
The namespace of the bundle's manifest.
Whether the bundle is per-machine.
The protocol version of the related bundle.
The provider key of the bundle.
An upgrade code of the bundle.
The version of the bundle.
Whether the bundle is 64-bit.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Defines a related bundle for the parent RemoteBundle.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the RelatedBundle group.
The action to take on bundles related to this one.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Defines a related bundle for the parent Bundle.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the RelatedBundle group.
The action to take on bundles related to this one. Detect is the default.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Defines the update for a Bundle.
The absolute path or URL to check for an update bundle. Currently the engine provides this value
in the IBootstrapperApplication::OnDetectUpdateBegin() and otherwise ignores the value. In the
future the engine will be able to acquire an update bundle from the location and determine if it
is newer than the current executing bundle.
The Package element is analogous to the main function in a C program. When linking, only one Package section
can be given to the build to produce a successful result. Using this element creates an MSI file which often
referred to as a Product.
You can specify any valid Windows code page by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/) for more information.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The code page integer value or web name for the resulting MSI. See remarks for more information.
The default codepage is 65001 (UTF-8).
Indicates whether the package files are compressed. Default is compressed packages.
_New in WiX v6: WiX v6 adds this attribute to the `Package` element._
A globally unique identiifer for the package in the world. It is recommended to use a prefix such as "CompanyName." to
create a namespace of sorts. By default, higher versioned upgrade lower versioned packages with the same Id. Use this
attibute instead of the UpgradeCode attribute in new development.
The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer
and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and
"405" would represent Windows Installer 4.5. This value is defaulted to "500" which is the latest version of the Windows Installer and
present in Windows 7 and later.
The decimal language ID (LCID) for the product. Sets the ProductLanguage property.
The manufacturer of the package. Sets the Manufacturer property.
The descriptive name of the product. Sets the ProductName property.
Optional ProductCode GUID for the package. By default, a new ProductCode property will be
generated with every build enabling major upgrades.
Use this attribute to specify the installation scope of this package: per-machine, per-user, or a choice of either. The default is per-machine.
Indicates whether the package files are installed using 8.3 filenames. The default is no.
For new packages, it is recommended to use the Id attribute instead. This attribute exists for
backwards compatibility scenarios. Use this attribute to provide a specific upgrade code GUID
for a MSI package. See UpgradeCode
for more information.
_New in WiX v5: WiX v5 adds this attribute to the `Package` element._
The upgrade strategy for the package. If "none," no major upgrade is expected.
If "majorUpgrade," the UpgradeCode attribute is required and a major upgrade is expected.
The default is "majorUpgrade."
A default major upgrade is automatically provided if none is authored.
The product's version string. Sets the ProductVersion property.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
The Module element is analogous to the main function in a C program. When linking, only
one Module section can be given to the linker to produce a successful result. Using this
element creates an msm file.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The name of the merge module (not the file name).
The code page integer value or web name for the resulting MSM. You can specify any valid Windows
code by by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/)
for more information.
The GUID of the Merge Module that will be appended to primary keys in the database.
The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer
and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and
"405" would represent Windows Installer 4.5. This value is defaulted to "500" which is the latest version of the Windows Installer and
present in Windows 7 and later.
The decimal language ID (LCID) of the merge module.
The major and minor versions of the merge module.
Declares a dependency on another merge module.
Identifier of the merge module required by the merge module.
Numeric language ID of the merge module in RequiredID.
Version of the merge module in RequiredID.
Declares a merge module with which this merge module is incompatible.
Identifier of the merge module that is incompatible.
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.
Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified.
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.
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.
Defines the configurable attributes of merge module.
Defines the name of the configurable item.
Specifies the format of the data being changed.
Specifies the type of the data being changed.
Specifies a semantic context for the requested data.
Specifies a default value for the item in this record if the merge tool declines to provide a value.
Does not merge rule according to rules in MSI SDK.
If yes, null is not a valid entry.
Display name for authoring.
Description for authoring.
Location of chm file for authoring.
Keyword into chm file for authoring.
Specifies the configurable fields of a module database and provides a template for the configuration of each field.
Specifies the name of the table being modified in the module database.
Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons.
Specifies the target column in the row named in the Row column.
Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column.
Specifies a table from the merge module that is not merged into an .msi file.
If the table already exists in an .msi file, it is not modified by the merge.
The specified table can therefore contain data that is unneeded after the merge.
To minimize the size of the .msm file, it is recommended that developers remove
unused tables from modules intended for redistribution rather than creating
IgnoreTable elements for those tables.
The name of the table in the merge module that is not to be merged into the .msi file.
The Fragment element is the building block of creating an installer database in WiX. Once defined,
the Fragment becomes an immutable, atomic unit which can either be completely included or excluded
from a product. The contents of a Fragment element can be linked into a product by utilizing one
of the many *Ref elements. When linking in a Fragment, it will be necessary to link in all of its
individual units. For instance, if a given Fragment contains two Component elements, you must link
both under features using ComponentRef for each linked Component. Otherwise, you will get a linker
warning and have a floating Component that does not appear under any Feature.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Optional identifier for a Fragment. Should only be set by advanced users to tag sections.
The Patch element is analogous to the main function in a C program. When linking, only one Patch section
can be given to the linker to produce a successful result. Using this element creates an MSP file.
You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/) for more information.
The ClientPatchId attribute allows you to specify an easily referenced identity that you can use in product authoring. This identity prefixes properties added by WiX to a patch transform, such as ClientPatchId.PatchCode and ClientPatchId.AllowRemoval. If the patch code GUID is auto-generated you could not reference any properties using this auto-generated prefix.
For example, if you were planning to ship a patch referred to as "QFE1" and needed to write your own registry values for Add/Remove Programs in product authoring such as the UninstallString for this patch, you could author a RegistryValue with the name UninstallString and the value [SystemFolder]msiexec.exe /package [ProductCode] /uninstall [QFE1.PatchCode]. In your patch authoring you would then set ClientPatchId to "QFE1" and WiX will add the QFE1.PatchCode property to the patch transform when the patch is created. If the Id attribute specified the patch code to be generated automatically, you could not reference the prefix.PatchCode property as shown above.
The summary information is automatically populated from attribute values of the Patch element including the code page. If you want to override some of these summary information properties or use a different code page for the summary information itself, author the PatchInformation element.
Optional element that allows overriding summary information properties.
Indicates whether custom actions can be skipped when applying the patch.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Patch code for this patch.
The code page integer value or web name for the resulting MSP. See remarks for more information.
Whether this is an uninstallable patch.
Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.
An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information.
Flag used when creating a binary file patch. Default is "no". Don't use imagehlp.dll.
Flag used when creating a binary file patch. Default is "no". Don't fail patch due to imagehlp failures.
Flag used when creating a binary file patch. Default is "no". After matching decorated symbols, try to match remaining by undecorated names.
Description of the patch.
A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.
Optional comments for browsing.
Vendor releasing the package
Indicates that the patch targets the RTM version of the product or the most recent major
upgrade patch. Author this optional property in minor update patches that contain sequencing
information to indicate that the patch removes all patches up to the RTM version of the
product, or up to the most recent major upgrade patch. This property is available beginning
with Windows Installer 3.1.
A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.
If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
application of the patch is optimized if possible. Available beginning with Windows Installer 3.1.
Name of the application or target product suite.
When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller.
Sets information in the patch transform that determines if the transform applies to an installed product and what errors should be ignored when applying the patch transform.
A transform contains the differences between the target product and the upgraded product. When a transform or a patch (which contains transforms) is applied, the following properties of the installed product are validated against the properties of the target product stored in a transform.
ProductCode
ProductLanguage
ProductVersion
UpgradeCode
Windows Installer simply validates that the ProductCode, ProductLanguage, and UpgradeCode of an installed product are equivalent to those propeties of the target product used to create the transform; however, the ProductVersion can be validated with a greater range of comparisons.
You can compare up to the first three fields of the ProductVersion. Changes to the fourth field are not validated and are useful for small updates. You can also choose how to compare the target ProductVersion used to create the transform with the installed ProductVersion. For example, while the default value of 'Equals' is recommended, if you wanted a minor upgrade patch to apply to the target ProductVersion and all older products with the same ProductCode, you would use 'LesserOrEqual'.
Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'.
Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'.
Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'.
Checks the major version.
Checks the major and minor versions.
Checks the major, minor, and update versions.
Determines how the installed ProductVersion is compared to the target ProductVersion used to create the transform. See remarks for more information. The default is 'Equal'.
Installed ProductVersion < target ProductVersion.
Installed ProductVersion <= target ProductVersion.
Installed ProductVersion = target ProductVersion.
Installed ProductVersion >= target ProductVersion.
Installed ProductVersion > target ProductVersion.
Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'.
Ignore errors when adding existing rows. The default is 'yes'.
Ignore errors when adding existing tables. The default is 'yes'.
Ignore errors when deleting missing rows. The default is 'yes'.
Ignore errors when deleting missing tables. The default is 'yes'.
Ignore errors when updating missing rows. The default is 'yes'.
Ignore errors when changing the database code page. The default is 'no'.
Indicates whether custom actions can be skipped when applying the patch.
Skip property (type 51) and directory (type 35) assignment custom actions.
Skip immediate custom actions that are not property or directory assignment custom actions.
Skip custom actions that run within the script.
Identifies a set of product versions.
Identifier for a set of product versions. It is recommended to use short identifiers like 'RTM' and 'SP1'. The identifier will been trimmed to less than 28 characters as required by the Windows Installer.
Path to baseline MSI for patch.
Path to updated MSI for patch.
Optional id for cabinet to place patched files in.
Collection of items that should be kept from the differences between two products.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Identifier which indicates a sequence family to which this patch belongs.
Specifies the ProductCode of the product that this family applies to.
Used to populate the sequence column of the MsiPatchSequence table in the final MSP file.
Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK.
Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
The default value is 'no'.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Groups together multiple patch families to be used in other locations.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Identifier for the PatchFamilyGroup.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Create a reference to a PatchFamilyGroup in another Fragment.
The identifier of the PatchFamilyGroup to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
The PatchCreation element is analogous to the main function in a C program. When linking, only one PatchCreation section
can be given to the linker to produce a successful result. Using this element creates a pcp file.
You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/) for more information.
PatchCreation identifier; this is the primary key for identifying patches.
Use this to set whether the major versions between the upgrade and target images match. See AllowProductVersionMajorMismatches for more information.
Use this to set whether the product code between the upgrade and target images match. See AllowProductCodeMismatches for more information.
Use this to set whether Patchwiz should clean the temp folder when finished. See DontRemoveTempFolderWhenFinished for more information.
The code page integer value or web name for the resulting PCP. See remarks for more information.
The full path, including file name, of the patch package file that is to be generated. See PatchOutputPath for more information.
Used to locate the .msp file for the patch if the cached copy is unavailable. See PatchSourceList for more information.
An 8-digit hex integer representing the combination of patch symbol usage flags to use when creating a binary file patch. See ApiPatchingSymbolFlags for more information.
Use this to set whether changing files should be included in their entirety. See IncludeWholeFilesOnly for more information.
Properties about the patch to be placed in the Summary Information Stream. These are visible from COM through the IStream interface, and these properties can be seen on the package in Explorer.
You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/) for more information.
A short description of the patch that includes the name of the product.
The name of the manufacturer of the patch package.
A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database".
General purpose of the patch package. For example, "This patch contains the logic and data required to install _product_."
The value of this attribute conveys whether the package should be opened as read-only.
A database editing tool should not modify a read-only enforced database and should
issue a warning at attempts to modify a read-only recommended database.
The code page integer value or web name for summary info strings only. The default is 1252. See remarks for more information.
Properties about the patch to be placed in the PatchMetadata table.
A custom property that extends the standard set.
Indicates whether custom actions can be skipped when applying the patch.
Whether this is an uninstallable patch.
Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.
Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute).
Description of the patch.
A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.
Name of the manufacturer.
Indicates that the patch targets the RTM version of the product or the most recent major
upgrade patch. Author this optional property in minor update patches that contain sequencing
information to indicate that the patch removes all patches up to the RTM version of the
product, or up to the most recent major upgrade patch. This property is available beginning
with Windows Installer 3.1.
A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on.
If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
application of the patch is optimized if possible. Available beginning with Windows Installer 3.1.
Name of the application or target product suite.
A custom property for the PatchMetadata table.
The name of the company.
The name of the metadata property.
Value of the metadata property.
A patch that is deprecated by this patch.
Patch GUID to be unregistered if it exists on the machine targeted by this patch.
The product codes for products that can accept the patch.
Whether to replace the product codes that can accept the patch from the target packages with the child elements.
A product code for a product that can accept the patch.
When using the PatchCreation element, if the Id attribute value is '*' or this element is not authored, the product codes of all products referenced by the TargetImages element are used.
When using the Patch element, the Id attribute value must not be '*'. Use the TargetProductCodes/@Replace attribute instead.
The product code for a product that can accept the patch. This can be '*'. See remarks for more information.
A property for this patch database.
When authored under the Patch element, the PatchProperty defines entries in the MsiPatchMetadata table.
Name of the company for a custom metadata property.
Name of the patch property.
Value of the patch property.
Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly.
Identifier which indicates a sequence family to which this patch belongs.
Specifies the ProductCode of the product that this family applies to.
This attribute cannot the specified if the TargetImage attribute is specified.
Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK.
Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
The default value is 'no'.
Specifies the TargetImage that this family applies to.
This attribute cannot the specified if the ProductCode attribute is specified.
Group of one or more upgraded images of a product.
Entered into the DiskId field of the new Media table record.
Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.
Entered into the Source field of the new Media table entry of the upgraded image.
Identifier for the family.
Sequence number for the starting file.
Entered into the VolumeLabel field of the new Media table record.
Contains information about the upgraded images of the product.
Identifier to connect target images with upgraded image.
Full path to location of msi file for upgraded image.
Modified copy of the upgraded installation database that contains additional authoring specific to patching.
Contains information about the target images of the product.
Identifier for the target image.
Full path to the location of the msi file for the target image.
Relative order of the target image.
Product checking to avoid applying irrelevant transforms.
Files missing from the target image are ignored by the installer.
Information about specific files in a target image.
Foreign key into the File table.
Specifies part of a file that is to be ignored during patching.
Offset of the start of the range.
Length of the range.
Specifies part of a file that cannot be overwritten during patching.
Offset of the start of the range.
Length of the range.
Specifies a file to be protected.
Foreign key into the File table.
Contains information about specific files that are not part of a regular target image.
Foreign key into the File table.
Full path of the external file.
Specifies the order of the external files to use when creating the patch.
Specifies files to either ignore or to specify optional data about a file.
Foreign key into the File table.
If yes, the file is ignored during patching, and the next two attributes are ignored.
Specifies whether patching this file is vital.
Whether the whole file should be installed, rather than creating a binary patch.
A path to symbols.
The path.
Properties about the package to be placed in the Summary Information Stream. These are
visible from COM through the IStream interface, and these properties can be seen on the package in Explorer.
You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See [Code pages](../../../tools/codepage/) for more information.
The code page integer value or web name for summary info strings only. See remarks for more information.
Optional comments for browsing. _New in WiX v5: WiX v5 adds this attribute to the `SummaryInformation` element._
The product full name or description.
Optional keywords for browsing.
The vendor releasing the package. Defaults to the Package/@Manufacturer attribute's value.
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.
Name of the attribute associated with the value specified in the Value column.
Value associated with the name specified in the Name column.
Identifies the possible signer certificates used to digitally sign patches.
Digital signatures that identify installation packages in a multi-product transaction.
Adds a digital certificate.
Identifier for a certificate file.
The path to the certificate file.
Reference to a DigitalCertificate element. This will force the entire referenced Fragment's contents
to be included in the installer database. This is only used for references when patching.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Adds a digital signature.
The path to signature's optional hash file.
Adds a system file protection update catalog file
Primary Key to File Table.
Filename for catalog file when installed.
Used to define dependency outside of the package.
Path to catalog file in binary.
Provides a many-to-many mapping from the SFPCatalog table to the File table
Primary Key to File Table.
Adds or removes .ini file entries.
Identifier for ini file. If one is not specified a stable identifier will be generated.
The type of modification to be made.
Creates or updates an .ini entry.
Creates a new entry or appends a new comma-separated value to an existing entry.
Creates an .ini entry only if the entry does no already exist.
Removes an .ini entry.
Removes a tag from an .ini entry.
Name of a property, the value of which is the full path of the folder containing the .ini file. Can be name of a directory in the Directory table, a property set by the AppSearch table, or any other property representing a full path.
The localizable .ini file key within the section.
In prior versions of the WiX toolset, this attribute specified the short name.
This attribute's value may now be either a short or long name.
If a short name is specified, the ShortName attribute may not be specified.
Also, if this value is a long name, the ShortName attribute may be omitted to
allow WiX to attempt to generate a unique short name.
However, if this name collides with another file or you wish to manually specify
the short name, then the ShortName attribute may be specified.
The localizable .ini file section.
The short name of the in 8.3 format.
This attribute should only be set if there is a conflict between generated short names
or the user wants to manually specify the short name.
The localizable value to be written or deleted. This attribute must be set if
the Action attribute's value is "addLine", "addTag", or "createLine".
ODBCDataSource for a Component
Translates into ODBCSourceAttributes
Identifier of the data source.
Name for the data source.
Required if not found as child of ODBCDriver element
Scope for which the data source should be registered.
Data source is registered per machine.
Data source is registered per user.
Set 'yes' to force this file to be key path for parent Component
ODBCDriver for a Component
Translates into ODBCSourceAttributes
Identifier for the driver.
Name for the driver.
Required if not found as child of File element
Required if not found as child of File element or different from File attribute above
ODBCTranslator for a Component
Identifier for the translator.
Name for the translator.
Required if not found as child of File element
Required if not found as child of File element or different from File attribute above
How To: Check the version number of a file during installation
When the parent DirectorySearch/@Depth attribute is greater than 0, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'.
Searches for file and assigns to fullpath value of parent Property
Unique identifier for the file search and external key into the Signature table. If this attribute value is not set then the parent element's @Id attribute is used.
In prior versions of the WiX toolset, this attribute specified the short file name.
This attribute's value may now be either a short or long file name.
If a short file name is specified, the ShortName attribute may not be specified.
If you wish to manually specify the short file name, then the ShortName
attribute may be specified.
The short file name of the file in 8.3 format.
There is a Windows Installer bug which prevents the FileSearch functionality from working
if both a short and long file name are specified. Since the Name attribute allows either
a short or long name to be specified, it is the only attribute related to file names which
should be specified.
The minimum size of the file.
The maximum size of the file.
The minimum version of the file.
The maximum version of the file.
The minimum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second.
The maximum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second.
The languages supported by the file.
A reference to another FileSearch element must reference the same Id and the same Parent Id. If any of these attribute values are different you must instead use a FileSearch element.
References an existing FileSearch element.
Specify the Id to the FileSearch to reference.
How To: Check the version number of a file during installation
How To: Reference another DirectorySearch element
How To: Get the parent directory of a file search
Use the AssignToProperty attribute to search for a file but set the outer property to the directory containing the file. When this attribute is set to 'yes', you may only nest a FileSearch element with a unique Id or define no child element.
When the parent DirectorySearch/@Depth attribute is greater than 0, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'.
Searches for directory and assigns to value of parent Property.
Unique identifier for the directory search.
Path on the user's system. Either absolute, or relative to containing directories.
Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information.
Set the value of the outer Property to the result of this search. See remarks for more information.
How To: Reference another DirectorySearch element
A reference to another DirectorySearch element must reference the same Id, the same Parent Id, and the same Path. If any of these attribute values are different you must instead use a DirectorySearch element.
References an existing DirectorySearch element.
Id of the search being referred to.
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.
Path on the user's system. Either absolute, or relative to containing directories.
Searches for file or directory and assigns to value of parent Property.
The component ID of the component whose key path is to be used for the search.
Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.
The key path of the component is a directory.
The key path of the component is a file. This is the default value.
Searches for file, directory or registry key and assigns to value of parent Property
External key into the Signature table.
The field in the .ini line. If field is Null or 0, the entire line is read.
The key value within the section.
In prior versions of the WiX toolset, this attribute specified the short name.
This attribute's value may now be either a short or long name.
If a short name is specified, the ShortName attribute may not be specified.
Also, if this value is a long name, the ShortName attribute may be omitted to
allow WiX to attempt to generate a unique short name.
However, if you wish to manually specify the short name, then the ShortName
attribute may be specified.
The localizable .ini file section.
The short name of the file in 8.3 format.
This attribute should only be set if the user wants to manually specify the short name.
Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.
A directory location.
A file location. This is the default value.
A raw .ini value.
How To: Read a registry entry during installation
When the Type attribute value is 'directory' the registry value must specify the path to a directory excluding the file name.
When the Type attribute value is 'file' the registry value must specify the path to a file including the file name;
however, if there is no child FileSearch element the parent directory of the file is returned. The FileSearch element requires
that you author the name of the file you are searching for. If you do not know the file name
you must set the Type attribute to 'raw' to return the full file path including the file name.
Searches for file, directory or registry key and assigns to value of parent Property
Signature to be used for the file, directory or registry key being searched for. If omitted, WiX generates a suitable id.
Overrides the default registry to search. The value `always64` will force
the search to look in the 64-bit registry even when building for 32-bit.
Simliarly, the value `always32` will force the search to look in the 32-bit
registry even when building for 64-bit.
The default value is `default` where the search will look in the same registry
as the bitness of the package.
Root key for the registry value.
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Key for the registry value.
Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved.
The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element.
The registry value contains the path to a directory.
The registry value contains the path to a file. To return the full file path you must add a FileSearch element as a child of this element; otherwise, the parent directory of the file path is returned.
Sets the raw value from the registry value. Please note that this value will contain a prefix as follows:
- DWORD: Starts with `#` optionally followed by `+` or `-`.
- REG_BINARY: Starts with `#x` and the installer converts and saves each hexadecimal digit (nibble) as an ASCII character prefixed by `#x`.
- REG_EXPAND_SZ: Starts with `#%`.
- REG_MULTI_SZ: Starts with `[~]` and ends with `[~]`.
- REG_SZ: No prefix, but if the first character of the registry value is `#`, the installer escapes the character by prefixing it with another `#`.
References an existing RegistrySearch element.
Specify the Id of the RegistrySearch to reference.
Sets the parent of a nested DirectorySearch element to CCP_DRIVE.
Adds a row to the CCPSearch table.
Starts searches from the CCP_DRIVE.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
How To: Check the version number of a file during installation
Property value for a Package or Module.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Unique identifier for Property.
Sets a default value for the property. The value will be overwritten if the Property is used for a search.
Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element.
Denotes that the property is saved during [administrative installations](https://learn.microsoft.com/en-us/windows/win32/msi/administrative-installation).
Adds the property name to the [AdminProperties property](https://learn.microsoft.com/en-us/windows/win32/msi/adminproperties).
Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the SecureCustomProperties Property for more information.
Denotes that the Property is not logged during installation. See the MsiHiddenProperties Property for more information.
Use to suppress modularization of this property identifier in merge modules.
Using this functionality is strongly discouraged; it should only be
necessary as a workaround of last resort in rare scenarios.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
How To: Check for .NET Framework versions
Reference to a Property value.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Identifier of Property to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Reference to a SoftwareTag by Regid.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Regid of SoftwareTag to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Shortcut, default target is parent File, CreateFolder, or Component's Directory
How To: Create a shortcut on the Start Menu
Unique identifier for the shortcut. This value will serve as the primary key for the row.
Identifier reference to Directory element where shortcut is to be created. When nested under a Component element, this attribute's value will default to the parent directory. Otherwise, this attribute is required.
If a short name is specified, the ShortName attribute may not be specified.
If this value is a long name, the ShortName attribute may be omitted to
allow WiX to attempt to generate a unique short name.
However, if this name collides with another shortcut or you wish to manually specify
the short name, then the ShortName attribute may be specified.
The short name of the shortcut in 8.3 format.
This attribute should only be set if there is a conflict between generated short names
or the user wants to manually specify the short name.
This attribute can only be set if this Shortcut element is nested under a Component element.
When nested under a Component element, this attribute's value will default to the parent directory.
This attribute's value is the target for a non-advertised shortcut.
This attribute is not valid for advertised shortcuts.
If you specify this value, its value should be a property identifier enclosed by square brackets ([ ]), that is expanded into the file or a folder pointed to by the shortcut.
The localizable description for the shortcut.
The command-line arguments for the shortcut. Note that the resolution of properties
in the Arguments 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 shortcut 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 shortcut.
The hotkey for the shortcut. The low-order byte contains the virtual-key code for
the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of
installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a
users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys
for accessibility.
Identifier reference to Icon element. The Icon identifier should have the same extension
as the file that it points at. For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier
like "MyIcon.exe"
Identifier reference to Icon element.
The shortcut target will be displayed using the SW_SHOWNORMAL attribute.
The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute.
The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute.
This attribute defines one or more directories below the directory referenced by the Directory attribute
where the shortcut will be installed.
Directory identifier (or Property identifier that resolves to a directory) that resolves
to the path of the working directory for the shortcut.
This attribute defines one or more directories below the directory referenced by the WorkingDirectory attribute
for the shortcut's working directory.
Specifies if the shortcut should be advertised or not. Note that advertised shortcuts
always point at a particular application, identified by a ProductCode, and should not be shared between applications.
Advertised shortcuts only work for the most recently installed application, and are removed when that application is
removed. The default value is 'no'.
The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally
authored using [#filekey] form. When this attribute is specified, the DisplayResourceId attribute must also
be provided.
This attribute is only used on Windows Vista and above. If this attribute is not populated and the install
is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and
the install is running on Vista and above, the value in the Name attribute is ignored.
The display name index for the shortcut. This must be a non-negative number. When this attribute is specified, the
DisplayResourceDll attribute must also be provided.
This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
is running on Vista and above, the value in the Name attribute is used. If this attribute is specified and
the install is running on Vista and above, the value in the Name attribute is ignored.
The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally
authored using [#filekey] form. When this attribute is specified, the DescriptionResourceId attribute must also
be provided.
This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
is running on Vista and above, the value in the Name attribute is used. If this attribute is provided and
the install is running on Vista and above, the value in the Name attribute is ignored.
The description name index for the shortcut. This must be a non-negative number. When this attribute is specified,
the DescriptionResourceDll attribute must also be populated.
This attribute is only used on Windows Vista and above. If this attribute is not specified and the install
is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and the
install is running on Vista and above, the value in the Name attribute is ignored.
Property values for a shortcut. This element's functionality is available starting with MSI 5.0.
Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value.
A formatted string identifying the property to be set.
A formatted string supplying the value of the property.
Sets ACLs on File, Registry, or CreateFolder. 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.
Bit mask for SPECIFIC_RIGHTS_ALL from WinNT.h (0x0000FFFF).
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.
Bit mask for FILE_ALL_ACCESS from WinNT.h (0x001F01FF).
specifying this will fail to grant read access
Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used
if the Action attribute's value is remove or removeKeyOnInstall. This element is only available
when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the
WixUtilExtension.
Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute
will be used instead.
Optional condition that controls whether the permissions are applied.
Security descriptor to apply to parent object.
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.
Primary key used to identify this particular entry.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Defines a file to be installed by the package.
How To: Add a file to your installer
Used to configure the ACLs for this file.
Can also configure the ACLs for this file.
Used to create a duplicate of this file elsewhere.
Target of the shortcut will be set to this file.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The unique identifier for this File element. If you omit Id, a stable identifier is generated for you.
[WiX v5] Only valid when the File element is not a child of the Component element.
Overrides the default File bitness. Only a 64-bit File can install to 64-bit locations such
as `ProgramFiles64Folder` and the 64-bit registry. The value `always64` will force the File
bitness to be 64-bit and cannot be included in 32-bit packages.
Simliarly, the value `always32` will force the File bitness to 32-bit and can be included in
32-bit or 64-bit packages.
The default value is `default` where the File will be installed using the
same bitness as the package.
Set this attribute to make this file a companion child of another file. The installation
state of a companion file depends not on its own file versioning information, but on the versioning of its
companion parent. A file that is the key path for its component can not be a companion file (that means
this attribute cannot be set if KeyPath="yes" for this file). The Version attribute cannot be set along
with this attribute since companion files are not installed based on their own version.
[WiX v5] Only valid when the File element is not a child of the Component element.
The condition expression to be evaluated at install time. When false the File will not be installed.
[WiX v5] Only valid when the File element is not a child of the Component element.
This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path.
If not provided, the value will default to "INSTALLFOLDER".
[WiX v5] Only valid when the File element is not a child of the Component element.
This attribute defines one or more directories below the directory referenced by the Directory attribute.
Specifies the name of the installed file. If this attribute is omitted, then
its default value is the file name portion of the Source attribute. If the
Source attribute is omitted, you must specify a Name attribute. For more
information, see [Specifying source files](../../../tools/payloads/).
Set to yes in order to force this file to be the key path for the parent component.
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 the user wants to manually specify the short file name.
Set to yes in order to have the file's read-only attribute set when it is installed on the target machine.
Set to yes in order to have the file's hidden attribute set when it is installed on the target machine.
Set to yes in order to have the file's system attribute set when it is installed on the target machine.
If a file is vital, then installation cannot proceed unless the file is successfully installed. The user will have no option to ignore an error installing this file. If an error occurs, they can merely retry to install the file or abort the installation. The default is "yes," unless the -sfdvital switch (candle.exe) or SuppressFileDefaultVital property (.wixproj) is used.
This attribute should be set to "yes" for every executable file in the installation that has a valid checksum stored in the Portable Executable (PE) file header. Only those files that have this attribute set will be verified for valid checksum during a reinstall.
Sets the file's source type compression. A setting of "yes"/"true", or "no"/"false" will override the setting in the Word Count Summary Property.
A list of paths, separated by semicolons, that represent the paths to be searched to find the imported DLLs. The list is usually a list of properties, with each property enclosed inside square brackets. The value may be set to an empty string. Including this attribute will cause an entry to be generated for the file in the BindImage table.
The cost of registering the file in bytes. This must be a non-negative number. Including this attribute will cause an entry to be generated for the file in the SelfReg table.
Causes an entry to be generated for the file in the Font table with no FontTitle specified. This attribute is intended to be used to register the file as a TrueType font.
Causes an entry to be generated for the file in the Font table with the specified FontTitle. This attribute is intended to be used to register the file as a non-TrueType font.
This is the default language of this file. The linker will replace this value from the value in the file if the suppress files option is not used.
This is the default size of this file. The linker will replace this value from the value in the file if the suppress files option is not used.
This is the default version of this file. The linker will replace this value from the value in the file if the suppress files option is not used.
Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the
Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component.
The file is a .NET Framework assembly.
The file is not a .NET Framework or Win32 assembly. This is the default value.
The file is a Win32 assembly.
Specifies the file identifier of the manifest file that describes this assembly.
The manifest file should be in the same component as the assembly it describes.
This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
Specifies the file identifier of the application file. This assembly will be isolated
to the same directory as the application file.
If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC).
This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies.
The file is a .NET Framework assembly that is processor-neutral.
The file is a .NET Framework assembly for the x86 processor.
The file is a .NET Framework assembly for the x64 processor.
The file is a .NET Framework assembly for the ia64 processor.
The value of this attribute should correspond to the Id attribute of a Media
element authored elsewhere. By creating this connection between a file and
its media, you set the packaging options to the values specified in the Media
element (values such as compression level, cab embedding, etc...). Specifying
the DiskId attribute on the File element overrides the default DiskId attribute
from the parent Component element. If no DiskId attribute is specified,
the default is "1". This DiskId attribute is ignored when creating a merge module
because merge modules do not have media.
Specifies the path to the file in the build process. Overrides default source
path set by parent directories and Name attribute. This attribute must be set
if no source information can be gathered from parent directories. For more
information, see [Specifying source files](../../../tools/payloads/).
This attribute must be set for patch-added files. Each patch should be assigned a different patch group number. Patch groups
numbers must be greater 0 and should be assigned consecutively. For example, the first patch should use PatchGroup='1', the
second patch will have PatchGroup='2', etc...
Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images.
Set to indicate that the patch is non-vital.
Set if the entire file should be installed rather than creating a binary patch.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Use several of these elements to specify each registry value in a multiString registry value. This element
cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'.
The multi-string value.
Use several of these elements to specify each registry value in a multiString registry value. This element
cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'.
Consider using the MultiString element instead.
The multi-string value.
Used for organization of child RegistryValue elements or to create a registry key
(and optionally remove it during uninstallation).
How To: Read a registry entry during installation
How To: Write a registry entry during installation
ACL permission
Can also configure the ACLs for this registry key.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
generated.
The Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer
to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead.
Creates the key, if absent, when the parent component is installed.
Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled.
Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already
removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall.
Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output.
This is the default value.
Set this attribute to 'yes' to create an empty key, if absent, when the parent component is installed.
This value is needed only to create an empty key with no subkeys or values. Windows Installer creates
keys as needed to store subkeys and values. The default is "no".
Set this attribute to 'yes' to remove the key with all its values and subkeys when the parent component is uninstalled.
Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already
removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall.
The default is "no".
The localizable key for the registry value.
If the parent element is a RegistryKey, this value may be omitted to use the
path of the parent, or if its specified it will be appended to the path of the parent.
The predefined root key for the registry value.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Used to create a registry value. For multi-string values, this can be used to prepend or append values.
For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element
cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'.
How To: Write a registry entry during installation
Can also configure the ACLs for this registry value.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
generated by hashing the parent Component identifier, Root, Key, and Name.
The predefined root key for the registry value.
The localizable key for the registry value.
If the parent element is a RegistryKey, this value may be omitted to use the
path of the parent, or if its specified it will be appended to the path of the parent.
The localizable registry value name. If this attribute is not provided the default value for the registry key will
be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows
several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate
values in the Type attribute to get the desired behavior.
Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value
attribute or a child RegistryValue element is specified. This attribute
should only be set when the value of the Action attribute does not include the word 'remove'.
The value is interpreted and stored as a string (REG_SZ).
The value is interpreted and stored as an integer (REG_DWORD).
The value is interpreted and stored as a hexadecimal value (REG_BINARY).
The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).
The value is interpreted and stored as a multiple strings (REG_MULTI_SZ).
Please note that this value will only result in a multi-string value if there is more than one registry value
or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created.
This is the action that will be taken for this registry value.
Appends the specified value(s) to a multiString registry value.
Prepends the specified value(s) to a multiString registry value.
Writes a registry value. This is the default value.
Set this attribute to 'yes' to make this registry key the KeyPath of the parent component.
Only one resource (registry, file, etc) can be the KeyPath of a component.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Used for removing registry keys and all child keys during install or uninstall.
Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
generated by hashing the parent Component identifier, Root, Key, and Name.
This is the action that will be taken for this registry value.
Removes a key with all its values and subkeys when the parent component is installed.
Removes a key with all its values and subkeys when the parent component is uninstalled.
The localizable key for the registry value.
The predefined root key for the registry value.
Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
Used to remove a registry value during installation.
There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey).
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be
generated by hashing the parent Component identifier, Root, Key, and Name.
The localizable key for the registry value.
The localizable registry value name. If this attribute is not provided the default value for the registry key will
be set instead. The Windows Installer allows several special values to be set for this attribute. You should not
use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior.
The predefined root key for the registry value.
Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
Remove a file(s) if the parent component is selected for installation or removal. Multiple files can be removed
by specifying a wildcard for the value of the Name attribute. By default, the source
directory of the file is the directory of the parent component. This can be overridden by specifying the
Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property
attribute with a value corresponding to a property that will have a value that resolves to the full path
to the source directory.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Primary key used to identify this particular entry.
Overrides the directory of the parent component with a specific Directory. This Directory must exist in the
installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute.
Overrides the directory of the parent component with the value of the specified property. The property
should have a value that resolves to the full path of the source 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 the Directory attribute.
This value should be set to the localizable name of the file(s) to be removed. 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.
In prior versions of the WiX toolset, this attribute specified the short file name.
This attribute's value may now be either a short or long file name.
If a short file name is specified, the ShortName attribute may not be specified.
Also, if this value is a long file name, the ShortName attribute may be omitted to
allow WiX to attempt to generate a unique short file name.
However, if you wish to manually specify the short file name, then the ShortName attribute may be specified.
The short file name of the file in 8.3 format.
This attribute should only be set if you want to manually specify the short file name.
This value determines the time at which the file(s) may be removed. For 'install', the file will
be removed only when the parent component is being installed (msiInstallStateLocal or
msiInstallStateSource); for 'uninstall', the file will be removed only when the parent component
is being removed (msiInstallStateAbsent); for 'both', the file will be removed in both cases.
This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
Directory reference for the file to be removed.
Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
Remove an empty folder if the parent component is selected for installation or removal. By default, the folder
is the directory of the parent component. This can be overridden by specifying the Directory attribute
with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value
corresponding to a property that will have a value that resolves to the full path of the folder.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Primary key used to identify this particular entry.
Overrides the directory of the parent component with a specific Directory. This Directory must exist in the
installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute.
Overrides the directory of the parent component with the value of the specified property. The property
should have a value that resolves to the full path of the source 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 the Directory attribute.
This value determines the time at which the folder may be removed, based on the install/uninstall of the parent component.
For 'install', the folder will be removed only when the parent component is being installed (msiInstallStateLocal or
msiInstallStateSource); for 'uninstall', the folder will be removed only when the parent component
is being removed (msiInstallStateAbsent); for 'both', the folder will be removed in both cases.
This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
Directory reference for the folder to be removed.
Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
Create folder as part of parent Component.
Non-advertised shortcut to this folder, Shortcut Target is preset to the folder
ACL permission
Can also configure the ACLs for this folder.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Identifier of Directory to create. Defaults to Directory of parent Component.
This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
Directory reference for the directory to be created.
Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
Qualified published component for parent Component
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
A string GUID that represents the category of components being grouped together.
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.
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.
Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component .
Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
MIME content-type for an Extension
Whether this MIME is to be advertised. The default is to match whatever the parent extension element uses. If the parent element is not advertised, then this element cannot be advertised either.
This is the identifier for the MIME content. It is commonly written in the form of type/format.
Class ID for the COM server that is to be associated with the MIME content.
If 'yes', become the content type for the parent Extension. The default value is 'no'.
Verb definition for an Extension. When advertised, this element creates a row in the
Verb table.
When not advertised, this element creates the appropriate rows in Registry table.
The verb for the command.
The localized text displayed on the context menu.
Value for the command arguments. 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 verb 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 verb.
The sequence of the commands. Only verbs for which the Sequence is specified
are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this
column becomes the default verb. Used only for Advertised verbs.
Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb.
The value should be the identifier of the target file to be executed for the verb.
Either this attribute or the TargetFile attribute must be specified for a non-advertised verb.
The value should be the identifier of the property which will resolve to the path to the target file to be executed for the verb.
Extension for a Component
MIME and Verbs can be associated with Extensions
This is simply the file extension, like "doc" or "xml". Do not include the preceding period.
The MIME type that is to be written.
Whether this extension is to be advertised. The default is "no".
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Register a type library (TypeLib). Please note that in order to properly use this
non-advertised, you will need use this element with Advertise='no' and also author the
appropriate child Interface elements by extracting them from the type library itself.
The GUID that identifes the type library.
Value of 'yes' will create a row in the TypeLib table.
Value of 'no' will create rows in the Registry table.
The default value is 'no'.
Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects.
This attribute can only be set if Advertise='no'.
The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'.
The localizable description of the type library.
Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'.
The identifier of the Directory element for the help directory.
This attribute defines one or more directories below the directory referenced by the HelpDirectory attribute
for the typelib's help directory.
Value of 'yes' means the type library should not be displayed to users, although its use is not restricted.
Should be used by controls. Hosts should create a new type library that wraps the control with extended properties.
This attribute can only be set if Advertise='no'.
The language of the type library. This must be a non-negative integer.
The major version of the type library. The value should be an integer from 0 - 255.
The minor version of the type library. The value should be an integer from 0 - 255.
The resource id of a typelib. The value is appended to the end of the typelib path in the registry.
Value of 'yes' means the type library is restricted, and should not be displayed to users. This attribute can only be set if Advertise='no'.
ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element.
The version-independent ProgId must be the first child element of actual ProgId. Nesting other ProgId elements within the Version-independent ProgId will create COM+ aliases, see http://support.microsoft.com/kb/305745 for more information.
Extensions that refer to this ProgId
For an advertised ProgId, the Id of an Icon element. For a non-advertised ProgId, this is the Id of a file containing an icon resource.
Specifies that the associated ProgId should not be opened by users. The value is presented as a warning to users. An empty string is also valid for this attribute.
Application ID containing DCOM information for the associated application GUID.
If this element is nested under a Fragment, Module, or Package element, it must be
advertised.
When being used in unadvertised mode, the attributes in the AppId element correspond to registry values
under the `[HKCR\AppID\{Id}]` key, as follows:
- `Id`: [HKCR\AppID\`Id`]
- `ActivateAtStorage`: [HKCR\AppID\`Id`]/ActivateAtStorage="Y"
- `Description`: [HKCR\AppID\`Id`]/@="My AppId Description"
- `DllSurrogate`: [HKCR\AppID\`Id`]/DllSurrogate="C:\surrogate.exe"
- `LocalService`: [HKCR\AppID\`Id`]/LocalService="MyServiceName"
- `RemoteServerName`: [HKCR\AppID\`Id`]/RemoteServerName="MyRemoteServer"
- `RunAsInteractiveUser`: [HKCR\AppID\`Id`]/RunAs="Interactive User"
- `ServiceParameters`: [HKCR\AppID\`Id`]/ServiceParameters="-param"
Set this value to 'yes' to configure the client to activate on the same system as persistent storage.
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).
Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised.
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.
Set this value to the AppID GUID that corresponds to the named executable.
Set this value to the name of a service to allow the object to be installed as a Win32 service.
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.
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.
Set this value to the parameters to be passed to a LocalService on invocation.
COM Class registration for parent Component.
When being used in unadvertised mode, the attributes in the Class element correspond to registry
values under the `[HKCR\CLSID\{Id}]` and `[HKCR\CLSID\{Id}\Context]` keys as follows:
- `Id, Context`: [HKCR\CLSID\{Id}\Context]
- `Server`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\@="[!comserv.dll]"
- `ForeignServer`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\@="mscoree.dll"
- `AppId`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]\AppId="{00000000-89AB-0000-0123-000000000000}"
- `Argument`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\@="[!comserv.dll] /arg1 /arg2 /arg3"
- `Control`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Control]
- `Description`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]\@="Description of Example COM Component"
- `Handler`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\InprocHandler32]\@="handler.dll"
- `Insertable`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Insertable]
- `Insertable`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\NotInsertable]
- `Programmable`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Programmable]
- `SafeForInitializing`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
- `ThreadingModel`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]\ThreadingModel="Apartment"
- `TypeLibId`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\TypeLib]\@="{11111111-89AB-1111-0123-111111111111}"
- `Version`: [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version]\@="1.0.0.0"
A ProgId associated with Class must be a child element of the Class element
These Interfaces will be registered with the parent Class and TypeLib (if present).
The Class identifier (CLSID) of a COM server.
The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable".
Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value
for the Context attribute.
A 16-bit local server application.
A 32-bit local server application.
A 16-bit in-process server DLL.
A 32-bit in-process server DLL.
Localized description associated with the Class ID and Program ID.
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 Package element. To associate an AppId with a non-advertised
class, nest the class within a parent AppId element.
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".
Icon index into the icon file.
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).
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.
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.
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).
Threading model for the CLSID.
Version for the CLSID.
Specifies the CLSID may be insertable.
Specifies the CLSID may be programmable.
May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only
be used when the Class element is directly under the Component element. The value can be
that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed.
May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified. 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.
Specifies whether or not to use the short path for the COM server. This can only apply when Advertise is set to 'no'. The default is 'no' meaning that it will use the long file name for the COM server.
May only be specified if the value of the Advertise attribute is "no".
May only be specified if the value of the Advertise attribute is "no".
Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'.
COM Interface registration for parent TypeLib.
GUID identifier for COM Interface.
Name for COM Interface.
Identifies the interface from which the current interface is derived.
GUID CLSID for proxy stub to COM Interface.
GUID CLSID for 32-bit proxy stub to COM Interface.
Number of methods implemented on COM Interface.
Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'.
FileType data for class Id registration.
Offset into file. If positive, offset is from the beginning; if negative, offset is from the end.
Hex value that is AND'd against the bytes in the file at Offset.
If the result of the AND'ing of Mask with the bytes in the file is Value, the file is a match for this File Type.
Service or group of services that must start before the parent service.
The name (not the display name) of a previously installed service or the name of a service group when the Group attribute is set to 'yes'.
Set to 'yes' to indicate that the value in the Id attribute is the name of a group of services. If 'no' or not set, the Id attribute refers to another service by name.
Adds services for parent Component. Use the ServiceControl element to remove services.
The service executable installed will point to the KeyPath for the Component.
Therefore, you must ensure that the correct executable is either the first child
File element under this Component or explicitly mark the appropriate File element
as KeyPath='yes'.
Configures the ACLs for this service.
Ordered list of dependencies when installing services.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Unique identifier for this service configuration. This value will default to the Name attribute if not
specified.
This column is the string that gives the service name to install.
This column is the localizable string that user interface programs use to identify the service.
The Windows Installer does not currently support kernelDriver or systemDriver.
A Win32 service that runs its own process.
A Win32 service that shares a process.
A kernel driver service. This value is not currently supported by the Windows Installer.
A file system driver service. This value is not currently supported by the Windows Installer.
Whether or not the service interacts with the desktop.
Determines when the service should be started. The Windows Installer does not support boot or system.
The service will start during startup of the system.
The service will start when the service control manager calls the StartService function.
The service can no longer be started.
The service is a device driver that will be started by the operating system boot loader. This value is not currently supported by the Windows Installer.
The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer.
Determines what action should be taken on an error.
Logs the error and continues with the startup operation.
Logs the error, displays a message box and continues the startup operation.
Logs the error if it is possible and the system is restarted with the last configuration known to be good. If the last-known-good configuration is being started, the startup operation fails.
When set to 'yes' or left unspecified the overall install will fail if this service fails to install. A value of 'no' indicates failure to install the service will be ignored.
The load ordering group that this service should be a part of.
Fully qualified names must be used even for local accounts, e.g.: ".\LOCAL_ACCOUNT". Valid only when ServiceType is ownProcess.
The password for the account. Valid only when the account has a password.
Contains any command line arguments or properties required to run the service.
Sets the description of the service.
Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set.
Argument used in ServiceControl parent
Starts, stops, and removes services for parent Component. This element is used to control the state
of a service installed by the MSI or MSM file by using the start, stop and remove attributes.
For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install,
remove the service when the product is uninstalled, and stop the service both on install and uninstall.
Ordered list of arguments used when modifying services.
Unique identifier for this service control. This value will default to the Name attribute if not
specified.
Name of the service.
Specifies whether the service should be started by the StartServices action on install, uninstall or both.
For 'install', the service will be started only when the parent component is being installed (msiInstallStateLocal or
msiInstallStateSource); for 'uninstall', the service will be started only when the parent component
is being removed (msiInstallStateAbsent); for 'both', the service will be started in both cases.
Specifies whether the service should be stopped by the StopServices action on install, uninstall or both.
For 'install', the service will be stopped only when the parent component is being installed (msiInstallStateLocal or
msiInstallStateSource); for 'uninstall', the service will be stopped only when the parent component
is being removed (msiInstallStateAbsent); for 'both', the service will be stopped in both cases.
Specifies whether the service should be removed by the DeleteServices action on install, uninstall or both.
For 'install', the service will be removed only when the parent component is being installed (msiInstallStateLocal or
msiInstallStateSource); for 'uninstall', the service will be removed only when the parent component
is being removed (msiInstallStateAbsent); for 'both', the service will be removed in both cases.
Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'.
Privilege required by service configured by ServiceConfig parent. Valid values are a privilege constant or a
Formatted property that resolves to a privilege constant.
Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. However, a
[remark indicating the functionality does not work correctly](https://learn.microsoft.com/en-us/windows/win32/msi/msiconfigureservices-action) was added later.
Consider using the [util:ServiceConfig element](../../schema/util/serviceconfig.md) instead.
List of privileges to apply to service.
Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
specified.
This attribute specifies whether an auto-start service should delay its start until after all other auto-start
services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that
resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured.
This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError"
or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute
is not present the setting is not configured.
This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system
shutdown. If this attribute is not present the default value, 3 minutes, is used.
Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
and OnUninstall.
Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
and OnUninstall.
Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
and OnReinstall.
Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
a ServiceInstall element.
Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property
that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the
setting is not configured.
Failure action for a ServiceConfigFailureActions element.
Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property
that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand").
Specifies the time in milliseconds to wait before performing the value from the Action attribute.
Configures the failure actions for a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0.
Ordered list of failure actions to apply to service.
Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
specified.
This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears
the existing command. If this attribute is not present the setting is not changed.
Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
and OnUninstall.
Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
and OnUninstall.
Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
and OnReinstall.
Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this
attribute is not present the setting is not changed.
Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset.
Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
a ServiceInstall element.
Environment variables added or removed for the parent component.
Unique identifier for environment entry.
Name of the environment variable.
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.
Optional attribute to change the separator used between values. By default a semicolon is used.
Specfies whether the environmental variable should be created, set or removed when the parent component is installed.
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.
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.
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.
This value is the entire environmental variable. This is the default.
This value is prefixed.
This value is appended.
Specifies that the environment variable should not be removed on uninstall.
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.
Launch conditions for MSI packages.
How To: Block installation based on OS version
How To: Check the version number of a file during installation
The condition expression to be evaluated at install time.
Set the value to the text to display when the condition fails and the installation must be terminated.
Feature levels for MSI packages.
The condition expression to be evaluated at install time. When true the Feature level is set to the Value.
Allows modifying the level of a Feature based on the result of the condition.
Shared Component to be privately replicated in folder of parent Component
Shared Component for this application Component.
Disk cost to reserve in a folder for running locally and/or from source.
A primary key that uniquely identifies this ReserveCost entry.
Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory.
If this attribute is not set, it will default to the directory of parent component.
This attribute defines one or more directories below the directory referenced by the Directory attribute
to add cost to.
The number of bytes of disk space to reserve if the component is installed to run from source.
The number of bytes of disk space to reserve if the component is installed to run locally.
Component for parent Directory
How To: Add a file to your installer
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Component identifier; this is the primary key for identifying components. If omitted,
the compiler defaults the identifier to the identifier of the resource that is the
explicit or default keypath of the component (for example, a child File element).
In WiX v4 and WiX v5, such a default identifier is private to the section where it is
defined. To make it public (and therefore accessible from other sections and usable
in references like ComponentRef), give the component an explicit value for Id.
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.
The condition expression to be evaluated at install time. When false the Component will not be installed.
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.
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.
This attribute provides a default DiskId attribute for all child File elements. Specifying
the DiskId on a Component element will override any DiskId attributes set by parent Directory
or DirectoryRef elements. See the File element's DiskId attribute for more information about
the purpose of the DiskId.
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.
This value should be a guid that uniquely identifies this component's contents, language, platform, and version.
If omitted, the default value is '*' which indicates that the linker should generate a stable guid.
Generatable guids are supported only for components with a single file as the component's keypath
or no files and a registry value as the keypath.
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.
If this attribute's value is set to 'yes', then the Directory of this Component is used
as the KeyPath. To set a Registry value or File as the KeyPath of a component, set the
KeyPath attribute to 'yes' on one of those child elements. If KeyPath is not set to 'yes' for the
Component or for a child Registry value or File, WiX will look at the child elements under the
Component in sequential order and try to automatically select one of them as a key path. Allowing
WiX to automatically select a key path can be dangerous because adding or removing child elements
under the Component can inadvertantly cause the key path to change, which can lead to
installation problems.
Optional value that specifies the location that the component can be run from.
Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set).
Enforces that the component can only be run from the source (it cannot be run from the user's computer).
Allows the component to run from source or locally.
If this attribute is set to 'yes', a new Component/@Guid will be generated for each
instance transform. Ensure that all of the resources contained in a multi-instance
Component will be installed to different paths based on the instance Property; otherwise,
the Component Rules will be violated.
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.
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.
If this attribute's value is set to 'yes', enables advanced patching semantics for
Components that are shared across multiple MSI packages. Specifically, the Windows Installer
will cache the shared files to improve patch uninstall. This functionality is available
in Windows Installer 4.5 and later.
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.
This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
Directory reference where the Component will be installed.
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.
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.
Overrides the default Component bitness. Only 64-bit Components can install to 64-bit locations such
as `ProgramFiles64Folder` and the 64-bit registry. The value `always64` will force the Component
bitness to be 64-bit and cannot be included in 32-bit packages.
Simliarly, the value `always32` will force the Component bitness to 32-bit and can be included in
32-bit or 64-bit packages.
The default value is `default` where the Component will be installed using the
same bitness as the package.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Groups together multiple components to be used in other locations.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Identifier for the ComponentGroup.
Sets the default directory identifier for child Component elements.
This attribute defines one or more directories below the directory referenced by the Directory attribute or parent
Directory reference where the contained Components will be installed.
Used to set the default file system source for child Component elements. For more information, see
[Specifying source files](../../../tools/payloads/).
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Create a reference to a ComponentGroup in another Fragment.
_New in WiX v5: Can be a child of the `Package` element._
The identifier of the ComponentGroup to reference.
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.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch.
Warning: this is intended for testing purposes only. Shipping a patch with all changes negates the benefits of using patch families for including only specific changes.
Because changing the ProductCode is not supported in a patch, the ProductCode property is automatically removed from the transform.
Used only for PatchFamilies to include only a binary table entry in a patch.
The identifier of the Binary element to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Used only for PatchFamilies to include only a icon table entry in a patch.
The identifier of the Icon element to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Create a reference to a Feature element in another Fragment.
_New in WiX v5: Can be a child of the `Package` element._
How To: Add a file to your installer
The identifier of the Component element to reference.
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.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
How To: Install the Visual C++ Redistributable with your installer
Merge directive to bring in a merge module that will be redirected to the parent directory.
Data to use as input to a configurable merge module.
The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id.
The value of this attribute should correspond to the Id attribute of a
Media element authored elsewhere. By creating this connection between the merge module and Media
element, you set the packaging options to the values specified in the Media
element (values such as compression level, cab embedding, etc...).
Specifies if the files in the merge module should be compressed.
Specifies the decimal LCID or localization token for the language to merge the Module in as.
Path to the source location of the merge module.
How To: Install the Visual C++ Redistributable with your installer
Merge reference to connect a Merge Module to parent Feature
The unique identifier for the Merge element to be referenced.
Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Data to use as input to a configurable merge module.
Name of the item in the ModuleConfiguration table.
Value to be passed to configurable merge module.
Directory layout for the product. Also specifies the mappings between source and target directories.
How To: Add a file to your installer
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
An optional identifier for the directory. If one is not specified,
a private identifier will be generated.
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).
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
(and must be changed when) the path to that directory, including itself and all parent directories, changes.
Sets the default disk identifier for the files contained in this directory.
This attribute's value may be overridden by a child Component, Directory,
Merge or File element. See the File or Merge elements' DiskId attribute for
more information.
Used to set the file system source for this directory's child elements.
For more information, see [Specifying source files](../../../tools/payloads/).
The name of the directory.
Do not specify this attribute if this directory represents
the same directory as the parent (see the Windows Installer SDK's
Directory table
topic for more information about the "." operator).
This attribute's value may either a short or long directory name. If a short directory
name is specified, the ShortName attribute may not be specified. 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.
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.
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.
The name of the directory on the source media.
If this attribute is not specified, 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.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Create a reference to a Directory element in another Fragment.
How To: Add a file to your installer
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the Directory element to reference.
Sets the default disk identifier for the files contained in this directory.
This attribute's value may be overridden by a child Component, Directory,
Merge or File element. See the File or Merge elements' DiskId attribute for
more information.
Used to set the file system source for this DirectoryRef's child elements.
For more information, see [Specifying source files](../../../tools/payloads/).
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
This extension implements the ISO/IEC 19770-2:2015 specification. A SWID tag file
will be generated an inserted into the Package or Bundle.
Name to use in the filename for the software id tag. By default the filename
uses the Bundle/@Name or Package/@Name. If the bundle name or package name contains
invalid filename characters such as ":" or "?", use this attribute to provide
a valid filename.
The regid for the software manufacturer. A regid is a URI simplified for the common
case. Namely, if the scheme is "http://", it can be removed. Additionally, the domain
should be minimized as much as possible (for example, remove "www." prefix if unnecessary).
For example, the WiX toolset regid is "wixtoolset.org".
A reference to an existing Directory/@Id where the software is installed. The SWID tag file will be installed in a "swidtag" folder
under that directory as per the specification. This attribute is required on a SoftwareTag element found under a Package element.
The path where the software is installed. The SWID tag file will be installed in a "swidtag" folder.
This is a formatted attribute so it is possible to use Variables as the InstallPath by setting
the value to, for example, "[ProgramFilesFolder]CompanyName\Product Name". This attribute is required
on a SoftwareTag element found under a Bundle element.
Optional attribute to explicitly set the Feature when defining the software id tag
in a Package. By default the software id tag will always be installed by a top-level hidden feature.
It is recommended to not set this attribute.
This attribute facilitates the installation of packages that install both 32-bit and 64-bit files. Set this attribute to 'always32'
force the software id tag to a 32-bit location (such as "ProgramFilesFolder") or 'always64' to force the tag to be installed to
a 64-bit location (such as "ProgramFiles64Folder").
The default value is `default` where the tag will be installed to the directory that matches the
same bitness as the package.
This attribute is only allowed on a SoftwareTag element found under a Package element.
References a standard Windows Installer directory, such as ProgramFilesFolder.
How To: Add a file to your installer
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the standard directory to include in the package.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Authoring to define the set of files to be harvested for inclusion in a package.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
A file-selection pattern that can include directory names, file names, and wildcards.
If a pattern is not an absolute path (via a preprocessor variable, unnamed bind path,
or named bind path), it is interpreted as relative to the directory containing the
source file. Absolute paths via a named bind path are recommended.
Wildcards include typical `*.ext` globs and MSBuild-style `**` globs to indicate
that directories should be recursed. Examples include:
| Pattern | Description |
| ------- | ----------- |
| `!(bindpath.ToBeHarvested)\**` | All files in the parent directory identified by the `ToBeHarvested` bind path and its subdirectories. |
| `$(PayloadFiles)\bin\Release\**` | All files in the `bin\Release` subdirectory in the directory named by the `PayloadFiles` preprocessor variable and its subdirectories. |
| `!(bindpath.arm64)\**.pdb` | All files with `.pdb` extension in the parent directory identified by the `arm64` bind path and its subdirectories. |
| `**` | If an unnamed bind path was specified, all files in that directory and its subdirectories. If an unnamed bind path was _not_ specified, all files in directory of the source .wxs file and its subdirectories. |
This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path
for the root of the harvested files.
This attribute defines one or more directories below the directory referenced by the Directory attribute.
This attribute is optional but can only be specified when the Directory attribute is also specified.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Using wildcards, defines the files from a parent `Files` element that should be excluded from harvesting.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Excludes files from the set of files harvested via the parent `Files` element.
Inclusion and exclusion wildcards must match paths. For example, if you have a
`Files` element with `Include="!(bindpath.ToBeHarvested)\**"` and want to
exclude one of the files, use an `Exclude` element with a `Files` attribute
like `!(bindpath.ToBeHarvested)\notatest.txt` to match the inclusion path.
You can also use the `**` wildcard to match directories, such as
`Files="**\pleasedontincludeme.dat"`.
The file-selection pattern can include directory names, file names, and wildcards.
If a pattern is not an absolute path (via a preprocessor variable, unnamed bind path,
or named bind path), it is interpreted as relative to the directory containing the
source file. Absolute paths via a named bind path are recommended.
Wildcards include typical `*.ext` globs and MSBuild-style `**` globs to indicate
that directories should be recursed. Examples include:
| Pattern | Description |
| ------- | ----------- |
| `!(bindpath.ToBeHarvested)\**` | All files in the parent directory identified by the `ToBeHarvested` bind path and its subdirectories. |
| `$(PayloadFiles)\bin\Release\**` | All files in the `bin\Release` subdirectory in the directory named by the `PayloadFiles` preprocessor variable and its subdirectories. |
| `!(bindpath.arm64)\**.pdb` | All files with `.pdb` extension in the parent directory identified by the `arm64` bind path and its subdirectories. |
| `**` | If an unnamed bind path was specified, all files in that directory and its subdirectories. If an unnamed bind path was _not_ specified, all files in directory of the source .wxs file and its subdirectories. |
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts.
Specifies the upper boundary of the range of product versions detected by FindRelatedProducts.
Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value.
The installer sets the REMOVE property to features specified in this column. The features to be removed can be determined at run time. The Formatted string entered in this field must evaluate to a comma-delimited list of feature names. For example: [Feature1],[Feature2],[Feature3]. No features are removed if the field contains formatted text that evaluates to an empty string. The installer sets REMOVE=ALL only if the Remove field is empty.
When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. Windows Installer documentation for the Upgrade table states that the property specified in this field must be a public property and must be added to the SecureCustomProperties property. WiX automatically appends the property specified in this field to the SecureCustomProperties property when creating an MSI. Each UpgradeVersion must have a unique Property value. After the FindRelatedProducts action is run, the value of this property is a list of product codes, separated by semicolons (;), detected on the system.
Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action.
Set to "yes" to detect products and applications but do not uninstall.
Set to "yes" to continue installation upon failure to remove a product or application.
Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default.
Set to "yes" to make the range of versions detected include the value specified in Maximum.
Set to "yes" to detect all languages, excluding the languages listed in the Language attribute.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Upgrade info for a particular UpgradeCode
Nesting a Property element under an Upgrade element has been deprecated.
Please nest Property elements in any of the other supported locations.
This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action.
A feature for the Feature table. Features are the smallest installable unit. See msi.chm for more
detailed information on the myriad installation options for a feature.
How To: Add a file to your installer
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Unique identifier of the feature. The id must be shorter than 38 characters.
This attribute determines if a user will have the option to set a feature to absent in the user interface.
This attribute determines the possible advertise states for this feature. The default is 'yes'.
Specify the Id of a Directory that can be configured by the user at installation time. This identifier
must be a public property and therefore completely uppercase.
Longer string of text describing the feature. This localizable string is displayed by the
Text Control of the Selection Dialog.
Determines the initial display of this feature in the feature tree.
This attribute's value should be one of the following:
- `collapse`: Initially shows the feature collapsed. This is the default value.
- `expand`: Initially shows the feature expanded.
- `hidden`: Prevents the feature from displaying in the user interface.
- an explicit integer value: For advanced users only, it is possible to directly set the integer value of the display value that will appear in the Feature row.
This attribute determines the default install/run location of a feature. This attribute cannot be specified
if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature
to follow the parent installation state and simultaneously favor a particular installation state just for this feature.
Forces the feature to follow the same installation state as its parent feature.
Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute.
Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute.
Sets the install level of this feature. A value of 0 will disable the feature. This value
can be modified at install time using the Level element as a child of the Feature.
The default value is "1".
Short string of text identifying the feature. This string is listed as an item by the
SelectionTree control of the Selection Dialog.
This attribute determines the default advertise state of the feature.
Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute.
This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to
disallow the advertised state for this feature while at the same time favoring it.
Sets the feature to the default non-advertised installation option.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Groups together multiple components, features, and merges to be used in other locations.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Identifier for the FeatureGroup.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Create a reference to a FeatureGroup in another Fragment.
The identifier of the FeatureGroup to reference.
Normally feature group references that end up nested under a parent element create a
connection to that parent. This behavior is undesirable when trying to simply reference
to a FeatureGroup in a different Fragment. Specify 'yes' to have this feature group
reference not create a connection to its parent. The default is 'no'.
Set this attribute to 'yes' in order to make the parent feature of this group
the primary feature for any components and merges contained in the group.
Features may belong to multiple features. By designating a feature as the
primary feature of a component or merge, 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.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Create a reference to a Feature element in another Fragment.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The identifier of the Feature element to reference.
Normally feature references that are nested under a parent element create a connection to that
parent. This behavior is undesirable when trying to simply reference a Feature in a different
Fragment. Specify 'yes' to have this feature reference not create a connection to its parent.
The default is 'no'.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Media element describes a disk that makes up the source media for the installation.
Disk identifier for Media table. This number must be equal to or greater than 1.
The name of the cabinet if some or all of the files stored on the media are in a cabinet file. If no cabinets are used, this attribute must not be set.
Indicates the compression level for the Media's cabinet. This attribute can
only be used in conjunction with the Cabinet attribute. The default is 'medium'.
The disk name, which is usually the visible text printed on the disk. This localizable text is used to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.
Instructs the binder to embed the cabinet in the product if 'yes'. This attribute can only be specified in conjunction with the Cabinet attribute.
This attribute specifies the root directory for the uncompressed files that
are a part of this Media element. By default, the src will be the output
directory for the final image. The default value ensures the binder generates
an installable image. If a relative path is specified in the src attribute,
the value will be appended to the image's output directory. If an absolute
path is provided, that path will be used without modification. The latter two
options are provided to ease the layout of an image onto multiple medias (CDs/DVDs).
The label attributed to the volume. This is the volume label returned
by the GetVolumeInformation function. If the SourceDir property refers
to a removable (floppy or CD-ROM) volume, then this volume label is
used to verify that the proper disk is in the drive before attempting
to install files. The entry in this column must match the volume label
of the physical media.
Optional property that identifies the source of the embedded cabinet.
If a cabinet is specified for a patch, this property should be defined
and unique to each patch so that the embedded cabinet containing patched
and new files can be located in the patch package. If the cabinet is not
embedded - this is not typical - the cabinet can be found in the directory
referenced in this column. If empty, the external cabinet must be located
in the SourceDir directory.
MediaTeplate element describes information to automatically assign files to cabinets.
A maximumum number of cabinets created is 999.
Templated name of the cabinet if some or all of the files stored on the media are in
a cabinet file. This name must begin with either a letter or an underscore, contain
maximum of five characters and {0} in the cabinet name part and must end three character extension.
The default is cab{0}.cab.
Indicates the compression level for the Media's cabinet. This attribute can
only be used in conjunction with the Cabinet attribute. The default is 'medium'.
The disk name, which is usually the visible text printed on the disk. This localizable text is used
to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the
DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.
Instructs the binder to embed the cabinets in the product if 'yes'.
The label attributed to the volume. This is the volume label returned
by the GetVolumeInformation function. If the SourceDir property refers
to a removable (floppy or CD-ROM) volume, then this volume label is
used to verify that the proper disk is in the drive before attempting
to install files. The entry in this column must match the volume label
of the physical media.
Size of uncompressed files in each cabinet, in megabytes. WIX_MUMS environment variable
can be used to override this value. Default value is 200 MB.
Maximum size of cabinet files in megabytes for large files. This attribute is used for packaging
files that are larger than MaximumUncompressedMediaSize into smaller cabinets. If cabinet size
exceed this value, then setting this attribute will cause the file to be split into multiple
cabinets of this maximum size. For simply controlling cabinet size without file splitting use
MaximumUncompressedMediaSize attribute. Setting this attribute will disable smart cabbing feature
for this Fragment / Package. Setting WIX_MCSLFS environment variable can be used to override this
value. Minimum allowed value of this attribute is 20 MB. Maximum allowed value and the Default
value of this attribute is 2048 MB (2 GB).
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
Custom Action Types topic on MSDN.
The identifier of the custom action.
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.
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.
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
Obtaining Context Information for Deferred Execution Custom Actions for more information.
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.
This attribute defines one or more directories below the directory referenced by the Directory attribute.
This attribute is optional but can only be specified when the Directory attribute is also specified.
This attribute specifies the name of a function in a custom action to execute.
This attribute is used with the BinaryRef attribute to create a type 1 custom
action, or with the FileRef attribute to create a type 17 custom action.
This attribute specifies the command line parameters to supply to an externally
run executable. This attribute is typically used with the BinaryRef attribute for a type 2 custom action,
the FileRef 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.
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 BinaryRef attribute described above. In other words, this
attribute must be specified in conjunction with the BinaryRef attribute.
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 BinaryRef attribute described above. In other words, this
attribute must be specified in conjunction with the BinaryRef attribute.
Creates a type 37 or 38 custom action. Specify a path to the script to be embedded in the package in the
`ScriptSourceFile` attribute.
Path to the external file containing the script code. Can be used only with the Script attribute.
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.
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 Formatted
syntax.
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.
Set this attribute to set the return behavior of the custom action.
Indicates that the custom action will run asyncronously and execution may continue after the installer terminates.
Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end.
Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default.
Indicates that the custom action will run synchronously and the return code will not be checked.
This attribute indicates the scheduling of the custom action.
Indicates that the custom action will run after successful completion of the installation script (at the end of the installation).
Indicates that the custom action runs in-script (possibly with elevated privileges).
Indicates that the custom action will only run in the first sequence that runs it.
Indicates that the custom action will run during normal processing time with user privileges. This is the default.
Indicates that the custom action will only run in the first sequence that runs it in the same process.
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.
Indicates that a custom action should be run a second time if it was previously run in an earlier sequence.
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.
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.
Valid only when used with the Script, VBScriptCall, and JScriptCall attributes.
Overrides the default scripting host for script custom actions. The value `always64` will force the
script to run in the 64-bit scripting host. Simliarly, the value `always32` will force the script
to run in the 64-bit scripting host.
The default value is `default` where the script will be run in the scripting host that matches the
same bitness as the package.
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.
Ensures the installer does not log the CustomActionData for the deferred custom action.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
This will cause the entire contents of the Fragment containing the referenced CustomAction to be
included in the installer database.
The identifier of the CustomAction to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
the InstallUISequence and InstallExecuteSequence.
By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case
where multiple SetDirectory elements target the same Id (probably with mutually exclusive conditions).
The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped.
This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to
the Value attribute.
Controls which sequences the Directory assignment is sequenced in.
For 'execute', the assignment is scheduled in the InstallExecuteSequence.
For 'ui', the assignment is scheduled in the InstallUISequence.
For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time.
For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence.
The default is 'both'.
This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a
Property element using the Formatted
syntax.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
the InstallUISequence and InstallExecuteSequence.
By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case
where multiple SetProperty elements target the same Id (probably with mutually exclusive conditions).
The name of the standard or custom action after which this action should be performed. Mutually exclusive with
the Before attribute. A Before or After attribute is required when setting a Property.
The name of the standard or custom action before which this action should be performed. Mutually exclusive with the After attribute. A Before or After attribute is required when setting a Property.
The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped.
This attribute specifies the Property to set to the Value.
Controls which sequences the Property assignment is sequenced in.
For 'execute', the assignment is scheduled in the InstallExecuteSequence.
For 'ui', the assignment is scheduled in the InstallUISequence.
For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time.
For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence.
The default is 'both'.
This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a
Property element using the Formatted
syntax.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
This will cause the entire contents of the Fragment containing the referenced PatchFamily to be
used in the process of creating a patch.
The identifier of the PatchFamily to reference.
Specifies the ProductCode of the product that this family applies to.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Sets the ProductID property to the full product identifier. This action must be sequenced before the user interface wizard in the InstallUISequence table and before the RegisterUser action in the InstallExecuteSequence table. If the product identifier has already been validated successfully, the ValidateProductID action does nothing. The ValidateProductID action always returns a success, whether or not the product identifier is valid, so that the product identifier can be entered on the command line the first time the product is run. The product identifier can be validated without having the user reenter this information by setting the PIDKEY property on the command line or by using a transform. The display of the dialog box requesting the user to enter the product identifier can then be made conditional upon the presence of the ProductID property, which is set when the PIDKEY property is validated. The condition for this action may be specified in the element's inner text.
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.
Initiates dynamic costing of standard installation actions. Any standard or custom actions that affect costing should sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the FileCost action to make all final cost calculations available to the installer through the Component table. The CostInitialize action must be executed before the FileCost action. The installer then determines the disk-space cost of every file in the File table, on a per-component basis, taking both volume clustering and the presence of existing files that may need to be overwritten into account. All actions that consume or release disk space are also considered. If an existing file is found, a file version check is performed to determine whether the new file actually needs to be installed or not. If the existing file is of an equal or greater version number, the existing file is not overwritten and no disk-space cost is incurred. In all cases, the installer uses the results of version number checking to set the installation state of each file. The FileCost action initializes cost calculation with the installer. Actual dynamic costing does not occur until the CostFinalize action is executed. The condition for this action may be specified in the element's inner text.
Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). This isolates the application from other copies of the component that may be installed to a shared location on the computer. The action refers to each record of the IsolatedComponent table and associates the files of the component listed in the Component_Shared field with the component listed in the Component_Application field. The installer installs the files of Component_Shared into the same directory as Component_Application. The installer generates a file in this directory, zero bytes in length, having the short filename name of the key file for Component_Application (typically this is the same file name as the .exe) appended with .local. The IsolatedComponent action does not affect the installation of Component_Application. Uninstalling Component_Application also removes the Component_Shared files and the .local file from the directory. The IsolateComponents action can be used only in the InstallUISequence table and the InstallExecuteSequence table. This action must come after the CostInitialize action and before the CostFinalize action. The condition for this action may be specified in the element's inner text.
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.
Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. The condition for this action may be specified in the element's inner text.
Used for upgrading or installing over an existing application. Reads feature states from existing application and sets these feature states for the pending installation. The condition for this action may be specified in the element's inner text.
Initiates the execution sequence. The condition for this action may be specified in the element's inner text.
Verifies that all costed volumes have enough space for the installation. The condition for this action may be specified in the element's inner text.
Marks the beginning of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text.
Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text.
Registers and unregisters components, their key paths, and the component clients. The condition for this action may be specified in the element's inner text.
Manages the unadvertisement of components listed in the PublishComponent table. The condition for this action may be specified in the element's inner text.
Manages the unadvertisement of CLR and Win32 assemblies that are being removed. The condition for this action may be specified in the element's inner text.
Removes selection-state and feature-component mapping information from the registry. The condition for this action may be specified in the element's inner text.
Stops system services. The condition for this action may be specified in the element's inner text.
Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text.
Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text.
Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. The condition for this action may be specified in the element's inner text.
Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text.
Removes the data sources, translators, and drivers listed for removal during the installation. The condition for this action may be specified in the element's inner text.
Removes registration information about installed fonts from the system. The condition for this action may be specified in the element's inner text.
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. The condition for this action may be specified in the element's inner text.
Manages the removal of COM class information from the system registry. The condition for this action may be specified in the element's inner text.
Manages the removal of extension-related information from the system registry. The condition for this action may be specified in the element's inner text.
Manages the unregistration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text.
Unregisters MIME-related registry information from the system. The condition for this action may be specified in the element's inner text.
Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. The condition for this action may be specified in the element's inner text.
Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. The condition for this action may be specified in the element's inner text.
Modifies the values of environment variables. The condition for this action may be specified in the element's inner text.
Deletes files installed by the DuplicateFiles action. The condition for this action may be specified in the element's inner text.
Removes files previously installed by the InstallFiles action. The condition for this action may be specified in the element's inner text.
Removes any folders linked to components set to be removed or run from source. The condition for this action may be specified in the element's inner text.
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.
Locates existing files on the system and moves or copies those files to a new location. The condition for this action may be specified in the element's inner text.
Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text.
Copies files specified in the File table from the source directory to the destination directory. The condition for this action may be specified in the element's inner text.
Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text.
Queries the Patch table to determine which patches are to be applied. The condition for this action may be specified in the element's inner text.
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.
Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text.
Manages the registration of COM class information with the system. The condition for this action may be specified in the element's inner text.
Manages the registration of extension related information with the system. The condition for this action may be specified in the element's inner text.
Manages the registration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text.
Registers MIME-related registry information with the system. The condition for this action may be specified in the element's inner text.
Sets up an application's registry information. The condition for this action may be specified in the element's inner text.
Writes the .ini file information that the application needs written to its .ini files. The condition for this action may be specified in the element's inner text.
Modifies the values of environment variables. The condition for this action may be specified in the element's inner text.
Registers installed fonts with the system. The condition for this action may be specified in the element's inner text.
Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. The condition for this action may be specified in the element's inner text.
Registers type libraries with the system. The condition for this action may be specified in the element's inner text.
Processes all modules listed in the SelfReg table and registers all installed modules with the system. The condition for this action may be specified in the element's inner text.
Registers COM+ applications. The condition for this action may be specified in the element's inner text.
Registers a service for the system. The condition for this action may be specified in the element's inner text.
Starts system services. The condition for this action may be specified in the element's inner text.
Registers the user information with the installer to identify the user of a product. The condition for this action may be specified in the element's inner text.
Registers the product information with the installer. The condition for this action may be specified in the element's inner text.
Manages the advertisement of the components from the PublishComponent table. The condition for this action may be specified in the element's inner text.
Manages the advertisement of CLR and Win32 assemblies. The condition for this action may be specified in the element's inner text.
Writes each feature's state into the system registry. The condition for this action may be specified in the element's inner text.
Manages the advertisement of the product information with the system. The condition for this action may be specified in the element's inner text.
Marks the end of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text.
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.
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.
Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The RMCCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents RMCCPSearch from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The RMCCPSearch action requires the CCP_DRIVE property to be set to the root path on the removable volume that has the installation for any of the qualifying products. The condition for this action may be specified in the element's inner text.
Queries the LaunchCondition table and evaluates each conditional statement recorded there. If any of these conditional statements fail, an error message is displayed to the user and the installation is terminated. The LaunchConditions action is optional. This action is normally the first in the sequence, but the AppSearch Action may be sequenced before the LaunchConditions action. If there are launch conditions that do not apply to all installation modes, the appropriate installation mode property should be used in a conditional expression in the appropriate sequence table. The condition for this action may be specified in the element's inner text.
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. When FindRelatedProducts detects a correspondence between the upgrade information and an installed product, it appends the product code to the property specified in the ActionProperty column of the UpgradeTable. The FindRelatedProducts action only runs the first time the product is installed. The FindRelatedProducts action does not run during maintenance mode or uninstallation. FindRelatedProducts should be authored into the InstallUISequence table and InstallExecuteSequence tables. The installer prevents FindRelatedProducts from running in InstallExecuteSequence if the action has already run in InstallUISequence. The FindRelatedProducts action must come before the MigrateFeatureStates action and the RemoveExistingProducts action. The condition for this action may be specified in the element's inner text.
Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. 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.
Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Should only be used after InstallExecute. 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.
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.
Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. 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.
Prompts the user to restart the system at the end of 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.
Prompts the user for a restart of the system during 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.
Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. 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.
Use to sequence a custom action.
Text node specifies the condition of the action.
The CustomAction to which the Custom element applies.
Optional condition that determines whether the action should be executed.
Mutually exclusive with Before, After, and Sequence attributes
The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes
The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes
If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
The sequence number for this action. It is recommended to use one of the other mutually exclusive attributes: OnExit, After, and Before.
Reference to dialog to show.
Optional condition that determines whether the dialog should be displayed.
Show the dialog Mutually exclusive with Before, After, and Sequence attributes.
Show the dialog before the specified action. Mutually exclusive with OnExit, After, and Sequence attributes.
Show the dialog after the specified action. Mutually exclusive with OnExit, Before, and Sequence attributes.
If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere. The default is "no".
Show the dialog at the specified sequence. It is recommended to use one of the other mutually exclusive attributes: OnExit, After, and Before.
Use to sequence a custom action.
Displays a Dialog.
Prompts the user to restart the system at the end of installation. Not fixed sequence.
Queries the LaunchCondition table and evaluates each conditional statement recorded there.
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.
Uses file signatures to search for existing versions of products.
Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.
Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.
Sets the ProductID property to the full product identifier.
Initiates the internal installation costing process.
Initiates dynamic costing of standard installation actions.
Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe).
Determines the location of the source and sets the SourceDir property if the source has not been resolved yet.
Ends the internal installation costing process begun by the CostInitialize action.
Used for upgrading or installing over an existing application.
Initiates the execution sequence.
Use to sequence a custom action.
Prompts the user to restart the system at the end of installation. Not fixed sequence.
Prompts the user for a restart of the system during the installation. Not fixed sequence.
Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Not fixed sequence.
Queries the LaunchCondition table and evaluates each conditional statement recorded there.
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.
Uses file signatures to search for existing versions of products.
Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.
Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.
Sets the ProductID property to the full product identifier.
Initiates the internal installation costing process.
Initiates dynamic costing of standard installation actions.
Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe).
Ends the internal installation costing process begun by the CostInitialize action.
Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver.
Used for upgrading or installing over an existing application.
Verifies that all costed volumes have enough space for the installation.
Marks the beginning of a sequence of actions that change the system.
Ensures the needed amount of space exists in the registry.
Registers and unregisters components, their key paths, and the component clients.
Manages the unadvertisement of components listed in the PublishComponent table.
Removes selection-state and feature-component mapping information from the registry.
Stops system services.
Stops a service and removes its registration from the system.
Removes COM+ applications from the registry.
Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled.
Unregisters type libraries from the system.
Removes the data sources, translators, and drivers listed for removal during the installation.
Removes registration information about installed fonts from the system.
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.
Manages the removal of COM class information from the system registry.
Manages the removal of extension-related information from the system registry.
Manages the unregistration of OLE ProgId information with the system.
Unregisters MIME-related registry information from the system.
Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source.
Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation.
Modifies the values of environment variables.
Deletes files installed by the DuplicateFiles action.
Removes files previously installed by the InstallFiles action.
Removes any folders linked to components set to be removed or run from source.
Creates empty folders for components that are set to be installed.
Locates existing files on the system and moves or copies those files to a new location.
Copies files specified in the File table from the source directory to the destination directory.
Duplicates files installed by the InstallFiles action.
Queries the Patch table to determine which patches are to be applied.
Binds each executable or DLL that must be bound to the DLLs imported by it.
Manages the creation of shortcuts.
Manages the registration of COM class information with the system.
Manages the registration of extension related information with the system.
Manages the registration of OLE ProgId information with the system.
Registers MIME-related registry information with the system.
Sets up an application's registry information.
Writes the .ini file information that the application needs written to its .ini files.
Modifies the values of environment variables.
Registers installed fonts with the system.
Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table.
Registers type libraries with the system.
Processes all modules listed in the SelfReg table and registers all installed modules with the system.
Registers COM+ applications.
Registers a service for the system.
Starts system services.
Registers the user information with the installer to identify the user of a product.
Registers the product information with the installer.
Manages the advertisement of the components from the PublishComponent table.
Writes each feature's state into the system registry.
Manages the advertisement of the product information with the system.
Marks the end of a sequence of actions that change the system.
Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence.
Disables rollback for the remainder of the installation.
Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action.
Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action.
Manages the advertisement of CLR and Win32 assemblies.
Manages the unadvertisement of CLR and Win32 assemblies that are being removed.
Use to sequence a custom action.
Initiates the internal installation costing process.
Initiates dynamic costing of standard installation actions.
Ends the internal installation costing process begun by the CostInitialize action.
Initiates the execution sequence.
Verifies that all costed volumes have enough space for the installation.
Marks the beginning of a sequence of actions that change the system.
Copies the product database to the administrative installation point.
Copies files specified in the File table from the source directory to the destination directory.
Marks the end of a sequence of actions that change the system.
Queries the LaunchCondition table and evaluates each conditional statement recorded there.
Use to sequence a custom action.
Initiates the internal installation costing process.
Initiates dynamic costing of standard installation actions.
Ends the internal installation costing process begun by the CostInitialize action.
Verifies that all costed volumes have enough space for the installation.
Marks the beginning of a sequence of actions that change the system.
Copies the product database to the administrative installation point.
Copies files specified in the File table from the source directory to the destination directory.
Queries the Patch table to determine which patches are to be applied.
Marks the end of a sequence of actions that change the system.
Queries the LaunchCondition table and evaluates each conditional statement recorded there.
Determines the location of the source and sets the SourceDir property if the source has not been resolved yet.
Initiates the internal installation costing process.
Ends the internal installation costing process begun by the CostInitialize action.
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).
Verifies that all costed volumes have enough space for the installation.
Marks the beginning of a sequence of actions that change the system.
Manages the creation of shortcuts.
Manages the registration of COM class information with the system.
Manages the registration of extension related information with the system.
Registers MIME-related registry information with the system.
Manages the registration of OLE ProgId information with the system.
Manages the advertisement of the components from the PublishComponent table.
Writes each feature's state into the system registry.
Manages the advertisement of the product information with the system.
Marks the end of a sequence of actions that change the system.
Manages the advertisement of CLR and Win32 assemblies.
Binary data used for CustomAction elements and UI controls.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters.
Path to the binary file.
Use to suppress modularization of this Binary identifier in merge modules.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Icon used for Shortcut, ProgId, or Class elements (but not UI controls).
How To: Set your installer's icon in Add/Remove Programs
How To: Create a shortcut on the Start Menu
The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters.
Path to the icon file.
Unique identifier for embedded chainer.
Value to append to the transaction handle and passed to the chainer executable.
Value is the condition. 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.
Reference to the Binary element that contains the chainer executable. Mutually exclusive with
the FileSource and PropertySource attributes.
Reference to the File element that is the chainer executable. Mutually exclusive with
the BinarySource and PropertySource attributes.
Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with
the BinarySource and FileSource attributes.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents
to be included in the installer database.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Specifies extra files to be extracted for use by the embedded UI, such as language resources.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Unique identifier for embedded UI. If this attribute is not specified the Name attribute or the file name
portion of the SourceFile attribute will be used.
Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages.
Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages.
Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages.
Embedded UI will not recieve any INSTALLLOGMODE_USER messages.
Embedded UI will not recieve any INSTALLLOGMODE_INFO messages.
Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages.
Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages.
Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages.
Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages.
Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages.
Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages.
Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages.
Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages.
Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages.
Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages.
Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages.
Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages.
Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages.
The name for the embedded UI DLL when it is extracted from the MSI package 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 file name portion of the SourceFile
attribute will be used.
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.
Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Defines a resource for use by the embedded UI.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Identifier for the embedded UI resource.
The name for the resource when it is extracted from the MSI package 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.
Path to the binary file that is the embedded UI resource.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Number of the error for which a message is being provided. See MSI SDK for error definitions.
Message to display for the specified error number.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Optional condition that determines whether the control event should be published.
The parent Control for this Publish element, should only be specified when this element is a child of the UI element.
The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element.
This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary.
Set this attribute's value to one of the standard control events to trigger that event.
Either this attribute or the Property attribute must be set, but not both at the same time.
This attribute should only need to be set if this element is nested under a UI element in order to
control the order in which this publish event will be started.
If this element is nested under a Control element, the default value will be one greater than any
previous Publish element's order (the first element's default value is 1).
If this element is nested under a UI element, the default value is always 1 (it does not get a
default value based on any previous Publish elements).
Set this attribute's value to a property name to set that property.
Either this attribute or the Event attribute must be set, but not both at the same time.
If the Property attribute is specified, set the value of this attribute to the new value for the property.
To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}').
Otherwise, this attribute's value should be the argument for the event specified in the Event attribute.
If the event doesn't take an attribute, a common value to use is "0".
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Sets attributes for events in the EventMapping table
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
must be one of the standard control events'
if not present can only handle enable, disable, hide, unhide events
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
An alternative to using the Text attribute on the Control element.
Instructs the text to be imported from a file instead of the element value during the binding process.
Cannot be specified with the Value attribute.
The value of the control's text. Cannot be specified with the SourceFile attribute.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Contains the controls that appear on each dialog.
Alternative to Text attribute.
ComboBox table with ListItem children
ListBox table with ListItem children
ListView table with ListItem children
RadioButton table with RadioButton children
Property table entry for the Property table column associated with this control
Icon referenced in icon column of row
Child elements affecting operation of this control
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Combined with the Dialog Id to make up the primary key of the Control table.
The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo
Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.
Vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.
Width of the rectangular boundary of the control. This must be a non-negative number.
Height of the rectangular boundary of the control. This must be a non-negative number.
The name of a defined property to be linked to this control. This column is required for active controls.
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 Formatted for details.
This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something.
The string used for the Tooltip.
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.
This attribute is only valid for CheckBox controls. The value is the name of a Property that was already used as the Property for another CheckBox control. The Property attribute cannot be specified. The attribute exists to support multiple checkboxes on different dialogs being tied to the same property.
Set this attribute to "yes" to cause this Control to be skipped in the tab sequence.
Set this attribute to "yes" to cause this Control to be invoked by the return key.
Set this attribute to "yes" to cause this Control to be invoked by the escape key.
When the condition expression evaluates to true, set the Control as the default.
When the condition expression evaluates to true, enable the Control.
When the condition expression evaluates to true, disable the Control.
When the condition expression evaluates to true, hide the Control.
When the condition expression evaluates to true, show the Control.
Set this attribute to "yes" to cause the Control to be hidden.
Set this attribute to "yes" to cause the Control to be disabled.
Set this attribute to "yes" to cause the Control to be sunken.
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.
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.
Set this attribute to "yes" to cause the Control to display from right to left.
Set this attribute to "yes" to cause the Control to be right aligned.
Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control.
This attribute is only valid for Text Controls.
This attribute is only valid for Text Controls.
This attribute is only valid for Text Controls.
This attribute is only valid for Text Controls.
This attribute is only valid for Text Controls.
This attribute is only valid for Edit Controls.
This attribute is only valid for Edit Controls.
This attribute is only valid for ProgressBar Controls.
This attribute is only valid for Volume and Directory Controls.
This attribute is only valid for Volume and Directory Controls.
This attribute is only valid for Volume and Directory Controls.
This attribute is only valid for Volume and Directory Controls.
This attribute is only valid for Volume and Directory Controls.
This attribute is only valid for Volume and Directory Controls.
This attribute is only valid for VolumeCostList Controls.
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.
This attribute is only valid for ComboBox Controls.
This attribute is only valid for RadioButton, PushButton, and Icon Controls.
This attribute is only valid for RadioButton, PushButton, and Icon Controls.
This attribute is only valid for RadioButton, PushButton, and Icon Controls.
This attribute is only valid for RadioButton and PushButton Controls.
This attribute is only valid for RadioButton and PushButton Controls.
This attribute is only valid for RadioButton and Checkbox Controls.
This attribute is only valid for RadioButton Controls.
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.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Billboard to display during install of a Feature
Only controls of static type such as: Text, Bitmap, Icon, or custom control can be placed on a billboard.
Unique identifier for the Billboard.
Feature whose state determines if the Billboard is shown.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Billboard action during which child Billboards are displayed
Order of Billboard elements determines order of display
Action name that determines when the Billboard should be shown.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Defines a dialog box in the Dialog Table.
Control elements belonging to this dialog.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Unique identifier for the dialog.
Horizontal placement of the dialog box as a percentage of screen width. The default value is 50.
Vertical placement of the dialog box as a percentage of screen height. The default value is 50.
The width of the dialog box in dialog units.
The height of the dialog box in dialog units.
The title of the dialog box.
Used to hide the dialog.
Used to set the dialog as modeless.
Used to specify if the dialog can be minimized.
Used to set the dialog as system modal.
Keep modeless dialogs alive when this dialog is created through DoAction.
Have the dialog periodically call the installer to check if available disk space has changed.
Used to specify if pictures in the dialog box are rendered with a custom palette.
Used to specify if the text in the dialog should be displayed in right to left reading order.
Align text on the right.
Used to align the scroll bar on the left.
Specifies this dialog as an error dialog.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Reference to a Dialog. This will cause the entire referenced section's contents
to be included in the installer database.
The identifier of the Dialog to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Element value is progress message text for action.
Used to format ActionData messages from action processing
An optional identifier for the text style in the database. If one is not specified,
one will be generated.
The face name of the font.
The font's size.
A value from 0 to 255 to indicate the amount of red in the font.
A value from 0 to 255 to indicate the amount of green in the font.
A value from 0 to 255 to indicate the amount of blue in the font.
Indicates whether the font should be bold. Default is 'false'.
Indicates whether the font should be italic. Default is 'false'.
Indicates whether the font should be underline. Default is 'false'.
Indicates whether the font should be strikethrough. Default is 'false'.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView.
The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected.
The localizable, visible text to be assigned to the item.
If not specified, this will default to the value of the Value attribute.
The identifier of the Binary (not Icon) element containing the icon to associate with this item.
This value is only valid when nested under a ListView element.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Set of items for a particular ListBox control tied to an install Property
entry for ListBox table
Property tied to this group
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Set of items for a particular ComboBox control tied to an install Property
entry for ComboBox table
Property tied to this group
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Set of items for a particular ListView control tied to an install Property
entry for ListView table
Property tied to this group
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup).
This attribute defines the bitmap displayed with the radio button. The value of the attribute creates a reference
to a Binary element that represents the bitmap. This attribute is mutually exclusive with the Icon and Text
attributes.
This attribute defines the icon displayed with the radio button. The value of the attribute creates a reference
to a Binary element that represents the icon. This attribute is mutually exclusive with the Bitmap and Text
attributes.
Text displayed with the radio button. This attribute is mutually exclusive with the Bitmap and Icon attributes.
Value assigned to the associated control Property when this radio button is selected.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Set of radio buttons tied to the specified Property
Property tied to this group.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Text associated with certain controls.
An optional identifier for the text style in the database. If one is not specified,
one will be generated.
The UI text.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Reference to a UI element. This will force the entire referenced Fragment's contents
to be included in the installer database.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Enclosing element to compartmentalize UI specifications.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Defines a custom table for use from a custom action.
Column definition for the custom table.
Row definition for the custom table.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Identifier for the custom table. The id must be less than 31 characters.
Indicates the table is not supposed to be included in the final output.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Column definition for a Custom Table
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Identifier for the column.
Whether this column is a primary key.
The type of this column.
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.
Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set).
Column contains a non-localizable string value.
Width of this column.
Whether this column can be left null.
Whether this column can be localized.
Minimum value for a numeric value, date or version in this column.
Maximum value for a numeric value, date or version in this column.
Table in which this column is an external key. Can be semicolon delimited.
Column in the table in KeyTable attribute.
Category of this column.
This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'.
Semicolon delimited list of permissible values.
Description of this column.
How this column should be modularized, if at all.
Column should not be modularized. This is the default value.
Column should be modularized.
Column is a condition and should be modularized.
When the column is an primary or foreign key to the Icon table it should be modularized special.
Any Properties in the column should be modularized.
Semi-colon list of keys, all of which need to be modularized.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Row data for a Custom Table
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Used for a Custom Table. Specifies the data for the parent Row and specified Column.
Specifies in which column to insert this data.
Specifies the optional data for this column.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Used to reference a CustomTable element and optionally add more data.
Row definition for the custom table.
The identifier of the CustomTable element to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Use this element to ensure that a table appears in the installer database, even if its empty.
This element is particularly useful for two problems that may occur while merging merge modules:
* 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.
* 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.
The name of the table.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
This element exposes advanced WiX functionality. Use this element to declare WiX variables
from directly within your authoring. WiX variables are not resolved until the final package
file is actually generated (bind time). WiX variables do not persist into the package file,
so they cannot be used when an MSI file is being installed; it's a WiX-only concept.
The name of the variable.
Set this value to 'yes' in order to make the variable's value overridable either by
another WixVariable entry or via the command-line option -d_name_=_value_;
for light.exe. If the same variable is declared overridable in multiple places it
will cause an error (since WiX won't know which value is correct). The default value
is 'no'.
The value of the variable. Note that because values are substituted at bind time,
they skip all the validation done at compile time, which can be more thorough than
validation done at bind time.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Use this element to contain definitions for instance transforms.
The Id of the Property who's value should change for each instance.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Defines an instance transform for your product.
The identity of the instance transform. This value will define the name by which the instance
should be referred to on the command line. In addition, the value of the this attribute will
determine what the value of the property specified in Property attribute on InstanceTransforms
will change to for each instance.
The ProductCode for this instance.
The ProductName for this instance.
The UpgradeCode for this instance.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Simplifies authoring for major upgrades, including support for preventing downgrades.
The parent Package element must have valid UpgradeCode and Version attributes.
When the FindRelatedProducts action detects a related product installed on the system,
it appends the product code to the property named WIX_UPGRADE_DETECTED. After the
FindRelatedProducts action is run, the value of the WIX_UPGRADE_DETECTED property is a
list of product codes, separated by semicolons (;), detected on the system.
When set to no (the default), products with lower version numbers are blocked from
installing when a product with a higher version is installed; the DowngradeErrorMessage
attribute must also be specified.
When set to yes, any version can be installed over any other version.
When set to no (the default), installing a product with the same version and upgrade code
(but different product code) is allowed and treated by MSI as two products. When set to yes,
WiX sets the msidbUpgradeAttributesVersionMaxInclusive attribute, which tells MSI to treat
a product with the same version as a major upgrade.
This is useful when two product versions differ only in the fourth version field. MSI
specifically ignores that field when comparing product versions, so two products that
differ only in the fourth version field are the same product and need this attribute set to
yes to be detected.
Note that because MSI ignores the fourth product version field, setting this attribute to
yes also allows downgrades when the first three product version fields are identical.
For example, product version 1.0.0.1 will "upgrade" 1.0.0.2998 because they're seen as the
same version (1.0.0). That could reintroduce serious bugs so the safest choice is to change
the first three version fields and omit this attribute to get the default of no.
This attribute cannot be "yes" when AllowDowngrades is also "yes" -- AllowDowngrades
already allows two products with the same version number to upgrade each other.
When set to yes, products with higer version numbers are blocked from
installing when a product with a lower version is installed; the UpgradeErrorMessage
attribute must also be specified.
When set to no (the default), any version can be installed over any lower version.
The message displayed if users try to install a product with a lower version number
when a product with a higher version is installed. Used only when AllowDowngrades
is no (the default).
The message displayed if users try to install a product with a higer version number
when a product with a lower version is installed. Used only when Disallow
is yes.
When set to yes (the default), the MigrateFeatureStates standard action will set the
feature states of the upgrade product to those of the installed product.
When set to no, the installed features have no effect on the upgrade installation.
When set to yes, the Upgrade table rows will match any product with the same UpgradeCode.
When set to no (the default), the Upgrade table rows will match only products with the
same UpgradeCode and ProductLanguage.
When set to yes, failures removing the installed product during the upgrade will be
ignored.
When set to no (the default), failures removing the installed product during the upgrade
will be considered a failure and, depending on the scheduling, roll back the upgrade.
A formatted string that contains the list of features to remove from the installed
product. The default is to remove all features. Note that if you use formatted property
values that evaluate to an empty string, no features will be removed; only omitting
this attribute defaults to removing all features.
Determines the scheduling of the RemoveExistingProducts standard action, which is when
the installed product is removed. The default is "afterInstallValidate" which removes
the installed product entirely before installing the upgrade product. It's slowest but
gives the most flexibility in changing components and features in the upgrade product.
For more information, see RemoveExistingProducts.
(Default) Schedules RemoveExistingProducts after the InstallValidate standard
action. This scheduling removes the installed product entirely before installing
the upgrade product. It's slowest but gives the most flexibility in changing
components and features in the upgrade product. Note that if the installation
of the upgrade product fails, the machine will have neither version installed.
Schedules RemoveExistingProducts after the InstallInitialize standard action.
This is similar to the afterInstallValidate scheduling, but if the installation
of the upgrade product fails, Windows Installer also rolls back the removal of
the installed product -- in other words, reinstalls it.
Schedules RemoveExistingProducts between the InstallExecute and InstallFinalize standard actions.
This scheduling installs the upgrade product "on top of" the installed product then lets
RemoveExistingProducts uninstall any components that don't also exist in the upgrade product.
Note that this scheduling requires strict adherence to the component rules because it relies
on component reference counts to be accurate during installation of the upgrade product and
removal of the installed product. For more information, see
Bob Arnson's blog post "Paying for Upgrades" for details. If installation of the upgrade product fails, Windows Installer
also rolls back the removal of the installed product -- in other words, reinstalls it.
Schedules RemoveExistingProducts between the InstallExecuteAgain and InstallFinalize standard actions.
This is identical to the afterInstallExecute scheduling but after the InstallExecuteAgain standard
action instead of InstallExecute.
Schedules RemoveExistingProducts after the InstallFinalize standard action. This is similar to the
afterInstallExecute and afterInstallExecuteAgain schedulings but takes place outside the
installation transaction so if installation of the upgrade product fails, Windows Installer does
not roll back the removal of the installed product, so the machine will have both versions
installed.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts.
Specifies the upper boundary of the range of product versions detected by FindRelatedProducts.
Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value.
Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default.
Set to "yes" to make the range of versions detected include the value specified in Maximum.
Set to "yes" to detect all languages, excluding the languages listed in the Language attribute.
This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action.
Extensibility point in the WiX XML Schema. Schema extensions can register additional
attributes at this point in the schema.
The name of an action that this action should come after.
The name of an action that this action should come before.
The condition of the action.
If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
A value used to indicate the position of this action in a sequence.
If yes, this action will not occur.
The condition of the action.
A value used to indicate the position of this action in a sequence.
If yes, this action will not occur.
Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". Also allows "PUT-GUID-HERE" for use in examples.
Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". A GUID can be auto-generated by setting the value to "*". Also allows "PUT-GUID-HERE" for use in examples.
Values of this type will be "default", "always32" or "always64".
Values of this type will be "default", "always32" or "always64".
Values of this type will either be "attached" or "detached".
The list of communcation protocols with executable packages Burn supports.
The executable package does not support a communication protocol.
The executable package implements the Burn communication protocol.
The executable package implements the .NET Framework v4.0 communication protocol.
Values of this type must be a GUID, with or without braces: `01234567-89AB-CDEF-0123-456789ABCDEF` or `{01234567-89AB-CDEF-0123-456789ABCDEF}`. `PUT-GUID-HERE` can be used for sample code. Empty values are also supported.
Values of this type must be a non-negative integer or a preprocessor variable with the format `$(Variable)` or `$(var.Variable)`.
Values of this type must be a non-negative integer or a localization variable with the format `!(loc.Variable)` where `Variable` is the name of the localization variable.
Values of this allow negative integer or a preprocessor variable with the format `$(Variable)` or `$(var.Variable).
Values of this type will look like: "FileName.ext". Only one period is allowed. The following characters are not allowed: \ ? | > : / * " + , ; = [ ] <, or whitespace. The name cannot exceed 8 characters and the extension cannot exceed 3 characters. The value could also be a localization variable with the format !(loc.VARIABLE).
Values of this type will look like: "Long File Name.extension". Legal long names contain no more than 260 characters and must contain at least one non-period character. The following characters are not allowed: \ ? | > : / * " or <. The name must be shorter than 260 characters. The value could also be a localization variable with the format !(loc.VARIABLE).
Values of this type will look like: "x.x.x.x" where x is an integer from 0 to 65534.
Values of this type will look exactly like: "x.x.x" where x is an integer.
Values of this type will be a 1-part, 2-part, 3-part or 4-part version number or a semantic version.
Values of this type will look like: "File?.*". Only one period is allowed. The following characters are not allowed: \ | > : / " + , ; = [ ] <, or whitespace. The name cannot be longer than 8 characters and the extension cannot exceed 3 characters. The value could also be a localization variable with the format !(loc.VARIABLE).
Values of this type will look like: "Long File N?me.extension*". Legal long names contain no more than 260 characters and must contain at least one non-period character. The following characters are not allowed: \ | > : / " or <. The name must be shorter than 260 characters. The value could also be a localization variable with the format !(loc.VARIABLE).
This type supports any hexadecimal number. Both upper and lower case are supported for letters appearing in the number. This type also includes the empty string: "".
A Windows Installer standard directory.
A Windows Installer standard directory.
Use this attribute to specify the installation scope of this package: per-machine, per-user, or a choice of either.
Use this attribute to specify the installation scope of this package: per-machine, per-user, or a choice of either.
Set this value to declare that the package is a per-machine installation and requires elevated privileges to install.
Sets the ALLUSERS property to 1.
Set this value to declare that the package is a per-user installation and does not require elevated privileges to install.
Sets the package's InstallPrivileges attribute to "limited."
Set this value to declare that the package is [dual-purpose that can install per-user or per-machine](https://learn.microsoft.com/en-us/windows/win32/msi/single-package-authoring).
Sets the ALLUSERS property to 2 and MSIINSTALLPERUSER property to 1.
Use this attribute to specify the upgrade strategy of this package: major upgrade or none.
Use this attribute to specify the installation scope of this package: major upgrade or none.
Set this value to declare that the package will be upgraded via major upgrades.
You can author a major upgrade with your preferred options or a default major
upgrade will be provided if you don't. The UpgradeCode attribute is required.
Set this value to declare that the package will not support major upgrades.
This value is _not_ recommended because it means a product cannot be serviced
in the event of major bug or security vulnerability.
Values of this type will either be "yes"/"true" or "no"/"false".
Values of this type will either be "yes"/"true" or "no"/"false".
Values of this type will either be "button", "yes"/"true", or "no"/"false".
Values of this type will either be "button", "yes"/"true", or "no"/"false".
Values of this type will either be "default", "yes", or "no".
Values of this type will either be "default", "yes", or "no".
Values of this type will either be "force", "keep", or "remove".
Values of this type will either be "force", "keep", or "remove".
Always cache the package during Cache, Install, Modify, Repair, and Layout.
Keep the package cached when the package is requested to be present.
Always uncache the package after Cache, Install, Modify, Repair, Uninstall, and Layout.
Values of this type represent possible registry roots.
A per-user installation will make the operation occur under HKEY_CURRENT_USER.
A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE.
Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value
from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems,
the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations.
Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath attribute to `yes` when setting this value for writing values
in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer.
Operation occurs under HKEY_LOCAL_MACHINE.
Operation occurs under HKEY_USERS.
Value indicates that this action is executed if the installer returns the associated exit type. Each exit type can be used with no more than one action.
Multiple actions can have exit types assigned, but every action and exit type must be different. Exit types are typically used with dialog boxes.
Specifies whether an action occur on install, uninstall or both.
The action should happen during install (msiInstallStateLocal or msiInstallStateSource).
The action should happen during uninstall (msiInstallStateAbsent).
The action should happen during both install and uninstall.
Controls which sequences the item assignment is sequenced in.
Schedules the assignment in the InstallUISequence and the InstallExecuteSequence.
Schedules the assignment to run in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped.
Schedules the assignment only in the the InstallExecuteSequence.
Schedules the assignment only in the the InstallUISequence.
Indicates the compression level for a cabinet.
Indicates the compression level for a cabinet.
A type that represents 1 or more preprocessor variables.
Values of this type must be an integer or the value of one or more preprocessor variables with the format `$(Variable)` or `$(var.Variable)`.
Indicates the type of a Variable.
A literal string.
A string that may contain Variables.
Describes the information for this product or feature that serves as a dependency of other products or features.
This element is required for any product, feature, or bundle that will use the Dependency feature to properly reference count
other products or features. It should be authored into a component that is always installed and removed with the
product or features that contain it. This guarantees that product dependencies are not removed before those products that
depend on them.
The @Key attribute should identify a version range for your product that you guarantee will be backward compatible.
This key is designed to persist throughout compatible upgrades so that dependent products do not have to be reinstalled
and will not prevent your product from being upgraded. If this attribute is not authored, the value is the ProductCode
and will not automatically support upgrades.
By default this uses the Package/@ProductCode attribute value, which may be automatically generated.
How To: Author product dependencies
Dependency provider identity. If this attribute is not specified, an identifier will be generated automatically.
Optional unique registry key name that identifies a product version range on which other products can depend.
This attribute is required in package authoring, but optional for components.
The version of the package. For MSI packages, the ProductVersion will be used by default
and this attribute should not be specified.
Optional display name of the package. For MSI packages, the ProductName will be used by default.
Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
Describes a dependency on a provider for the current component or package.
This element declares a dependency on any product that uses the Provides element. If that product is uninstalled
before a product that requires it, the uninstall will err or warn the user that other products are installed
which depend on that product. This behavior can be modified by changing the attribute values on the Requires element.
If you do not nest this element under a Provides element, you must specify the @Id attribute
so that it can be referenced by a RequiresRef element nested under a Provides element.
How To: Author product dependencies
Dependency requirement identity. If this attribute is not specified, an identifier will be generated automatically.
If this element is not authored under a Provides element, this attribute is required.
The unique registry key name for the dependency provider to require during installation of this product.
The minimum version of the dependency provider required to be installed. The default is unbound.
The maximum version of the dependency provider required to be installed. The default is unbound.
Set to "yes" to make the range of dependency provider versions required include the value specified in Minimum.
Set to "yes" to make the range of dependency provider versions required include the value specified in Maximum.
Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
References existing authoring for a dependency on a provider for the current component or package.
This element references a dependency on any product that uses the Provides element. If that product is uninstalled
before a product that requires it, the uninstall will err or warn the user that other products are installed
which depend on that product. This behavior can be modified by changing the attribute values on the Requires element.
How To: Author product dependencies
The identifier of the Requires element to reference.
Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.