diff --git a/data/schemas/complus.xsd b/data/schemas/complus.xsd
deleted file mode 100644
index 36cd170d6a..0000000000
--- a/data/schemas/complus.xsd
+++ /dev/null
@@ -1,951 +0,0 @@
-
-
-
-
- Copyright (c) Microsoft Corporation. All rights reserved.
-
- The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
- which can be found in the file CPL.TXT at the root of this distribution.
- By using this software in any fashion, you are agreeing to be bound by
- the terms of this license.
-
- You must not remove this notice, or any other, from this software.
-
- The source code schema for the Windows Installer XML Toolset COM+ Extension.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Defines a COM+ partition. If this element is a child of a
- Component element, the partition will be created in association with this
- component. If the element is a child of any of the Fragment, Module or Product
- elements it is considered to be a locater, referencing an existing partition.
-
-
-
-
-
-
-
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- Id for the partition. This attribute can be omitted, in
- which case an id will be generated on install. If the element is a locater,
- this attribute can be omitted if a value is provided for the Name attribute.
-
-
-
-
- Name of the partition. This attribute can be omitted if
- the element is a locater, and a value is provided for the PartitionId
- attribute.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Defines a COM+ partition role. Partition roles can not be
- created; this element can only be used as a locater to reference an existing
- role.
-
-
-
-
-
-
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- The id of a ComPlusPartition element representing the partition
- the role belongs to.
-
-
-
-
- Name of the partition role.
-
-
-
-
-
-
-
-
-
-
-
- This element represents a user membership in a partition
- role. When the parent component of this element is installed, the user will be
- added to the associated partition role.
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- The id of a ComPlusPartitionRole element representing the
- partition the user should be added to.
-
-
-
-
- Foreign key into the User table.
-
-
-
-
-
-
-
-
-
-
-
- This element represents a security group membership in a
- partition role. When the parent component of this element is installed, the
- security group will be added to the associated partition role.
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- The id of a ComPlusPartitionRole element representing the
- partition the user should be added to.
-
-
-
-
- Foreign key into the Group table.
-
-
-
-
-
-
-
-
-
-
-
- Represents a default partition definition for a user. When
- the parent component of this element is installed, the default partition of the
- user will be set to the referenced partition.
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- The id of a ComPlusPartition element representing the
- partition that will be the default partition for the user.
-
-
-
-
- Foreign key into the User table.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Defines a COM+ application. If this element is a descendent
- of a Component element, the application will be created in association with
- this component. If the element is a child of any of the Fragment, Module or
- Product elements it is considered to be a locater, referencing an existing
- application.
-
- If the element is a child of a ComPlusPartition element,
- or have its Partition attribute set, the application will be installed under
- the referenced partition.
-
-
-
-
-
-
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- If the element is not a child of a ComPlusPartition
- element, this attribute can be provided with the id of a ComPlusPartition
- element representing the partition the application belongs to.
-
-
-
-
- Id for the application. This attribute can be omitted, in
- which case an id will be generated on install. If the element is a locater,
- this attribute can be omitted if a value is provided for the Name attribute.
-
-
-
-
- Name of the application. This attribute can be omitted if
- the element is a locater, and a value is provided for the PartitionId
- attribute.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Defines an application role. If this element is a descendent
- of a Component element, the application role will be created in association
- with this component. If the element is a child of any of the Fragment, Module
- or Product elements it is considered to be a locater, referencing an existing
- application role.
-
-
-
-
-
-
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- If the element is not a child of a ComPlusApplication
- element, this attribute should be provided with the id of a
- ComPlusApplication element representing the application the role belongs to.
-
-
-
-
- Name of the application role.
-
-
-
-
-
-
-
-
-
-
-
-
- This element represents a user membership in an
- application role. When the parent component of this element is installed, the
- user will be added to the associated application role. This element must be a descendent
- of a Component element; it can not be a child of a ComPlusApplicationRole
- locater element. To reference a locater element use the ApplicationRole
- attribute.
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- If the element is not a child of a ComPlusApplicationRole
- element, this attribute should be provided with the id of a
- ComPlusApplicationRole element representing the application role the user is
- to be added to.
-
-
-
-
- Foreign key into the User table.
-
-
-
-
-
-
-
-
-
-
-
- This element represents a security group membership in an
- application role. When the parent component of this element is installed, the
- user will be added to the associated application role. This element must be a
- descendent of a Component element; it can not be a child of a
- ComPlusApplicationRole locater element. To reference a locater element use the
- ApplicationRole attribute.
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- If the element is not a child of a ComPlusApplicationRole
- element, this attribute should be provided with the id of a
- ComPlusApplicationRole element representing the application role the user is
- to be added to.
-
-
-
-
- Foreign key into the Group table.
-
-
-
-
-
-
-
-
- Represents a DLL or assembly to be registered with COM+. If
- this element is a child of a ComPlusApplication element, the assembly will be
- registered in this application. Other ways the Application attribute must be
- set to an application. The element must be a descendent of a Component element,
- it can not be a child of a ComPlusApplication locator element.
-
-
-
-
-
- When installing a native assembly, all components
- contained in the assembly must be represented as ComPlusComponent elements
- under this element. Any component not listed will not be removed during
- uninstall.
-
-
-
- The fields DllPath, TlbPath and PSDllPath are formatted
- fields that should contain file paths to there respective file types. A typical
- value for DllPath for example, should be something like “[#MyAssembly_dll]”,
- where “MyAssembly_dll” is the key of the dll file in the File table.
-
-
-
- Warning: The assembly name provided in the AssemblyName
- attribute must be a fully specified assembly name, if a partial name is
- provided a random assembly matching the partial name will be selected.
-
-
-
-
-
-
-
-
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- If the element is not a child of a ComPlusApplication
- element, this attribute should be provided with the id of a ComPlusApplication
- element representing the application the assembly is to be registered in.
- This attribute can be omitted for a .NET assembly even if the application is
- not a child of a ComPlusApplication element.
-
-
-
-
- The name of the assembly used to identify the assembly in
- the GAC. This attribute can be provided only if DllPathFromGAC is set to
- “yes”.
-
-
-
-
- The path to locate the assembly DLL during registration.
- This attribute should be provided if DllPathFromGAC is not set to “yes”.
-
-
-
-
- An optional path to an external type lib for the assembly.
- This attribute must be provided if the Type attribute is set to “.net”.
-
-
-
-
- An optional path to an external proxy/stub DLL for the assembly.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Indicates that the assembly is to be installed as an event
- class DLL. This attribute is only valid for native assemblies. The assembly
- will be installed with the COM+ catalog’s InstallEventClass() function.
-
-
-
-
- Indicates that the DLL path should be extracted from the
- GAC instead for being provided in the DllPath attribute. If this attribute is
- set to “yes”, the name of the assembly can be provided using the AssemblyName
- attribute. Or, if this AssemblyName attribute is missing, the name will be
- extracted from the MsiAssemblyName table using the id of the parent Component
- element.
-
-
-
-
- Indicates that the assembly should be installed in the
- commit custom action instead of the normal deferred custom action. This is
- necessary when installing .NET assemblies to the GAC in the same
- installation, as the assemblies are not visible in the GAC until after the
- InstallFinalize action has run.
-
-
-
-
-
-
-
-
- Defines a dependency between two assemblies. This element
- affects the order in which assembles are registered. Any assemblies referenced
- by this element are guarantied to be registered before, and unregistered after,
- the assembly referenced by the parent ComPlusAssembly element.
-
-
-
- It is only necessary to explicitly specify dependencies between
- assemblies contained in the same package (MSI or MSM). Assemblies merged in to a
- package from a merge module will always be installed before any assemblies
- specified in the base package. Assemblies merged in from different merge
- modules are sequenced using the ModuleDependency MSI table. It is not possible
- to have cross dependencies between merge modules or have an assembly in a merge
- module depend on an assembly in the base package.
-
-
-
-
-
-
- Reference to the id of the assembly required by the parent
- ComPlusAssembly element.
-
-
-
-
-
-
-
- Represents a COM+ component in an assembly.
-
-
-
-
-
-
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- CLSID of the component.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Represents a role assignment to a COM+ component.
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- If the element is not a child of a ComPlusComponent
- element, this attribute should be provided with the id of a ComPlusComponent
- element representing the component the role is to be added to.
-
-
-
-
- Id of the ComPlusApplicationRole element representing the
- role that shall be granted access to the component.
-
-
-
-
-
-
-
- Represents an interface for a COM+ component.
-
-
-
-
-
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- IID of the interface.
-
-
-
-
-
-
-
-
-
-
-
-
-
- Represents a role assignment to an interface.
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- If the element is not a child of a ComPlusInterface
- element, this attribute should be provided with the id of a ComPlusInterface
- element representing the interface the role is to be added to.
-
-
-
-
- Id of the ComPlusApplicationRole element representing the
- role that shall be granted access to the interface.
-
-
-
-
-
-
-
-
- Represents a method for an interface.
-
-
-
-
-
-
-
-
-
- Identifier for the element.
-
-
-
-
-
-
- Dispatch id of the method. If this attribute is not set a
- value must be provided for the Name attribute.
-
-
-
-
-
-
- Name of the method. If this attribute is not set a value
- must be provided for the Index attribute.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Represents a role assignment to a COM+ method.
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- If the element is not a child of a ComPlusMethod element,
- this attribute should be provided with the id of a ComPlusMethod element
- representing the method the role is to be added to.
-
-
-
-
- Id of the ComPlusApplicationRole element representing the
- role that shall be granted access to the method.
-
-
-
-
-
-
-
-
-
-
-
- Defines an event subscription for a COM+ component.
-
-
-
-
-
- Identifier for the element.
-
-
-
-
- If the element is not a child of a ComPlusComponent
- element, this attribute should be provided with the id of a ComPlusComponent
- element representing the component the subscription is to be created for.
-
-
-
-
- Id of the subscription. If a value is not provided for
- this attribute, an id will be generated during installation.
-
-
-
-
- Name of the subscription.
-
-
-
-
- CLSID of the event class for the subscription. If a value
- for this attribute is not provided, a value for the PublisherID attribute
- must be provided.
-
-
-
-
- Publisher id for the subscription. If a value for this
- attribute is not provided, a value for the EventCLSID attribute must be
- provided.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Values of this type will either be "yes" or "no".
-
-
-
-
-
-
-
-
-
- Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF".
-
-
-
-
-
-
-
diff --git a/data/schemas/difxapp.xsd b/data/schemas/difxapp.xsd
index 8bb62000db..a3d34f3a33 100644
--- a/data/schemas/difxapp.xsd
+++ b/data/schemas/difxapp.xsd
@@ -10,7 +10,7 @@
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
diff --git a/data/schemas/firewall.xsd b/data/schemas/firewall.xsd
index e9f8b7ae87..dccca1dc9f 100644
--- a/data/schemas/firewall.xsd
+++ b/data/schemas/firewall.xsd
@@ -9,7 +9,7 @@
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
@@ -135,6 +135,23 @@
+
+
+
+
+ Profile type for this firewall exception. Default is "all".
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/schemas/gaming.xsd b/data/schemas/gaming.xsd
index 835209b1df..8ceae8bf59 100644
--- a/data/schemas/gaming.xsd
+++ b/data/schemas/gaming.xsd
@@ -9,7 +9,7 @@
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
diff --git a/data/schemas/iis.xsd b/data/schemas/iis.xsd
index 5f4a3bd299..ffb47507fb 100644
--- a/data/schemas/iis.xsd
+++ b/data/schemas/iis.xsd
@@ -10,7 +10,7 @@
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
@@ -407,6 +407,29 @@
+
+
+ Specifies the request-processing mode that is used to process requests for managed content. Only available on IIS7, ignored on IIS6.
+
+
+
+
+
+
+
+
+
+
+ Specifies the .NET Framework version to be used by the application pool. Only available on IIS7, ignored on IIS6.
+
+
+
+
+
+
+
+
+
@@ -712,7 +735,7 @@
- Sets the timeout value for executing ASP scripts.
+ Sets the timeout value in seconds for executing ASP scripts.
diff --git a/data/schemas/lux.xsd b/data/schemas/lux.xsd
new file mode 100644
index 0000000000..2bf770c3e1
--- /dev/null
+++ b/data/schemas/lux.xsd
@@ -0,0 +1,228 @@
+
+
+
+
+ Copyright (c) Microsoft Corporation. All rights reserved.
+
+ The use and distribution terms for this software are covered by the
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
+ which can be found in the file CPL.TXT at the root of this distribution.
+ By using this software in any fashion, you are agreeing to be bound by
+ the terms of this license.
+
+ You must not remove this notice, or any other, from this software.
+
+ The source code schema for the Windows Installer XML Toolset Lux Extension.
+
+
+
+
+
+
+
+
+ Test mutations let you author unit tests with different expected results. The mutation
+ id is passed as the value of the WIXLUX_RUNNING_MUTATION property. Your custom action,
+ typically in an '#ifdef DEBUG' block, can retrieve the WIXLUX_RUNNING_MUTATION property
+ and hard-code different behavior based on the mutation. To author test mutations, use
+ the Mutation element with UnitTest elements as children.
+
+
+
+
+
+
+
+
+
+ Child UnitTest elements are validated when the parent mutation is being executed.
+
+
+
+
+
+
+
+
+ Value of the WIXLUX_RUNNING_MUTATION property set by the mutation.
+
+
+
+
+
+
+
+
+
+ Describes a unit test to be executed against a particular custom action, resulting in a
+ particular property value. Single-value properties, multi-value properties, and
+ name/value-pair properties can all be tested declaratively.
+
+
+
+
+
+
+
+
+
+
+ Child UnitTest elements are used to test multi-value properties. Note that Property
+ and ValueDelimiter or NameValueDelimiter must be specified in the parent element.
+
+
+
+
+
+
+
+
+
+
+ Identifier of the unit test. If you omit this attribute, a stable identifier is generated for you.
+
+
+
+
+
+
+
+ Identifier of the custom action to be tested.
+
+
+
+
+
+
+
+ Name of the property set by the custom action.
+
+
+
+
+
+
+
+ The operator to apply to the property and value. Default is "equal."
+
+
+
+
+
+
+
+ (Default) Compares Property to Value and succeeds if they are equal.
+
+
+
+
+
+
+ Compares Property to Value and succeeds if they are NOT equal.
+
+
+
+
+
+
+ Compares Property to Value and succeeds if they are equal (ignoring case).
+
+
+
+
+
+
+ Compares Property to Value and succeeds if they are NOT equal (ignoring case).
+
+
+
+
+
+
+
+
+
+
+ The value to compare to the property.
+
+
+
+
+
+
+
+ One character that is used to separate values in a multi-value property.
+
+
+
+
+
+
+
+ One character that is used to separate values in a name/value-pair multi-value property.
+
+
+
+
+
+
+
+ A formatted string that evaluates to either an integer index into a multi-value property or a string name of a name/value-pair multi-value property.
+
+
+
+
+
+
+
+
+
+ Conditions for a unit test.
+
+
+
+
+
+
+
+
+
+
+
+
+ An expression that must evaluate to true to succeed. Cannot be specified if Property is specified.
+
+
+
+
+
+
+
+
+
+
+
+
+ Identifies a unit test to be linked into a project.
+
+
+
+
+
+
+
+
+
+
+ Identifier of the unit test to be included.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/schemas/msmq.xsd b/data/schemas/msmq.xsd
index bded355411..3299399875 100644
--- a/data/schemas/msmq.xsd
+++ b/data/schemas/msmq.xsd
@@ -10,7 +10,7 @@
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
diff --git a/data/schemas/netfx.xsd b/data/schemas/netfx.xsd
index 1c42388e31..7121ecae4e 100644
--- a/data/schemas/netfx.xsd
+++ b/data/schemas/netfx.xsd
@@ -9,7 +9,7 @@
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
diff --git a/data/schemas/ps.xsd b/data/schemas/ps.xsd
index 6ab7e4bdab..0ef768fb5c 100644
--- a/data/schemas/ps.xsd
+++ b/data/schemas/ps.xsd
@@ -10,7 +10,7 @@
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
diff --git a/data/schemas/readme.txt b/data/schemas/readme.txt
index 6535505cbe..d187000482 100644
--- a/data/schemas/readme.txt
+++ b/data/schemas/readme.txt
@@ -30,11 +30,11 @@ GNU General Public License.
WiX schemas
-----------
-complus.xsd
difxapp.xsd
firewall.xsd
gaming.xsd
iis.xsd
+lux.xsd
msmq.xsd
netfx.xsd
ps.xsd
diff --git a/data/schemas/sql.xsd b/data/schemas/sql.xsd
index 756a9e7440..55c2481187 100644
--- a/data/schemas/sql.xsd
+++ b/data/schemas/sql.xsd
@@ -10,7 +10,7 @@
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
diff --git a/data/schemas/util.xsd b/data/schemas/util.xsd
index 8b972637a3..77d10d6442 100644
--- a/data/schemas/util.xsd
+++ b/data/schemas/util.xsd
@@ -1,16 +1,11 @@
-
-
-
+
+
+
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
@@ -19,1137 +14,1117 @@
The source code schema for the Windows Installer XML Toolset Utility Extension.
+
+
+
+
+
+
+
+
+
+ Closes applications or schedules a reboot if application cannot be closed.
-
-
-
-
-
-
-
-
-
-
- Closes applications or schedules a reboot if application cannot be closed.
-
-
-
-
-
-
+
+
+
+
+
Condition that determines if the application should be closed. Must be blank or evaluate to true
for the application to be scheduled for closing.
-
-
-
- Identifier for the close application (primary key).
-
-
-
-
- Name of the exectuable to be closed. This should only be file name.
-
-
-
-
- Description to show if application is running and needs to be closed.
-
-
-
-
- Optionally orders the applications to be closed.
-
-
-
-
- Optionally sends a close message to the application. Default is no.
-
-
-
-
- Optionally sends a close message to the application from deffered action without impersonation. Default is no.
-
-
-
-
- Optionally prompts for reboot if application is still running. Default is yes.
-
-
-
-
- Property to be set if application is still running. Useful for launch conditions or to conditionalize custom UI to ask user to shut down apps.
-
-
-
-
-
-
-
-
+
+
+
+ Identifier for the close application (primary key).
+
+
+
+
+ Name of the exectuable to be closed. This should only be file name.
+
+
+
+
+ Description to show if application is running and needs to be closed.
+
+
+
+
+ Optionally orders the applications to be closed.
+
+
+
+
+ Optionally sends a close message to the application. Default is no.
+
+
+
+
+ Optionally sends a close message to the application from deffered action without impersonation. Default is no.
+
+
+
+
+ Optionally prompts for reboot if application is still running. Default is yes.
+
+
+
+
+ Property to be set if application is still running. Useful for launch conditions or to conditionalize custom UI to ask user to shut down apps.
+
+
+
+
+
+
+
+
+
+
+
+ Creates an event source.
+
+
+
-
-
-
- Creates an event source.
-
-
-
-
-
+
The number of categories in CategoryMessageFile. CategoryMessageFile
must be specified too.
-
-
-
-
-
+
+
+
+
+
Name of the category message file. CategoryCount must be specified too.
Note that this is a formatted field, so you can use [#fileId] syntax to
refer to a file being installed. It is also written as a REG_EXPAND_SZ
string, so you can use %environment_variable% syntax to refer to a file
already present on the user's machine.
-
-
-
-
-
+
+
+
+
+
Name of the event message file.
Note that this is a formatted field, so you can use [#fileId] syntax to
refer to a file being installed. It is also written as a REG_EXPAND_SZ
string, so you can use %environment_variable% syntax to refer to a file
already present on the user's machine.
-
-
-
-
-
+
+
+
+
+
Marks the EventSource registry as the key path of the component it belongs to.
-
-
-
-
- Name of the event source's log.
-
-
-
-
- Name of the event source.
-
-
-
-
-
+
+
+
+
+ Name of the event source's log.
+
+
+
+
+ Name of the event source.
+
+
+
+
+
Name of the parameter message file.
Note that this is a formatted field, so you can use [#fileId] syntax to
refer to a file being installed. It is also written as a REG_EXPAND_SZ
string, so you can use %environment_variable% syntax to refer to a file
already present on the user's machine.
-
-
-
-
-
+
+
+
+
+
Equivalent to EVENTLOG_ERROR_TYPE.
-
-
-
-
-
+
+
+
+
+
Equivalent to EVENTLOG_AUDIT_FAILURE.
-
-
-
-
-
+
+
+
+
+
Equivalent to EVENTLOG_INFORMATION_TYPE.
-
-
-
-
-
+
+
+
+
+
Equivalent to EVENTLOG_AUDIT_SUCCESS.
-
-
-
-
-
+
+
+
+
+
Equivalent to EVENTLOG_WARNING_TYPE.
-
-
-
-
-
-
-
-
-
-
- Creates a file share out of the component's directory.
-
-
-
-
-
- ACL permission
-
-
-
-
-
- Identifier for the file share (primary key).
-
-
-
-
- Name of the file share.
-
-
-
-
- Description of the file share.
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ Creates a file share out of the component's directory.
+
+
+
+
+
+ ACL permission
+
+
+
+
-
+ Identifier for the file share (primary key).
+
+
+
+
+ Name of the file share.
+
+
+
+
+ Description of the file share.
+
+
+
+
+
+
+
Sets ACLs on a FileShare. This element has no Id attribute.
The table and key are taken from the parent element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.
-
-
-
-
- For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.
-
-
-
-
- For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent.
-
-
-
-
- For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent.
-
-
-
-
-
-
-
-
-
-
-
- specifying this will fail to grant read access
-
-
-
-
-
-
+
+
-
-
-
-
-
-
+ For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.
+
+
+
+
+ For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent.
+
+
+
+
+ For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent.
+
+
+
+
+
+
+
+
+ specifying this will fail to grant read access
+
+
+
+
+
+
+
+
+
+
+
+
Finds user groups on the local machine or specified Active Directory domain. The local machine will be
searched for the group first then fallback to looking in Active Directory. This element is not capable
of creating new groups but can be used to add new or existing users to an existing group.
+
+
+
+
+ Unique identifier in your installation package for this group.
-
-
-
- Unique identifier in your installation package for this group.
-
-
-
-
- A Formatted string that contains the name of the group to be found.
-
-
-
-
- An optional Formatted string that specifies the domain for the group.
-
-
-
-
-
-
+
+
- Used to join a user to a group
+ A Formatted string that contains the name of the group to be found.
-
-
-
-
-
-
-
-
-
- How To: Create a shortcut to a webpage
-
- Creates a shortcut to a URL.
-
-
-
-
- Unique identifier in your installation package for this Internet shortcut.
-
-
-
-
- Identifier reference to Directory element where shortcut is to be created. This attribute's value defaults to the parent Component directory.
-
-
-
-
-
+
+
+
+ An optional Formatted string that specifies the domain for the group.
+
+
+
+
+
+
+ Used to join a user to a group
+
+
+
+
+
+
+
+
+
+ How To: Create a shortcut to a webpage
+
+ Creates a shortcut to a URL.
+
+
+
+
+ Unique identifier in your installation package for this Internet shortcut.
+
+
+
+
+ Identifier reference to Directory element where shortcut is to be created. This attribute's value defaults to the parent Component directory.
+
+
+
+
+
The name of the shortcut file, which is visible to the user. (The .lnk
extension is added automatically and by default, is not shown to the user.)
-
-
-
-
-
+
+
+
+
+
URL that should be opened when the user selects the shortcut. Windows
opens the URL in the appropriate handler for the protocol specified
in the URL. Note that this is a formatted field, so you can use
[#fileId] syntax to refer to a file being installed (using the file:
protocol).
-
-
-
-
- Which type of shortcut should be created.
-
-
-
-
-
- Creates .url files using IUniformResourceLocatorW.
-
-
-
-
- Creates .lnk files using IShellLinkW (default).
-
-
-
-
-
-
-
-
-
-
-
-
-
- Used to create performance categories and configure performance counters.
-
-
-
-
-
-
-
- Unique identifier in your installation package for this performance counter category.
-
-
-
-
- Name for the performance counter category. If this attribute is not provided the Id attribute is used as the name of the performance counter category.
-
-
-
-
- Optional help text for the performance counter category.
-
-
-
-
- Flag that specifies whether the performance counter category is multi or single instanced. Default is single instance.
-
-
-
-
- DLL that contains the performance counter. The default is "netfxperf.dll" which should be used for all managed code performance counters.
-
-
-
-
- Function entry point in to the Library DLL called when opening the performance counter. The default is "OpenPerformanceData" which should be used for all managed code performance counters.
-
-
-
-
- Function entry point in to the Library DLL called when closing the performance counter. The default is "ClosePerformanceData" which should be used for all managed code performance counters.
-
-
-
-
- Function entry point in to the Library DLL called when collecting data from the performance counter. The default is "CollectPerformanceData" which should be used for all managed code performance counters.
-
-
-
-
- Default language for the performance category and contained counters' names and help text.
-
-
-
-
-
-
-
- Creates a performance counter in a performance category.
-
-
-
-
- Name for the performance counter.
-
-
-
-
- Optional help text for the performance counter.
-
-
-
-
- Type of the performance counter.
-
-
-
-
- Language for the peformance counter name and help. The default is to use the parent PerformanceCategory element's DefaultLanguage attribute.
-
-
-
-
-
-
-
-
-
-
-
- Used to install Perfmon counters.
-
-
-
-
-
-
-
-
-
-
-
- Used to install Perfmon Counter Manifests.
-
-
-
-
- The directory that holds the resource file of the providers in the perfmon counter manifest. Often the resource file path cannot be determined until setup time. Put the directory here and during perfmon manifest registrtion the path will be updated in the registry. If not specified, Perfmon will look for the resource file in the same directory of the perfmon counter manifest file.
-
-
-
-
-
-
-
-
-
-
- Used to install Event Manifests.
-
-
-
-
- The message file (including path) of all the providers in the event manifest. Often the message file path cannot be determined until setup time. Put your MessageFile here and the messageFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
-
-
-
-
- The parameter file (including path) of all the providers in the event manifest. Often the parameter file path cannot be determined until setup time. Put your ParameterFile here and the parameterFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
-
-
-
-
- The resource file (including path) of all the providers in the event manifest. Often the resource file path cannot be determined until setup time. Put your ResourceFile here and the resourceFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
-
-
-
-
-
-
+
+
+
-
+ Which type of shortcut should be created.
+
+
+
+
+
+ Creates .url files using IUniformResourceLocatorW.
+
+
+
+
+ Creates .lnk files using IShellLinkW (default).
+
+
+
+
+
+
+
+
+
+
+
+
+ Used to create performance categories and configure performance counters.
+
+
+
+
+
+
+
+ Unique identifier in your installation package for this performance counter category.
+
+
+
+
+ Name for the performance counter category. If this attribute is not provided the Id attribute is used as the name of the performance counter category.
+
+
+
+
+ Optional help text for the performance counter category.
+
+
+
+
+ Flag that specifies whether the performance counter category is multi or single instanced. Default is single instance.
+
+
+
+
+ DLL that contains the performance counter. The default is "netfxperf.dll" which should be used for all managed code performance counters.
+
+
+
+
+ Function entry point in to the Library DLL called when opening the performance counter. The default is "OpenPerformanceData" which should be used for all managed code performance counters.
+
+
+
+
+ Function entry point in to the Library DLL called when closing the performance counter. The default is "ClosePerformanceData" which should be used for all managed code performance counters.
+
+
+
+
+ Function entry point in to the Library DLL called when collecting data from the performance counter. The default is "CollectPerformanceData" which should be used for all managed code performance counters.
+
+
+
+
+ Default language for the performance category and contained counters' names and help text.
+
+
+
+
+
+
+ Creates a performance counter in a performance category.
+
+
+
+
+ Name for the performance counter.
+
+
+
+
+ Optional help text for the performance counter.
+
+
+
+
+ Type of the performance counter.
+
+
+
+
+ Language for the peformance counter name and help. The default is to use the parent PerformanceCategory element's DefaultLanguage attribute.
+
+
+
+
+
+
+
+
+
+
+ Used to install Perfmon counters.
+
+
+
+
+
+
+
+
+
+
+ Used to install Perfmon Counter Manifests.
+
+
+
+
+ The directory that holds the resource file of the providers in the perfmon counter manifest. Often the resource file path cannot be determined until setup time. Put the directory here and during perfmon manifest registrtion the path will be updated in the registry. If not specified, Perfmon will look for the resource file in the same directory of the perfmon counter manifest file.
+
+
+
+
+
+
+
+
+
+ Used to install Event Manifests.
+
+
+
+
+ The message file (including path) of all the providers in the event manifest. Often the message file path cannot be determined until setup time. Put your MessageFile here and the messageFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
+
+
+
+
+ The parameter file (including path) of all the providers in the event manifest. Often the parameter file path cannot be determined until setup time. Put your ParameterFile here and the parameterFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
+
+
+
+
+ The resource file (including path) of all the providers in the event manifest. Often the resource file path cannot be determined until setup time. Put your ResourceFile here and the resourceFileName attribute of the all the providers in the manifest will be updated with the path before it is registered.
+
+
+
+
+
+
+
Sets ACLs on File, Registry, CreateFolder, or ServiceInstall. When under a Registry element, this cannot be used
if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute.
The table and key are taken from the parent element. To use PermissionEx with an IA-64 MSI, you must
compile all of your source files with the "-arch ia64" switch, to ensure the IA-64 custom action is used, and not
the x64 custom action.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.
-
-
-
-
- For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.
-
-
-
-
- For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent.
-
-
-
-
- For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- specifying this will fail to grant read access
-
-
-
-
-
- Required to call the QueryServiceConfig and QueryServiceConfig2 functions to query the service configuration. Only valid under a 'ServiceInstall' parent.
-
-
-
-
- Required to call the ChangeServiceConfig or ChangeServiceConfig2 function to change the service configuration. Only valid under a 'ServiceInstall' parent.
-
-
-
-
- Required to call the QueryServiceStatus function to ask the service control manager about the status of the service. Only valid under a 'ServiceInstall' parent.
-
-
-
-
- Required to call the EnumDependentServices function to enumerate all the services dependent on the service. Only valid under a 'ServiceInstall' parent.
-
-
-
-
- Required to call the StartService function to start the service. Only valid under a 'ServiceInstall' parent.
-
-
-
-
- Required to call the ControlService function to stop the service. Only valid under a 'ServiceInstall' parent.
-
-
-
-
- Required to call the ControlService function to pause or continue the service. Only valid under a 'ServiceInstall' parent.
-
-
-
-
- Required to call the ControlService function to ask the service to report its status immediately. Only valid under a 'ServiceInstall' parent.
-
-
-
-
- Required to call the ControlService function to specify a user-defined control code. Only valid under a 'ServiceInstall' parent.
-
-
-
-
-
-
-
- Service configuration information for failure actions.
-
-
-
-
-
- Nesting a ServiceConfig element under a ServiceInstall element will result in the service being installed to be configured.
- Nesting a ServiceConfig element under a component element will result in an already installed service to be configured. If the service does not exist prior to the install of the MSI package, the install will fail.
-
-
-
-
-
-
-
- Required if not under a ServiceInstall element.
-
-
-
-
- Action to take on the first failure of the service.
-
-
-
-
-
-
-
-
-
-
-
-
- Action to take on the second failure of the service.
-
-
-
-
-
-
-
-
-
-
-
-
- Action to take on the third failure of the service.
-
-
-
-
-
-
-
-
-
-
-
-
- Number of days after which to reset the failure count to zero if there are no failures.
-
-
-
-
- If any of the three *ActionType attributes is "restart", this specifies the number of seconds to wait before doing so.
-
-
-
-
- If any of the three *ActionType attributes is "runCommand", this specifies the command to run when doing so.
-
-
-
-
- If any of the three *ActionType attributes is "reboot", this specifies the message to broadcast to server users before doing so.
-
-
-
-
-
-
-
- User for all kinds of things. When it is not nested under a component it is included in the MSI so it can be referenced by other elements such as the User attribute in the AppPool element. When it is nested under a Component element, the User will be created on install and can also be used for reference.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- A Formatted string that contains the name of the user account.
-
-
-
-
- A Formatted string that contains the local machine or Active Directory domain for the user.
-
-
-
-
- Usually a Property that is passed in on the command-line to keep it more secure.
-
-
-
-
- The account's password never expires. Equivalent to UF_DONT_EXPIRE_PASSWD.
-
-
-
-
- The user cannot change the account's password. Equivalent to UF_PASSWD_CANT_CHANGE.
-
-
-
-
- Indicates whether the user account should be removed or left behind on uninstall.
-
-
-
-
- Indicates if the install should fail if the user already exists.
-
-
-
-
- Indicates whether or not the user can logon as a serivce. User creation can be skipped if all that is desired is to set this access right on the user.
-
-
-
-
- Indicates if the user account properties should be updated if the user already exists.
-
-
-
-
- Indicates whether the user must change their password on their first login.
-
-
-
-
- The account is disabled. Equivalent to UF_ACCOUNTDISABLE.
-
-
-
-
- Indicates whether or not to create the user. User creation can be skipped if all that is desired is to join a user to groups.
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+ For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent.
+
+
+
+
+ For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent.
+
+
+
+
+ For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent.
+
+
+
+
+ For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ specifying this will fail to grant read access
+
+
+
+
+
+ Required to call the QueryServiceConfig and QueryServiceConfig2 functions to query the service configuration. Only valid under a 'ServiceInstall' parent.
+
+
+
+
+ Required to call the ChangeServiceConfig or ChangeServiceConfig2 function to change the service configuration. Only valid under a 'ServiceInstall' parent.
+
+
+
+
+ Required to call the QueryServiceStatus function to ask the service control manager about the status of the service. Only valid under a 'ServiceInstall' parent.
+
+
+
+
+ Required to call the EnumDependentServices function to enumerate all the services dependent on the service. Only valid under a 'ServiceInstall' parent.
+
+
+
+
+ Required to call the StartService function to start the service. Only valid under a 'ServiceInstall' parent.
+
+
+
+
+ Required to call the ControlService function to stop the service. Only valid under a 'ServiceInstall' parent.
+
+
+
+
+ Required to call the ControlService function to pause or continue the service. Only valid under a 'ServiceInstall' parent.
+
+
+
+
+ Required to call the ControlService function to ask the service to report its status immediately. Only valid under a 'ServiceInstall' parent.
+
+
+
+
+ Required to call the ControlService function to specify a user-defined control code. Only valid under a 'ServiceInstall' parent.
+
+
+
+
+
+
+ Registers a resource with the Restart Manager.
+
+
+
+
+
+
+
+
+
+
+ The unique identifier for this resource. A unique identifier will
+ be generated automatically if not specified.
+
+
+
+
+ The full path to the process module to register with the Restart Manager.
+ This can be a formatted value that resolves to a full path.
+
+
+
+
+ The name of a process to register with the Restart Manager.
+ This can be a formatted value that resolves to a process name.
+
+
+
+
+ The name of a Windows service to register with the Restart Manager.
+ This can be a formatted value that resolves to a service name.
+
+
+
+
+
+
+ Service configuration information for failure actions.
+
+
+
+
+
+ Nesting a ServiceConfig element under a ServiceInstall element will result in the service being installed to be configured.
+ Nesting a ServiceConfig element under a component element will result in an already installed service to be configured. If the service does not exist prior to the install of the MSI package, the install will fail.
+
+
+
+
+
+
+
+ Required if not under a ServiceInstall element.
+
+
+
+
+ Action to take on the first failure of the service.
+
+
+
+
+
+
+
+
+
+
+
+
+ Action to take on the second failure of the service.
+
+
+
+
+
+
+
+
+
+
+
+
+ Action to take on the third failure of the service.
+
+
+
+
+
+
+
+
+
+
+
+
+ Number of days after which to reset the failure count to zero if there are no failures.
+
+
+
+
+ If any of the three *ActionType attributes is "restart", this specifies the number of seconds to wait before doing so.
+
+
+
+
+ If any of the three *ActionType attributes is "runCommand", this specifies the command to run when doing so.
+
+
+
+
+ If any of the three *ActionType attributes is "reboot", this specifies the message to broadcast to server users before doing so.
+
+
+
+
+
+
+ User for all kinds of things. When it is not nested under a component it is included in the MSI so it can be referenced by other elements such as the User attribute in the AppPool element. When it is nested under a Component element, the User will be created on install and can also be used for reference.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ A Formatted string that contains the name of the user account.
+
+
+
+
+ A Formatted string that contains the local machine or Active Directory domain for the user.
+
+
+
+
+ Usually a Property that is passed in on the command-line to keep it more secure.
+
+
+
+
+ The account's password never expires. Equivalent to UF_DONT_EXPIRE_PASSWD.
+
+
+
+
+ The user cannot change the account's password. Equivalent to UF_PASSWD_CANT_CHANGE.
+
+
+
+
+ Indicates whether the user account should be removed or left behind on uninstall.
+
+
+
+
+ Indicates if the install should fail if the user already exists.
+
+
+
+
+ Indicates whether or not the user can logon as a serivce. User creation can be skipped if all that is desired is to set this access right on the user.
+
+
+
+
+ Indicates if the user account properties should be updated if the user already exists.
+
+
+
+
+ Indicates whether the user must change their password on their first login.
+
+
+
+
+ The account is disabled. Equivalent to UF_ACCOUNTDISABLE.
+
+
+
+
+ Indicates whether or not to create the user. User creation can be skipped if all that is desired is to join a user to groups.
+
+
+
+
+
+
+
Adds or removes .xml file entries. If you use the XmlFile element you must reference WixUtilExtension.dll as it contains the XmlFile custom actions.
-
-
-
-
-
-
-
- Identifier for xml file modification.
-
-
-
-
- The XPath of the element to be modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped.
-
-
-
-
- Path of the .xml file to configure.
-
-
-
-
- Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.
-
-
-
-
-
+
+
+
+
+
+
+
+ Identifier for xml file modification.
+
+
+
+
+ The XPath of the element to be modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.
+
+
+
+
+ Path of the .xml file to configure.
+
+
+
+
+ Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.
+
+
+
+
+
The value to be written. See the Formatted topic for information how to escape square brackets in the value.
-
-
-
-
- The type of modification to be made to the XML file when the component is installed.
-
-
-
-
-
- Creates a new element under the element specified in ElementPath. The Name attribute is required in this case and specifies the name of the new element. The Value attribute is not necessary when createElement is specified as the action. If the Value attribute is set, it will cause the new element's text value to be set.
-
-
-
-
- Deletes a value from the element specified in the ElementPath. If Name is specified, the attribute with that name is deleted. If Name is not specified, the text value of the element specified in the ElementPath is deleted. The Value attribute is ignored if deleteValue is the action specified.
-
-
-
-
- Sets a value in the element specified in the ElementPath. If Name is specified, and attribute with that name is set to the value specified in Value. If Name is not specified, the text value of the element is set. Value is a required attribute if setValue is the action specified.
-
-
-
-
- Sets all the values in the elements that match the ElementPath. If Name is specified, attributes with that name are set to the same value specified in Value. If Name is not specified, the text values of the elements are set. Value is a required attribute if setBulkValue is the action specified.
-
-
-
-
-
-
-
- Specifies whether or not the modification should be removed on uninstall. This has no effect on uninstall if the action was deleteValue.
-
-
-
-
- Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.
-
-
-
-
- Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.
-
-
-
-
-
+
+
+
+
+ The type of modification to be made to the XML file when the component is installed.
+
+
+
+
+
+ Creates a new element under the element specified in ElementPath. The Name attribute is required in this case and specifies the name of the new element. The Value attribute is not necessary when createElement is specified as the action. If the Value attribute is set, it will cause the new element's text value to be set.
+
+
+
+
+ Deletes a value from the element specified in the ElementPath. If Name is specified, the attribute with that name is deleted. If Name is not specified, the text value of the element specified in the ElementPath is deleted. The Value attribute is ignored if deleteValue is the action specified.
+
+
+
+
+ Sets a value in the element specified in the ElementPath. If Name is specified, and attribute with that name is set to the value specified in Value. If Name is not specified, the text value of the element is set. Value is a required attribute if setValue is the action specified.
+
+
+
+
+ Sets all the values in the elements that match the ElementPath. If Name is specified, attributes with that name are set to the same value specified in Value. If Name is not specified, the text values of the elements are set. Value is a required attribute if setBulkValue is the action specified.
+
+
+
+
+
+
+
+ Specifies whether or not the modification should be removed on uninstall. This has no effect on uninstall if the action was deleteValue.
+
+
+
+
+ Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.
+
+
+
+
+ Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.
+
+
+
+
+
Specify whether the DOM object should use XPath language or the old XSLPattern language (default) as the query language.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
Adds or removes .xml file entries. If you use the XmlConfig element you must reference WixUtilExtension.dll as it contains the XmlConfig custom actions.
-
-
-
-
-
-
-
-
-
-
- Identifier for xml file modification.
-
-
-
-
-
-
-
-
-
-
-
-
- The Id of another XmlConfig to add attributes to. In this case, the 'Action' 'Node' and 'On' attributes must be left unspecified.
-
-
-
-
- The XPath of the parent element being modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped.
-
-
-
-
- Path of the .xml file to configure.
-
-
-
-
- Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.
-
-
-
-
- Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+ Identifier for xml file modification.
+
+
+
+
+
+
+
+
+
+
+
+
+ The Id of another XmlConfig to add attributes to. In this case, the 'Action' 'Node' and 'On' attributes must be left unspecified.
+
+
+
+
+ The XPath of the parent element being modified. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.
+
+
+
+
+ Path of the .xml file to configure.
+
+
+
+
+ Name of XML node to set/add to the specified element. Not setting this attribute causes the element's text value to be set. Otherwise this specified the attribute name that is set.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Specifies wheter or not the modification should preserve the modified date. Preserving the modified date will allow the file to be patched if no other modifications have been made.
+
+
+
+
+ Specifies the order in which the modification is to be attempted on the XML file. It is important to ensure that new elements are created before you attempt to add an attribute to them.
+
+
+
+
+
The value to be written. See the Formatted topic for information how to escape square brackets in the value.
-
-
-
-
- The XPath to the element being modified. This is required for 'delete' actions. For 'create' actions, VerifyPath is used to decide if the element already exists.
-
-
-
-
-
-
+
+
+
- Values of this type will either be "yes" or "no".
+ The XPath to the element being modified. This is required for 'delete' actions. For 'create' actions, VerifyPath is used to decide if the element already exists. Note that this is a formatted field and therefore, square brackets in the XPath must be escaped. In addition, XPaths allow backslashes to be used to escape characters, so if you intend to include literal backslashes, you must escape them as well by doubling them in this attribute. The string is formatted by MSI first, and the result is consumed as the XPath.
-
-
-
-
-
-
-
-
- Enumeration of valid languages for performance counters.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Enumeration of valid types for performance counters.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ Values of this type will either be "yes" or "no".
+
+
+
+
+
+
+
+
+ Enumeration of valid languages for performance counters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enumeration of valid types for performance counters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/data/schemas/vs.xsd b/data/schemas/vs.xsd
index e9dca81808..a8a73bd85c 100644
--- a/data/schemas/vs.xsd
+++ b/data/schemas/vs.xsd
@@ -8,7 +8,7 @@
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
diff --git a/data/schemas/wix.xsd b/data/schemas/wix.xsd
index 8d1f6418be..128e46eb47 100644
--- a/data/schemas/wix.xsd
+++ b/data/schemas/wix.xsd
@@ -9,7 +9,7 @@
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
@@ -67,6 +67,86 @@
+
+
+ Representation of layout directory.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The destination path of this layout. It can contain multiple levels of directory structure (i.e. src\files\product)
+
+
+
+
+ Identifier for LayoutDirectory. Only required if this is shared and is referenced by LayoutDirectoryRef.
+
+
+
+
+
+
+
+ Create a reference to an existing LayoutDirectory element.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The identifier of LayoutDirectory element to reference.
+
+
+
+
+
+
+
+ Describes the file to copy into the final layout.
+
+
+
+
+
+
+
+
+ Location of the source file.
+
+
+
+
+ The destination path and file name for this file. The default is the source file name.
+
+
+
+
+
@@ -75,7 +155,7 @@
- You can specify any valid Windows code by integer like 1252, or by web name like Windows-1252. See Code Pages for more information.
+ You can specify any valid Windows code by integer like 1252, or by web name like Windows-1252. See Code Pages for more information.
@@ -102,6 +182,9 @@
+
+
+
@@ -184,7 +267,7 @@
- You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information.
+ You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information.
@@ -211,6 +294,8 @@
+
+
@@ -428,6 +513,8 @@
+
+
@@ -472,15 +559,23 @@
- You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information.
+ You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages 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.
+ 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.
@@ -511,9 +606,9 @@
Whether this is an uninstallable patch.
-
+
- Category of updates.
+ Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.
@@ -811,7 +906,7 @@
- You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information.
+ You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information.
@@ -821,6 +916,8 @@
+
+
@@ -832,28 +929,28 @@
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 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 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ Use this to set whether changing files should be included in their entirety. See IncludeWholeFilesOnly for more information.
@@ -862,39 +959,43 @@
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 for more information.
+ You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information.
- Product full name or description
+ A short description of the patch that includes the name of the product.
- List of platforms supported in package
+
+
+
- List of language IDs supported in package
+
+
+
- Vendor releasing the package
+ The name of the manufacturer of the patch package.
- Optional keywords for browsing
+ A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database".
- Optional comments for browsing
+ General purpose of the patch package. For example, "This patch contains the logic and data required to install <product>."
@@ -908,22 +1009,28 @@
- The code page integer value or web name for summary info strings only. See remarks for more information.
+ The code page integer value or web name for summary info strings only. The default is 1252. See remarks for more information.
- Short filenames on source
+
+
+
- Compressed files on source
+
+
+
- Source is an admin image
+
+
+
@@ -953,12 +1060,12 @@
Whether this is an uninstallable patch.
-
-
- Category of update.
-
-
-
+
+
+ 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).
@@ -1400,7 +1507,7 @@
- You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information.
+ You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See Code Pages for more information.
@@ -1492,7 +1599,8 @@
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. For 64-bit Windows Installer packages, this property must be set to 200 or greater.
+ "405" would represent Windows Installer 4.5. For 64-bit Windows Installer packages, this property is set to 200 by default as
+ Windows Installer 2.0 was the first version to support 64-bit packages.
@@ -1937,7 +2045,7 @@
How To: Check the version number of a file during installation
- When the parent DirectorySearch/@Depth attribute is greater than 1, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'.
+ 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
@@ -2297,7 +2405,7 @@
Key for the registry value.
- Registry value name.
+ Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved.
@@ -2344,7 +2452,7 @@
- Instructs the search to look in the 64-bit registry when the value is 'yes'. Default is 'no' and search looks in the 32-bit registry.
+ Instructs the search to look in the 64-bit registry when the value is 'yes'. When the value is 'no', the search looks in the 32-bit registry. The default value depends on the value of the Package/@Platform attribute: if the @Platform attribute value is 'x86', the default @Win64 attribute value is 'no'; otherwise, the default value is 'yes'.
@@ -3176,7 +3284,7 @@
- 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.
+ 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.
@@ -3284,6 +3392,8 @@
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.
@@ -3840,37 +3950,15 @@
-
+
- This value determines the time at which the file(s) may be removed.
+ 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.
-
-
-
-
-
- Removes the file only when the parent component is being installed (msiInstallStateLocal or msiInstallStateSource).
-
-
-
-
-
-
- Removes the file only when the parent component is being removed (msiInstallStateAbsent).
-
-
-
-
-
-
- Removes the file when the parent component is being installed or removed.
-
-
-
-
-
@@ -3906,37 +3994,15 @@
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.
+ 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.
-
-
-
-
-
- Removes the folder only when the parent component is being installed (msiInstallStateLocal or msiInstallStateSource).
-
-
-
-
-
-
- Removes the folder only when the parent component is being removed (msiInstallStateAbsent).
-
-
-
-
-
-
- Removes the folder when the parent component is being installed or removed.
-
-
-
-
-
@@ -4221,7 +4287,7 @@
- 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.
+ 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
@@ -5160,92 +5226,32 @@
Name of the service.
-
- Specifies whether the service should be started on install, uninstall or both.
-
-
-
-
-
- The service will be started by the StartServices action during install.
-
-
-
-
-
-
- The service will be started by the StartServices action during uninstall.
-
-
-
-
-
-
- The service will be started by the StartServices action during install and uninstall.
-
-
-
-
-
+
+
+ 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 on install, uninstall or both.
-
-
-
-
-
- The service will be stopped by the StopServices action during install.
-
-
-
-
-
-
- The service will be stopped by the StopServices action during uninstall.
-
-
-
-
-
-
- The service will be stopped by the StopServices action during install and uninstall.
-
-
-
-
-
+
+
+ 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 on install, uninstall or both.
-
-
-
-
-
- The service will be deleted by the DeleteServices action during install.
-
-
-
-
-
-
- The service will be deleted by the DeleteServices action during uninstall.
-
-
-
-
-
-
- The service will be deleted by the DeleteServices action during install and uninstall.
-
-
-
-
-
+
+
+ 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.
+ Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'.
@@ -5253,7 +5259,7 @@
- Privilege required by service configured by ServiceConfig parent. Valid values are a privilege constant or a
+ Privilege required by service configured by ServiceConfig parent. Valid values are a privilege constant or a
Formatted property that resolves to a privilege constant.
@@ -5701,8 +5707,15 @@
-
- Component identifier; this is the primary key for identifying components.
+
+
+
+ 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 keypath of the component (for example, a child File element with KeyPath
+ attribute with value 'yes'.
+
+
@@ -5753,10 +5766,13 @@
-
+
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
@@ -5768,8 +5784,13 @@
If this attribute's value is set to 'yes', then the Directory of this Component is used
- as the KeyPath. To set a Registry key or File as the KeyPath of a component, set the
- KeyPath attribute to 'yes' on one of those child elements.
+ 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.
@@ -6149,7 +6170,7 @@
- Used to set the file system source for this directory's child elements. For more information, see Specifying source files.
+ Used to set the file system source for this directory's child elements. For more information, see Specifying source files.
@@ -6275,7 +6296,7 @@
- Used to set the file system source for this DirectoryRef's child elements. For more information, see Specifying source files.
+ Used to set the file system source for this DirectoryRef's child elements. For more information, see Specifying source files.
@@ -6318,7 +6339,7 @@
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 product codes, separated by semicolons (;), detected on the system.
+ 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.
@@ -6873,7 +6894,7 @@
The text node is only valid if the Script attribute is specified. In that case, the text node contains the script to embed.
-
+
The identifier of the custom action.
@@ -7210,37 +7231,15 @@
-
+
- Controls which sequences the Directory assignment is sequenced in. The default is both.
+ 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 'both', the assignment is scheduled
+ in both the InstallUISequence and the InstallExecuteSequence. The default is both.
-
-
-
-
-
- Schedules the assignment in the InstallUISequence and the InstallExecuteSequence.
-
-
-
-
-
-
- Schedules the assignment only in the the InstallExecuteSequence.
-
-
-
-
-
-
- Schedules the assignment only in the the InstallUISequence.
-
-
-
-
-
@@ -7296,37 +7295,15 @@
-
+
- Controls which sequences the Property assignment is sequenced in. The default is both.
+ 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 'both', the assignment is scheduled
+ in both the InstallUISequence and the InstallExecuteSequence. The default is both.
-
-
-
-
-
- Schedules the assignment in the InstallUISequence and the InstallExecuteSequence.
-
-
-
-
-
-
- Schedules the assignment only in the the InstallExecuteSequence.
-
-
-
-
-
-
- Schedules the assignment only in the the InstallUISequence.
-
-
-
-
-
@@ -8002,16 +7979,8 @@
The action to which the Custom element applies.
-
+
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
@@ -8038,16 +8007,8 @@
-
+
mutually exclusive with Before, After, and Sequence attributes
-
-
-
-
-
-
-
-
@@ -8438,6 +8399,9 @@
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.
@@ -8626,7 +8590,7 @@
- Reference to the Binary element that contains the chainer executeable. Mutually exclusive with
+ Reference to the Binary element that contains the chainer executable. Mutually exclusive with
the FileSource and PropertySource attributes.
@@ -8634,7 +8598,7 @@
- Reference to the File element that is the chainer executeable. Mutually exclusive with
+ Reference to the File element that is the chainer executable. Mutually exclusive with
the BinarySource and PropertySource attributes.
@@ -8642,7 +8606,7 @@
- Reference to a Property that resolves to the full path to the chainer executeable. Mutually exclusive with
+ Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with
the BinarySource and FileSource attributes.
@@ -9047,7 +9011,7 @@
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.
+ 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.
@@ -9886,7 +9850,7 @@
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 msi/msm/pcp
file is actually generated. WiX variables do not persist into the msi/msm/pcp file, so they cannot
- be used when an MSI file is being installed; its a WiX-only concept.
+ be used when an MSI file is being installed; it's a WiX-only concept.
@@ -9965,6 +9929,193 @@
+
+
+
+ Simplifies authoring for major upgrades, including support for preventing downgrades.
+
+ The parent Product 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, 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.
+
+
+
+
+
+
+
+
@@ -10142,41 +10293,77 @@
-
+
+
- Category of update.
+ TODO: What does this type mean?
-
-
+
+
+
+
+
+
+
+
+
+
+ Specifies whether an action occur on install, uninstall or both.
+
+
+
- A broadly released fix for a specific problem addressing a critical, non-security related bug.
+
+ The action should happen during install (msiInstallStateLocal or msiInstallStateSource).
+
-
+
- Hotfixes address a specific customer situation and generally should not be distributed outside the customer's organization.
+
+ The action should happen during uninstall (msiInstallStateAbsent).
+
-
+
- A broadly released fix for a specific security-related related vulnerability.
+
+ The action should happen during both install and uninstall.
+
-
+
+
+
+
+
+
+ Controls which sequences the item assignment is sequenced in.
+
+
+
+
- A cumulative set of all hotfixes, security rollups, critical updates, and updates, as well as additional fixes and even new features found since the release of the product.
+
+ Schedules the assignment in the InstallUISequence and the InstallExecuteSequence.
+
-
+
- A broadly released fix for a specific problem addressing a non-critical, non-security related bug.
+
+ Schedules the assignment only in the the InstallExecuteSequence.
+
-
+
- A cumulative set of hotfixes, security rollups, critical updates, and updates packaged together which typically targets a specific area of a product.
+
+ Schedules the assignment only in the the InstallUISequence.
+
+
diff --git a/data/schemas/wixloc.xsd b/data/schemas/wixloc.xsd
index 766fc3d496..6cb1529323 100644
--- a/data/schemas/wixloc.xsd
+++ b/data/schemas/wixloc.xsd
@@ -9,7 +9,7 @@
Copyright (c) Microsoft Corporation. All rights reserved.
The use and distribution terms for this software are covered by the
- Common Public License 1.0 (http://opensource.org/licenses/cpl.php)
+ Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php)
which can be found in the file CPL.TXT at the root of this distribution.
By using this software in any fashion, you are agreeing to be bound by
the terms of this license.
@@ -36,7 +36,7 @@
- The code page integer value or web name for the resulting database. See remarks for more information.
+ The code page integer value or web name for the resulting database. You can also specify -1 which will not reset the database code page. See remarks for more information.
diff --git a/src/Setup/Files.wxs b/src/Setup/Files.wxs
index ca6cd90fb3..d774202d79 100644
--- a/src/Setup/Files.wxs
+++ b/src/Setup/Files.wxs
@@ -301,12 +301,6 @@
-
-
-
-
-
-
@@ -340,6 +334,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -625,9 +658,6 @@
-
-
-
diff --git a/src/Setup/Setup.wxs b/src/Setup/Setup.wxs
index 3c8e47570d..2e8d00f73b 100644
--- a/src/Setup/Setup.wxs
+++ b/src/Setup/Setup.wxs
@@ -212,6 +212,14 @@
+
+
+
+
+
+
+
+
@@ -222,8 +230,7 @@
-
-
+
@@ -233,7 +240,6 @@
-
@@ -247,6 +253,7 @@
+
@@ -260,9 +267,12 @@
+
+
+
@@ -410,7 +420,7 @@
-
+
diff --git a/src/Tools/wix/LuxTasks.dll b/src/Tools/wix/LuxTasks.dll
new file mode 100644
index 0000000000..54c3e506f5
Binary files /dev/null and b/src/Tools/wix/LuxTasks.dll differ
diff --git a/src/Tools/wix/Microsoft.Deployment.WindowsInstaller.dll b/src/Tools/wix/Microsoft.Deployment.WindowsInstaller.dll
new file mode 100644
index 0000000000..bf179ae8a6
Binary files /dev/null and b/src/Tools/wix/Microsoft.Deployment.WindowsInstaller.dll differ
diff --git a/src/Tools/wix/Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll b/src/Tools/wix/Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll
index f7d818c5ed..0bddbbc4e5 100755
Binary files a/src/Tools/wix/Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll and b/src/Tools/wix/Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll differ
diff --git a/src/Tools/wix/WixComPlusExtension.dll b/src/Tools/wix/WixComPlusExtension.dll
index 721de38107..00cc4e17af 100755
Binary files a/src/Tools/wix/WixComPlusExtension.dll and b/src/Tools/wix/WixComPlusExtension.dll differ
diff --git a/src/Tools/wix/WixCop.exe b/src/Tools/wix/WixCop.exe
index a1e83c7ec7..07dd4f4691 100755
Binary files a/src/Tools/wix/WixCop.exe and b/src/Tools/wix/WixCop.exe differ
diff --git a/src/Tools/wix/WixDifxAppExtension.dll b/src/Tools/wix/WixDifxAppExtension.dll
index d757446582..159d218525 100755
Binary files a/src/Tools/wix/WixDifxAppExtension.dll and b/src/Tools/wix/WixDifxAppExtension.dll differ
diff --git a/src/Tools/wix/WixDirectXExtension.dll b/src/Tools/wix/WixDirectXExtension.dll
index 7b3a98d11c..15f4c9ff3c 100755
Binary files a/src/Tools/wix/WixDirectXExtension.dll and b/src/Tools/wix/WixDirectXExtension.dll differ
diff --git a/src/Tools/wix/WixFirewallExtension.dll b/src/Tools/wix/WixFirewallExtension.dll
index 8b2836227b..afe457d7a9 100755
Binary files a/src/Tools/wix/WixFirewallExtension.dll and b/src/Tools/wix/WixFirewallExtension.dll differ
diff --git a/src/Tools/wix/WixGamingExtension.dll b/src/Tools/wix/WixGamingExtension.dll
index 919704a058..ee3381ee8a 100755
Binary files a/src/Tools/wix/WixGamingExtension.dll and b/src/Tools/wix/WixGamingExtension.dll differ
diff --git a/src/Tools/wix/WixIIsExtension.dll b/src/Tools/wix/WixIIsExtension.dll
index fbf3085dbf..b8e266a285 100755
Binary files a/src/Tools/wix/WixIIsExtension.dll and b/src/Tools/wix/WixIIsExtension.dll differ
diff --git a/src/Tools/wix/WixIsolatedAppExtension.dll b/src/Tools/wix/WixIsolatedAppExtension.dll
deleted file mode 100755
index 0b5ff5e2f0..0000000000
Binary files a/src/Tools/wix/WixIsolatedAppExtension.dll and /dev/null differ
diff --git a/src/Tools/wix/WixLuxExtension.dll b/src/Tools/wix/WixLuxExtension.dll
new file mode 100644
index 0000000000..63ac934ce8
Binary files /dev/null and b/src/Tools/wix/WixLuxExtension.dll differ
diff --git a/src/Tools/wix/WixMsmqExtension.dll b/src/Tools/wix/WixMsmqExtension.dll
index 3d6e8e727e..1d417d57ae 100755
Binary files a/src/Tools/wix/WixMsmqExtension.dll and b/src/Tools/wix/WixMsmqExtension.dll differ
diff --git a/src/Tools/wix/WixNetFxExtension.dll b/src/Tools/wix/WixNetFxExtension.dll
index 9810bda6a4..542ff21c53 100755
Binary files a/src/Tools/wix/WixNetFxExtension.dll and b/src/Tools/wix/WixNetFxExtension.dll differ
diff --git a/src/Tools/wix/WixOfficeExtension.dll b/src/Tools/wix/WixOfficeExtension.dll
deleted file mode 100755
index 5c4db26081..0000000000
Binary files a/src/Tools/wix/WixOfficeExtension.dll and /dev/null differ
diff --git a/src/Tools/wix/WixPSExtension.dll b/src/Tools/wix/WixPSExtension.dll
index b1b1ed3e78..bb199d88ce 100755
Binary files a/src/Tools/wix/WixPSExtension.dll and b/src/Tools/wix/WixPSExtension.dll differ
diff --git a/src/Tools/wix/WixSqlExtension.dll b/src/Tools/wix/WixSqlExtension.dll
index 78626cece7..0a0e18241e 100755
Binary files a/src/Tools/wix/WixSqlExtension.dll and b/src/Tools/wix/WixSqlExtension.dll differ
diff --git a/src/Tools/wix/WixTasks.dll b/src/Tools/wix/WixTasks.dll
index d30d04fe2f..7af495fb6a 100755
Binary files a/src/Tools/wix/WixTasks.dll and b/src/Tools/wix/WixTasks.dll differ
diff --git a/src/Tools/wix/WixUIExtension.dll b/src/Tools/wix/WixUIExtension.dll
index ae602eac57..95d8e5ba6e 100755
Binary files a/src/Tools/wix/WixUIExtension.dll and b/src/Tools/wix/WixUIExtension.dll differ
diff --git a/src/Tools/wix/WixUtilExtension.dll b/src/Tools/wix/WixUtilExtension.dll
index d814c7d557..eb4c24adca 100755
Binary files a/src/Tools/wix/WixUtilExtension.dll and b/src/Tools/wix/WixUtilExtension.dll differ
diff --git a/src/Tools/wix/WixVSExtension.dll b/src/Tools/wix/WixVSExtension.dll
index 33780d9e0c..8df14f3643 100755
Binary files a/src/Tools/wix/WixVSExtension.dll and b/src/Tools/wix/WixVSExtension.dll differ
diff --git a/src/Tools/wix/candle.exe b/src/Tools/wix/candle.exe
index 04e31c0823..453b3622d1 100755
Binary files a/src/Tools/wix/candle.exe and b/src/Tools/wix/candle.exe differ
diff --git a/src/Tools/wix/candle.exe.config b/src/Tools/wix/candle.exe.config
index cae9da72a8..bed32a739f 100644
--- a/src/Tools/wix/candle.exe.config
+++ b/src/Tools/wix/candle.exe.config
@@ -3,7 +3,8 @@
Copyright (c) Microsoft Corporation. All rights reserved.
-->
-
+
+
diff --git a/src/Tools/wix/darice.cub b/src/Tools/wix/darice.cub
index b2f3d0455c..dab45677f4 100644
Binary files a/src/Tools/wix/darice.cub and b/src/Tools/wix/darice.cub differ
diff --git a/src/Tools/wix/dark.exe b/src/Tools/wix/dark.exe
index 5201a75b21..6a245164d1 100755
Binary files a/src/Tools/wix/dark.exe and b/src/Tools/wix/dark.exe differ
diff --git a/src/Tools/wix/dark.exe.config b/src/Tools/wix/dark.exe.config
index a6d0ce1469..0743e49790 100644
--- a/src/Tools/wix/dark.exe.config
+++ b/src/Tools/wix/dark.exe.config
@@ -6,7 +6,8 @@
-
+
+
diff --git a/src/Tools/wix/difxapp_ia64.wixlib b/src/Tools/wix/difxapp_ia64.wixlib
new file mode 100644
index 0000000000..33e607fb7d
Binary files /dev/null and b/src/Tools/wix/difxapp_ia64.wixlib differ
diff --git a/src/Tools/wix/difxapp_x64.wixlib b/src/Tools/wix/difxapp_x64.wixlib
index 9fd9123072..2054bc00d8 100644
Binary files a/src/Tools/wix/difxapp_x64.wixlib and b/src/Tools/wix/difxapp_x64.wixlib differ
diff --git a/src/Tools/wix/difxapp_x86.wixlib b/src/Tools/wix/difxapp_x86.wixlib
index 666510f289..6d902196c6 100644
Binary files a/src/Tools/wix/difxapp_x86.wixlib and b/src/Tools/wix/difxapp_x86.wixlib differ
diff --git a/src/Tools/wix/heat.exe b/src/Tools/wix/heat.exe
index c4625bb98d..749d393eb7 100755
Binary files a/src/Tools/wix/heat.exe and b/src/Tools/wix/heat.exe differ
diff --git a/src/Tools/wix/heat.exe.config b/src/Tools/wix/heat.exe.config
index a8eba5561e..5d5aa303f4 100644
--- a/src/Tools/wix/heat.exe.config
+++ b/src/Tools/wix/heat.exe.config
@@ -6,7 +6,8 @@
-
+
+
diff --git a/src/Tools/wix/insignia.exe b/src/Tools/wix/insignia.exe
new file mode 100644
index 0000000000..f9e3a318fe
Binary files /dev/null and b/src/Tools/wix/insignia.exe differ
diff --git a/src/Tools/wix/insignia.exe.config b/src/Tools/wix/insignia.exe.config
new file mode 100644
index 0000000000..bed32a739f
--- /dev/null
+++ b/src/Tools/wix/insignia.exe.config
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
diff --git a/src/Tools/wix/light.exe b/src/Tools/wix/light.exe
index ccad41fa46..dfb786629f 100755
Binary files a/src/Tools/wix/light.exe and b/src/Tools/wix/light.exe differ
diff --git a/src/Tools/wix/light.exe.config b/src/Tools/wix/light.exe.config
index cae9da72a8..bed32a739f 100644
--- a/src/Tools/wix/light.exe.config
+++ b/src/Tools/wix/light.exe.config
@@ -3,7 +3,8 @@
Copyright (c) Microsoft Corporation. All rights reserved.
-->
-
+
+
diff --git a/src/Tools/wix/lit.exe b/src/Tools/wix/lit.exe
index a32b350bc9..1000d480cc 100755
Binary files a/src/Tools/wix/lit.exe and b/src/Tools/wix/lit.exe differ
diff --git a/src/Tools/wix/lit.exe.config b/src/Tools/wix/lit.exe.config
index cae9da72a8..bed32a739f 100644
--- a/src/Tools/wix/lit.exe.config
+++ b/src/Tools/wix/lit.exe.config
@@ -3,7 +3,8 @@
Copyright (c) Microsoft Corporation. All rights reserved.
-->
-
+
+
diff --git a/src/Tools/wix/lux.exe b/src/Tools/wix/lux.exe
new file mode 100644
index 0000000000..1966b5c695
Binary files /dev/null and b/src/Tools/wix/lux.exe differ
diff --git a/src/Tools/wix/lux.exe.config b/src/Tools/wix/lux.exe.config
new file mode 100644
index 0000000000..a6f6211da1
--- /dev/null
+++ b/src/Tools/wix/lux.exe.config
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Tools/wix/lux.targets b/src/Tools/wix/lux.targets
new file mode 100644
index 0000000000..e1c0ff5560
--- /dev/null
+++ b/src/Tools/wix/lux.targets
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+ Compile;_ScanForUnitTests;_GenerateTestConsumer;Link
+ $(BuildTestPackageDependsOn)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(OutputName)_test
+ ICE71;$(SuppressIces)
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Tools/wix/melt.exe b/src/Tools/wix/melt.exe
index e80d0ce9df..8ad0b3dfdc 100755
Binary files a/src/Tools/wix/melt.exe and b/src/Tools/wix/melt.exe differ
diff --git a/src/Tools/wix/melt.exe.config b/src/Tools/wix/melt.exe.config
index 1b3e15d4c8..807cf2cce6 100644
--- a/src/Tools/wix/melt.exe.config
+++ b/src/Tools/wix/melt.exe.config
@@ -5,7 +5,8 @@
-
+
+
diff --git a/src/Tools/wix/mergemod.dll b/src/Tools/wix/mergemod.dll
index 0834660baa..cc53b1c7b6 100755
Binary files a/src/Tools/wix/mergemod.dll and b/src/Tools/wix/mergemod.dll differ
diff --git a/src/Tools/wix/nit.exe b/src/Tools/wix/nit.exe
new file mode 100644
index 0000000000..231f9674ec
Binary files /dev/null and b/src/Tools/wix/nit.exe differ
diff --git a/src/Tools/wix/nit.exe.config b/src/Tools/wix/nit.exe.config
new file mode 100644
index 0000000000..cae9da72a8
--- /dev/null
+++ b/src/Tools/wix/nit.exe.config
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/src/Tools/wix/pyro.exe b/src/Tools/wix/pyro.exe
index 60f456c0b1..6f262666b2 100755
Binary files a/src/Tools/wix/pyro.exe and b/src/Tools/wix/pyro.exe differ
diff --git a/src/Tools/wix/pyro.exe.config b/src/Tools/wix/pyro.exe.config
index cae9da72a8..bed32a739f 100644
--- a/src/Tools/wix/pyro.exe.config
+++ b/src/Tools/wix/pyro.exe.config
@@ -3,7 +3,8 @@
Copyright (c) Microsoft Corporation. All rights reserved.
-->
-
+
+
diff --git a/src/Tools/wix/smoke.exe b/src/Tools/wix/smoke.exe
index a4a3c7be93..14219a7fef 100755
Binary files a/src/Tools/wix/smoke.exe and b/src/Tools/wix/smoke.exe differ
diff --git a/src/Tools/wix/smoke.exe.config b/src/Tools/wix/smoke.exe.config
index cae9da72a8..bed32a739f 100644
--- a/src/Tools/wix/smoke.exe.config
+++ b/src/Tools/wix/smoke.exe.config
@@ -3,7 +3,8 @@
Copyright (c) Microsoft Corporation. All rights reserved.
-->
-
+
+
diff --git a/src/Tools/wix/torch.exe b/src/Tools/wix/torch.exe
index 61d88d8d5b..89d2177f78 100755
Binary files a/src/Tools/wix/torch.exe and b/src/Tools/wix/torch.exe differ
diff --git a/src/Tools/wix/torch.exe.config b/src/Tools/wix/torch.exe.config
index cae9da72a8..bed32a739f 100644
--- a/src/Tools/wix/torch.exe.config
+++ b/src/Tools/wix/torch.exe.config
@@ -3,7 +3,8 @@
Copyright (c) Microsoft Corporation. All rights reserved.
-->
-
+
+
diff --git a/src/Tools/wix/wconsole.dll b/src/Tools/wix/wconsole.dll
index e94663bf49..871febb244 100755
Binary files a/src/Tools/wix/wconsole.dll and b/src/Tools/wix/wconsole.dll differ
diff --git a/src/Tools/wix/winterop.dll b/src/Tools/wix/winterop.dll
index 72fc106c4c..3eeb9aac23 100755
Binary files a/src/Tools/wix/winterop.dll and b/src/Tools/wix/winterop.dll differ
diff --git a/src/Tools/wix/wix.dll b/src/Tools/wix/wix.dll
index b2b4677bbd..ef9f2a0bbd 100755
Binary files a/src/Tools/wix/wix.dll and b/src/Tools/wix/wix.dll differ
diff --git a/src/Tools/wix/wix.targets b/src/Tools/wix/wix.targets
index b29f401d38..0b2e829d7b 100644
--- a/src/Tools/wix/wix.targets
+++ b/src/Tools/wix/wix.targets
@@ -36,2080 +36,20 @@ Copyright (c) Microsoft Corporation. All rights reserved.
****************************************************************************************************
-->
-
-
-
-
-
- $(MSBuildProjectFullPath).user
-
-
-
-
-
-
- $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.0\Wix.targets
- $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.0\WixTasks.dll
- $(MSBuildExtensionsPath)\Microsoft\WiX\v3.0\Wix.targets
- $(MSBuildExtensionsPath)\Microsoft\WiX\v3.0\WixTasks.dll
-
-
-
-
- $(MSBuildAllProjects);$(MSBuildProjectFullPath)
- $(MSBuildAllProjects);$(WixTargetsPath)
- $(MSBuildAllProjects);$(UserTargetsPath)
- $(MSBuildAllProjects);$(CustomBeforeWixTargets)
- $(MSBuildAllProjects);$(CustomAfterWixTargets)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Debug
- AnyCPU
- bin\$(Configuration)\
-
- $(OutputPath)\
- <_OriginalOutputType>$(OutputType)
- Package
-
-
-
-
- obj\
- $(IntermediateOutputPath)\
- $(BaseIntermediateOutputPath)$(Configuration)\
- $(BaseIntermediateOutputPath)$(Platform)\$(Configuration)\
- .wixobj
- $(MSBuildProjectFile).FileList.txt
-
-
-
-
-
-
- .msi
- .msm
- .pcp
- .wixlib
-
-
-
-
- $(OutputPath)
-
- $(OutDir)\
-
-
- $(MSBuildProjectName)
-
-
- $(MSBuildProjectFile)
-
-
- $(MSBuildProjectExtension)
-
-
- $(MSBuildProjectDirectory)\
-
-
- $(ProjectDir)$(ProjectFileName)
-
-
- .wixpdb
-
-
- $(OutputName)
-
-
- $(TargetName)$(TargetExt)
-
-
- $(TargetName)$(TargetPdbExt)
-
-
- $(Configuration)
-
-
- $(Platform)
-
-
-
-
- <_OutputPathItem Include="$(OutDir)" />
- <_IntermediateOutputPathItem Include="$(IntermediateOutputPath)" />
-
-
-
-
-
- @(_OutputPathItem->'%(FullPath)')
-
-
- @(_OutputPathItem->'%(FullPath)$(TargetFileName)')
-
- @(_OutputPathItem->'%(FullPath)$(TargetPdbName)')
-
-
-
-
- *Undefined if not building from within Visual Studio*
-
-
- *Undefined if not building a solution or within Visual Studio*
-
-
- *Undefined if not building a solution or within Visual Studio*
-
-
- *Undefined if not building a solution or within Visual Studio*
-
-
- *Undefined if not building a solution or within Visual Studio*
-
-
- *Undefined if not building a solution or within Visual Studio*
-
-
-
-
-
-
-
-
-
-
-
- $(NoLogo)
- $(SuppressAllWarnings)
- $(SuppressSpecificWarnings)
- $(SuppressSchemaValidation)
- $(TreatWarningsAsErrors)
- $(TreatSpecificWarningsAsErrors)
- $(VerboseOutput)
- $(Platform)
-
-
-
-
- $(NoLogo)
- $(BindFiles)
- $(Pedantic)
- $(SuppressAllWarnings)
- $(SuppressSpecificWarnings)
- $(SuppressSchemaValidation)
- $(SuppressIntermediateFileVersionMatching)
- $(TreatWarningsAsErrors)
- $(TreatSpecificWarningsAsErrors)
- $(VerboseOutput)
-
-
-
-
- $(NoLogo)
- $(BaseInputPaths)
- $(BindFiles)
- $(Pedantic)
- $(SuppressAllWarnings)
- $(SuppressSpecificWarnings)
- $(SuppressSchemaValidation)
- $(SuppressIntermediateFileVersionMatching)
- $(TreatWarningsAsErrors)
- $(TreatSpecificWarningsAsErrors)
- $(VerboseOutput)
-
-
-
-
-
-
- <_PleaseSetThisInProjectFile>Please set this in the project file before the <Import> of the wix.targets file.
- <_OutputTypeDescription>The OutputType defines whether a Windows Installer package (.msi), PatchCreation (.pcp), merge module (.msm), or wix library (.wixlib) is being built. $(_PleaseSetThisInProjectFile) Possible values are 'Package', 'Module', and 'Library'.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- SOFTWARE\Microsoft\Windows Installer XML\3.0
- SOFTWARE\Wow6432Node\Microsoft\Windows Installer XML\3.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BeforeBuild;
- CoreBuild;
- AfterBuild
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BuildOnlySettings;
- PrepareForBuild;
- PreBuildEvent;
- ResolveReferences;
- AddCompilerDefineConstants;
- CompileAndLink;
- GetTargetPath;
- IncrementalClean;
- PostBuildEvent
-
-
-
-
-
-
-
-
-
-
-
-
-
- BeforeRebuild;
- Clean;
- $(MSBuildProjectDefaultTargets);
- AfterRebuild;
-
-
-
- BeforeRebuild;
- Clean;
- Build;
- AfterRebuild;
-
-
-
-
-
-
-
-
-
-
-
-
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PrepareForBuild
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- GetTargetPath
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BeforeResolveReferences;
- SplitProjectReferencesByType;
- ResolveProjectReferences;
- ResolveVCProjectReferences;
- ResolveWixLibraryReferences;
- ResolveWixExtensionReferences;
- AfterResolveReferences
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PrepareForBuild;
- AssignCultures
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PrepareForBuild;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ResolveReferences;
- AddSolutionDefineConstants;
- AddProjectReferenceDefineConstants;
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ResolveReferences;
- BeforeCompileAndLink;
- _TimeStampBeforeCompileAndLink;
- HarvestProjects;
- Compile;
- Lib;
- Link;
- _TimeStampAfterCompileAndLink;
- AfterCompileAndLink
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PrepareForBuild;
- ResolveWixExtensionReferences
-
-
-
-
-
-
-
-
-
-
-
-
-
- PrepareForBuild;
- ResolveWixExtensionReferences
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PrepareForBuild;
- ResolveReferences;
- AssignCultures;
-
-
+ xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- BeforeClean;
- CleanReferencedProjects;
- CoreClean;
- AfterClean
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
- GetTargetPath
+
+
+ wix2010.targets
+
+ wix200x.targets
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
- $(TargetPath)
- $(TargetFileName)
-
-
-
-
-
- PrepareForBuild;AssignCultures
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- AssignCultures
-
-
-
- @(_OutputPathItem->'%(FullPath)$(TargetName).pdb')
- $(TargetName).pdb
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PrepareForBuild
-
-
-
-
-
- PrepareForBuild
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PrepareForBuild
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/src/Tools/wix/wix200x.targets b/src/Tools/wix/wix200x.targets
new file mode 100644
index 0000000000..63f4534ee2
--- /dev/null
+++ b/src/Tools/wix/wix200x.targets
@@ -0,0 +1,2709 @@
+
+
+
+
+
+
+
+
+ $(MSBuildProjectFullPath).user
+
+
+
+
+
+
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\WixTasks.dll
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\WixTasks.dll
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Lux.targets
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\LuxTasks.dll
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Lux.targets
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\LuxTasks.dll
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildProjectFullPath)
+ $(MSBuildAllProjects);$(WixTargetsPath)
+ $(MSBuildAllProjects);$(LuxTargetsPath)
+ $(MSBuildAllProjects);$(UserTargetsPath)
+ $(MSBuildAllProjects);$(CustomBeforeWixTargets)
+ $(MSBuildAllProjects);$(CustomAfterWixTargets)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+ Debug
+ AnyCPU
+ bin\$(Configuration)\
+
+ $(OutputPath)\
+ <_OriginalOutputType>$(OutputType)
+ Package
+ true
+
+
+
+
+ obj\
+ $(IntermediateOutputPath)\
+ $(BaseIntermediateOutputPath)$(Configuration)\
+ $(BaseIntermediateOutputPath)$(Platform)\$(Configuration)\
+ .wixobj
+ $(MSBuildProjectFile).FileList.txt
+
+
+
+
+
+
+ .msi
+ .msm
+ .pcp
+ .wixlib
+ .exe
+
+
+
+
+ $(OutputPath)
+
+ $(OutDir)\
+
+
+ $(MSBuildProjectName)
+
+
+ $(MSBuildProjectFile)
+
+
+ $(MSBuildProjectExtension)
+
+
+ $(MSBuildProjectDirectory)\
+
+
+ $(ProjectDir)$(ProjectFileName)
+
+
+ .wixpdb
+
+
+ $(OutputName)
+
+
+ $(TargetName)$(TargetExt)
+
+
+ $(TargetName)$(TargetPdbExt)
+
+
+ $(Configuration)
+
+
+ $(Platform)
+
+
+
+
+ <_OutputPathItem Include="$(OutDir)" />
+ <_IntermediateOutputPathItem Include="$(IntermediateOutputPath)" />
+
+
+
+
+
+ @(_OutputPathItem->'%(FullPath)')
+
+
+ @(_OutputPathItem->'%(FullPath)$(TargetFileName)')
+
+ @(_OutputPathItem->'%(FullPath)$(TargetPdbName)')
+
+
+
+
+ *Undefined if not building from within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+
+
+
+
+
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+ true
+ false
+ true
+ false
+
+
+
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+ $(IntermediateOutputPath)Product.Generated.wxs
+ $(IntermediateOutputPath)Bundle.Generated.wxs
+
+
+
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+
+
+
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+ $(Platform)
+
+
+
+
+ $(NoLogo)
+ $(BindFiles)
+ $(Pedantic)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(SuppressIntermediateFileVersionMatching)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+ $(NoLogo)
+ $(BaseInputPaths)
+ $(BindFiles)
+ $(Pedantic)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(SuppressIntermediateFileVersionMatching)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+
+ <_PleaseSetThisInProjectFile>Please set this in the project file before the <Import> of the wix.targets file.
+ <_OutputTypeDescription>The OutputType defines whether a Windows Installer package (.msi), PatchCreation (.pcp), merge module (.msm), wix library (.wixlib), or self-extracting executable (.exe) is being built. $(_PleaseSetThisInProjectFile) Possible values are 'Package', 'Module', 'Library', and 'Bundle'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SOFTWARE\Microsoft\Windows Installer XML\3.5
+ SOFTWARE\Wow6432Node\Microsoft\Windows Installer XML\3.5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeBuild;
+ CoreBuild;
+ AfterBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BuildOnlySettings;
+ PrepareForBuild;
+ PreBuildEvent;
+ ResolveReferences;
+ AddCompilerDefineConstants;
+ CompileAndLink;
+ Signing;
+ GetTargetPath;
+ IncrementalClean;
+ PostBuildEvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeRebuild;
+ Clean;
+ $(MSBuildProjectDefaultTargets);
+ AfterRebuild;
+
+
+
+ BeforeRebuild;
+ Clean;
+ Build;
+ AfterRebuild;
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetTargetPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeResolveReferences;
+ SplitProjectReferencesByType;
+ ResolveProjectReferences;
+ ResolveVCProjectReferences;
+ ResolveWixLibraryReferences;
+ ResolveWixExtensionReferences;
+ AfterResolveReferences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ AssignCultures
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResolveReferences;
+ AddSolutionDefineConstants;
+ AddProjectReferenceDefineConstants;
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResolveReferences;
+ BeforeCompileAndLink;
+ _TimeStampBeforeCompileAndLink;
+ ConvertReferences;
+ ConvertBundleReferences;
+ Harvest;
+ GenerateCode;
+ Compile;
+ Lib;
+ Link;
+ _TimeStampAfterCompileAndLink;
+ AfterCompileAndLink
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HarvestProjects;
+ HarvestDirectory;
+ HarvestFile;
+
+
+
+
+
+
+
+ RefreshGeneratedFile;
+ RefreshBundleGeneratedFile
+
+
+
+
+
+
+
+ CompileAndLink;
+ BeforeSigning;
+ SignCabs;
+ Inscribe;
+ SignMsi;
+ AfterSigning
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CombineHarvestProjects
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetHarvestDirectoryContent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ GenerateCompileWithObjectPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ CompileAndLink;
+ SignCabs
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveReferences;
+ AssignCultures;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeClean;
+ CleanReferencedProjects;
+ CoreClean;
+ AfterClean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetTargetPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(TargetPath)
+ $(TargetFileName)
+
+
+
+
+
+
+
+ PrepareForBuild;AssignCultures
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AssignCultures
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Tools/wix/wix2010.targets b/src/Tools/wix/wix2010.targets
new file mode 100644
index 0000000000..883c91be3f
--- /dev/null
+++ b/src/Tools/wix/wix2010.targets
@@ -0,0 +1,2692 @@
+
+
+
+
+
+
+
+ $(MSBuildProjectFullPath).user
+
+
+
+
+
+
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\WixTasks.dll
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\WixTasks.dll
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Lux.targets
+ $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\LuxTasks.dll
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Lux.targets
+ $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\LuxTasks.dll
+
+
+
+
+ $(MSBuildAllProjects);$(MSBuildProjectFullPath)
+ $(MSBuildAllProjects);$(WixTargetsPath)
+ $(MSBuildAllProjects);$(LuxTargetsPath)
+ $(MSBuildAllProjects);$(UserTargetsPath)
+ $(MSBuildAllProjects);$(CustomBeforeWixTargets)
+ $(MSBuildAllProjects);$(CustomAfterWixTargets)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+ $(OutputPath)\
+ $(MSBuildProjectName)
+
+ bin\Debug\
+ <_OriginalConfiguration>$(Configuration)
+ <_OriginalPlatform>$(Platform)
+ Debug
+ $(Configuration)
+ AnyCPU
+ <_OriginalOutputType>$(OutputType)
+ Package
+ true
+
+
+
+
+ <_InvalidConfigurationError Condition=" '$(SkipInvalidConfigurations)' != 'true' ">true
+ <_InvalidConfigurationWarning Condition=" '$(SkipInvalidConfigurations)' == 'true' ">true
+
+
+
+
+ obj\
+ $(BaseIntermediateOutputPath)\
+ .wixobj
+ $(MSBuildProjectFile).FileList.txt
+
+
+
+ $(BaseIntermediateOutputPath)$(Configuration)\
+ $(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\
+
+
+ $(IntermediateOutputPath)\
+
+
+
+
+
+
+
+ $(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Installer XML\3.5@InstallRoot)
+ $(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows Installer XML\3.5@InstallRoot)
+ $(WixToolPath)
+
+
+
+
+
+
+ .msi
+ .msm
+ .pcp
+ .wixlib
+ .exe
+
+
+
+
+ $(OutputPath)
+
+ $(OutDir)\
+
+
+ $(MSBuildProjectName)
+
+
+ $(MSBuildProjectFile)
+
+
+ $(MSBuildProjectExtension)
+
+
+ $(MSBuildProjectDirectory)\
+
+
+ $(ProjectDir)$(ProjectFileName)
+
+
+ .wixpdb
+
+
+ $(OutputName)
+
+
+ $(TargetName)$(TargetExt)
+
+
+ $(TargetName)$(TargetPdbExt)
+
+
+ $(Configuration)
+
+
+ $(Platform)
+
+
+
+
+ <_OutputPathItem Include="$(OutDir)" />
+ <_IntermediateOutputPathItem Include="$(IntermediateOutputPath)" />
+
+
+
+
+
+ $([System.IO.Path]::GetFullPath(`$([System.IO.Path]::Combine(`$(MSBuildProjectDirectory)`, `$(OutDir)`))`))
+
+
+ $(TargetDir)$(TargetFileName)
+
+ $(TargetDir)$(TargetPdbName)
+
+
+
+
+ *Undefined if not building from within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+ *Undefined if not building a solution or within Visual Studio*
+
+
+
+
+
+
+
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+ true
+ false
+ true
+ false
+
+
+
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+ $(IntermediateOutputPath)Product.Generated.wxs
+ $(IntermediateOutputPath)Bundle.Generated.wxs
+
+
+
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+
+
+
+
+ $(HarvestNoLogo)
+ $(HarvestSuppressAllWarnings)
+ $(HarvestSuppressSpecificWarnings)
+ $(HarvestTreatWarningsAsErrors)
+ $(HarvestTreatSpecificWarningsAsErrors)
+ $(HarvestVerboseOutput)
+ $(HarvestAutogenerateGuids)
+ $(HarvestGenerateGuidsNow)
+ $(HarvestSuppressFragments)
+ $(HarvestSuppressUniqueIds)
+ $(HarvestTransforms)
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+ $(Platform)
+
+
+
+
+ $(NoLogo)
+ $(BindFiles)
+ $(Pedantic)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(SuppressIntermediateFileVersionMatching)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+ $(NoLogo)
+ $(BaseInputPaths)
+ $(BindFiles)
+ $(Pedantic)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(SuppressSchemaValidation)
+ $(SuppressIntermediateFileVersionMatching)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+ $(NoLogo)
+ $(SuppressAllWarnings)
+ $(SuppressSpecificWarnings)
+ $(TreatWarningsAsErrors)
+ $(TreatSpecificWarningsAsErrors)
+ $(VerboseOutput)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_PleaseSetThisInProjectFile>Please set this in the project file before the <Import> of the wix.targets file.
+ <_OutputTypeDescription>The OutputType defines whether a Windows Installer package (.msi), PatchCreation (.pcp), merge module (.msm), wix library (.wixlib), or self-extracting executable (.exe) is being built. $(_PleaseSetThisInProjectFile) Possible values are 'Package', 'Module', 'Library', and 'Bundle'.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeBuild;
+ CoreBuild;
+ AfterBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BuildOnlySettings;
+ PrepareForBuild;
+ PreBuildEvent;
+ ResolveReferences;
+ AddCompilerDefineConstants;
+ CompileAndLink;
+ Signing;
+ GetTargetPath;
+ IncrementalClean;
+ PostBuildEvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeRebuild;
+ Clean;
+ $(MSBuildProjectDefaultTargets);
+ AfterRebuild;
+
+
+
+ BeforeRebuild;
+ Clean;
+ Build;
+ AfterRebuild;
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetTargetPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeResolveReferences;
+ AssignProjectConfiguration;
+ ResolveProjectReferences;
+ ResolveWixLibraryReferences;
+ ResolveWixExtensionReferences;
+ AfterResolveReferences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_ProjectReferenceWithConfiguration>
+ %(FullPath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_MSBuildProjectReference Include="@(_ProjectReferenceWithConfiguration)" Condition="'$(BuildingInsideVisualStudio)'!='true' and '@(_ProjectReferenceWithConfiguration)'!=''"/>
+
+
+
+
+ <_MSBuildProjectReferenceExistent Include="@(_MSBuildProjectReference)" Condition="Exists('%(Identity)')"/>
+ <_MSBuildProjectReferenceNonexistent Include="@(_MSBuildProjectReference)" Condition="!Exists('%(Identity)')"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ AssignCultures
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResolveReferences;
+ AddSolutionDefineConstants;
+ AddProjectReferenceDefineConstants;
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ResolveReferences;
+ BeforeCompileAndLink;
+ _TimeStampBeforeCompileAndLink;
+ ConvertReferences;
+ ConvertBundleReferences;
+ Harvest;
+ GenerateCode;
+ Compile;
+ Lib;
+ Link;
+ _TimeStampAfterCompileAndLink;
+ AfterCompileAndLink
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HarvestProjects;
+ HarvestDirectory;
+ HarvestFile;
+
+
+
+
+
+
+
+ RefreshGeneratedFile;
+ RefreshBundleGeneratedFile
+
+
+
+
+
+
+
+ CompileAndLink;
+ BeforeSigning;
+ SignCabs;
+ Inscribe;
+ SignMsi;
+ AfterSigning
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_HeatProjectReference Include="@(_MSBuildProjectReferenceExistent)" Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' ">
+ %(_MSBuildProjectReferenceExistent.RefTargetDir)
+ Binaries;Symbols;Sources;Content;Satellites;Documents
+ %(_MSBuildProjectReferenceExistent.Name)
+ $(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs
+
+
+
+
+
+
+
+
+
+ <_GeneratedFiles Include="$(HarvestProjectsGeneratedFile)" />
+
+
+
+
+
+
+
+
+ <_HeatProjectReference Include="@(_MSBuildProjectReferenceExistent)" Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' ">
+ Binaries;Symbols;Sources;Content;Satellites;Documents
+ payloadgroup
+ $(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs
+
+
+
+
+
+
+
+
+
+ <_GeneratedFiles Include="$(HarvestProjectsGeneratedFile)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(HarvestProjectsTransforms)
+ $(HarvestProjectsProjectOutputGroups)
+ $(HarvestProjectsDirectoryIds)
+
+
+ $(HarvestProjectsTransforms)
+ $(HarvestProjectsProjectOutputGroups)
+ $(HarvestProjectsDirectoryIds)
+
+
+
+
+ CombineHarvestProjects
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(HarvestDirectoryTransforms)
+ $(HarvestDirectoryComponentGroupName)
+ $(HarvestDirectoryDirectoryRefId)
+ $(HarvestDirectoryKeepEmptyDirectories)
+ $(HarvestDirectoryPreprocessorVariable)
+ $(HarvestDirectorySuppressCom)
+ $(HarvestDirectorySuppressRootDirectory)
+ $(HarvestDirectorySuppressRegistry)
+
+
+
+
+
+ GetHarvestDirectoryContent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(HarvestFileTransforms)
+ $(HarvestFileComponentGroupName)
+ $(HarvestFileDirectoryRefId)
+ $(HarvestFilePreprocessorVariable)
+ $(HarvestFileSuppressCom)
+ $(HarvestFileSuppressRegistry)
+ $(HarvestFileSuppressRootDirectory)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_CompileWithObjectPath Include="@(Compile)">
+
+ $(IntermediateOutputPath)%(RelativeDir)
+
+ $(IntermediateOutputPath)
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ GenerateCompileWithObjectPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences;
+ CompileAndLink;
+ SignCabs
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveWixExtensionReferences
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild;
+ ResolveReferences;
+ AssignCultures;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ BeforeClean;
+ CleanReferencedProjects;
+ CoreClean;
+ AfterClean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GetTargetPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+ $(TargetPath)
+ $(TargetFileName)
+
+
+
+
+
+ PrepareForBuild;AssignCultures
+ true
+
+
+
+
+
+
+
+
+
+ %(_BuiltProjectOutputGroupOutputIntermediate.FullPath)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AssignCultures
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PrepareForBuild
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Tools/wix/wui.dll b/src/Tools/wix/wui.dll
index 7bb22c5956..95b7aada52 100755
Binary files a/src/Tools/wix/wui.dll and b/src/Tools/wix/wui.dll differ