diff --git a/BlankFile.zip b/BlankFile.zip
new file mode 100644
index 0000000..e6709a2
--- /dev/null
+++ b/BlankFile.zip
Binary files differ
diff --git a/CPL.TXT b/CPL.TXT
new file mode 100644
index 0000000..5207f81
--- /dev/null
+++ b/CPL.TXT
@@ -0,0 +1,94 @@
+Common Public License Version 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+
+1. DEFINITIONS 
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and 
+
+b) in the case of each subsequent Contributor:
+
+i) changes to the Program, and
+
+ii) additions to the Program;
+
+where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program. 
+
+"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement. 
+
+"Recipient" means anyone who receives the Program under this Agreement, including all Contributors. 
+
+
+2. GRANT OF RIGHTS
+
+a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.
+
+b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.
+
+c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.
+
+d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.
+
+
+3. REQUIREMENTS 
+
+A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: 
+
+a) it complies with the terms and conditions of this Agreement; and
+
+b) its license agreement:
+
+i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; 
+
+ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; 
+
+iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and 
+
+iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. 
+
+When the Program is made available in source code form:
+
+a) it must be made available under this Agreement; and
+
+b) a copy of this Agreement must be included with each copy of the Program. 
+
+Contributors may not remove or alter any copyright notices contained within the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. 
+
+
+4. COMMERCIAL DISTRIBUTION 
+
+Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. 
+
+For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. 
+
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. 
+
+
+6. DISCLAIMER OF LIABILITY 
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 
+
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. 
+
+If Recipient institutes patent litigation against a Contributor with respect to a patent applicable to software (including a cross-claim or counterclaim in a lawsuit), then any patent licenses granted by that Contributor to such Recipient under this Agreement shall terminate as of the date such litigation is filed. In addition, if Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. 
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. IBM is the initial Agreement Steward. IBM may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. 
+
+This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.
diff --git a/CustomActionCPP_2005.zip b/CustomActionCPP_2005.zip
new file mode 100644
index 0000000..dba1960
--- /dev/null
+++ b/CustomActionCPP_2005.zip
Binary files differ
diff --git a/CustomActionCPP_2008.zip b/CustomActionCPP_2008.zip
new file mode 100644
index 0000000..d97a473
--- /dev/null
+++ b/CustomActionCPP_2008.zip
Binary files differ
diff --git a/IncludeFile.ico b/IncludeFile.ico
new file mode 100644
index 0000000..1429bf2
--- /dev/null
+++ b/IncludeFile.ico
Binary files differ
diff --git a/IncludeFile.zip b/IncludeFile.zip
new file mode 100644
index 0000000..466fe93
--- /dev/null
+++ b/IncludeFile.zip
Binary files differ
diff --git a/LocalizationFile.ico b/LocalizationFile.ico
new file mode 100644
index 0000000..b5bcc9f
--- /dev/null
+++ b/LocalizationFile.ico
Binary files differ
diff --git a/LocalizationFile.zip b/LocalizationFile.zip
new file mode 100644
index 0000000..df85620
--- /dev/null
+++ b/LocalizationFile.zip
Binary files differ
diff --git a/LuxTasks.dll b/LuxTasks.dll
new file mode 100755
index 0000000..54c3e50
--- /dev/null
+++ b/LuxTasks.dll
Binary files differ
diff --git a/Microsoft.Deployment.WindowsInstaller.dll b/Microsoft.Deployment.WindowsInstaller.dll
new file mode 100755
index 0000000..bf179ae
--- /dev/null
+++ b/Microsoft.Deployment.WindowsInstaller.dll
Binary files differ
diff --git a/Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll b/Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll
new file mode 100755
index 0000000..0bddbbc
--- /dev/null
+++ b/Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll
Binary files differ
diff --git a/ProductFile.ico b/ProductFile.ico
new file mode 100644
index 0000000..def49d5
--- /dev/null
+++ b/ProductFile.ico
Binary files differ
diff --git a/ProjectFile.ico b/ProjectFile.ico
new file mode 100644
index 0000000..53134de
--- /dev/null
+++ b/ProjectFile.ico
Binary files differ
diff --git a/SetupBuilder.dll b/SetupBuilder.dll
new file mode 100755
index 0000000..04b214e
--- /dev/null
+++ b/SetupBuilder.dll
Binary files differ
diff --git a/TextFile.zip b/TextFile.zip
new file mode 100644
index 0000000..a4b699c
--- /dev/null
+++ b/TextFile.zip
Binary files differ
diff --git a/WixComPlusExtension.dll b/WixComPlusExtension.dll
new file mode 100755
index 0000000..00cc4e1
--- /dev/null
+++ b/WixComPlusExtension.dll
Binary files differ
diff --git a/WixCop.exe b/WixCop.exe
new file mode 100755
index 0000000..07dd4f4
--- /dev/null
+++ b/WixCop.exe
Binary files differ
diff --git a/WixDifxAppExtension.dll b/WixDifxAppExtension.dll
new file mode 100755
index 0000000..159d218
--- /dev/null
+++ b/WixDifxAppExtension.dll
Binary files differ
diff --git a/WixDirectXExtension.dll b/WixDirectXExtension.dll
new file mode 100755
index 0000000..15f4c9f
--- /dev/null
+++ b/WixDirectXExtension.dll
Binary files differ
diff --git a/WixFirewallExtension.dll b/WixFirewallExtension.dll
new file mode 100755
index 0000000..afe457d
--- /dev/null
+++ b/WixFirewallExtension.dll
Binary files differ
diff --git a/WixGamingExtension.dll b/WixGamingExtension.dll
new file mode 100755
index 0000000..ee3381e
--- /dev/null
+++ b/WixGamingExtension.dll
Binary files differ
diff --git a/WixIIsExtension.dll b/WixIIsExtension.dll
new file mode 100755
index 0000000..b8e266a
--- /dev/null
+++ b/WixIIsExtension.dll
Binary files differ
diff --git a/WixLibrary.zip b/WixLibrary.zip
new file mode 100644
index 0000000..c6aa11d
--- /dev/null
+++ b/WixLibrary.zip
Binary files differ
diff --git a/WixLibraryFile.ico b/WixLibraryFile.ico
new file mode 100644
index 0000000..86c3cbe
--- /dev/null
+++ b/WixLibraryFile.ico
Binary files differ
diff --git a/WixLuxExtension.dll b/WixLuxExtension.dll
new file mode 100755
index 0000000..63ac934
--- /dev/null
+++ b/WixLuxExtension.dll
Binary files differ
diff --git a/WixMergeModule.zip b/WixMergeModule.zip
new file mode 100644
index 0000000..6b2ad0c
--- /dev/null
+++ b/WixMergeModule.zip
Binary files differ
diff --git a/WixMsmqExtension.dll b/WixMsmqExtension.dll
new file mode 100755
index 0000000..1d417d5
--- /dev/null
+++ b/WixMsmqExtension.dll
Binary files differ
diff --git a/WixNetFxExtension.dll b/WixNetFxExtension.dll
new file mode 100755
index 0000000..542ff21
--- /dev/null
+++ b/WixNetFxExtension.dll
Binary files differ
diff --git a/WixPSExtension.dll b/WixPSExtension.dll
new file mode 100755
index 0000000..bb199d8
--- /dev/null
+++ b/WixPSExtension.dll
Binary files differ
diff --git a/WixProject.zip b/WixProject.zip
new file mode 100644
index 0000000..8feca5a
--- /dev/null
+++ b/WixProject.zip
Binary files differ
diff --git a/WixSqlExtension.dll b/WixSqlExtension.dll
new file mode 100755
index 0000000..0a0e182
--- /dev/null
+++ b/WixSqlExtension.dll
Binary files differ
diff --git a/WixTasks.dll b/WixTasks.dll
new file mode 100755
index 0000000..7af495f
--- /dev/null
+++ b/WixTasks.dll
Binary files differ
diff --git a/WixUIExtension.dll b/WixUIExtension.dll
new file mode 100755
index 0000000..95d8e5b
--- /dev/null
+++ b/WixUIExtension.dll
Binary files differ
diff --git a/WixUtilExtension.dll b/WixUtilExtension.dll
new file mode 100755
index 0000000..eb4c24a
--- /dev/null
+++ b/WixUtilExtension.dll
Binary files differ
diff --git a/WixVSExtension.dll b/WixVSExtension.dll
new file mode 100755
index 0000000..8df14f3
--- /dev/null
+++ b/WixVSExtension.dll
Binary files differ
diff --git a/candle.exe b/candle.exe
new file mode 100755
index 0000000..453b362
--- /dev/null
+++ b/candle.exe
Binary files differ
diff --git a/candle.exe.config b/candle.exe.config
new file mode 100644
index 0000000..bed32a7
--- /dev/null
+++ b/candle.exe.config
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <startup useLegacyV2RuntimeActivationPolicy="true">
+        <supportedRuntime version="v4.0" />
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/darice.cub b/darice.cub
new file mode 100644
index 0000000..dab4567
--- /dev/null
+++ b/darice.cub
Binary files differ
diff --git a/dark.exe b/dark.exe
new file mode 100755
index 0000000..6a24516
--- /dev/null
+++ b/dark.exe
Binary files differ
diff --git a/dark.exe.config b/dark.exe.config
new file mode 100644
index 0000000..0743e49
--- /dev/null
+++ b/dark.exe.config
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <appSettings>
+        <add key="extensions" value="WixDifxAppExtension;WixDirectXExtension;WixFirewallExtension;WixGamingExtension;WixIIsExtension;WixNetFxExtension;WixSqlExtension;WixUIExtension;WixUtilExtension;WixVSExtension" />
+    </appSettings>
+    <startup useLegacyV2RuntimeActivationPolicy="true">
+        <supportedRuntime version="v4.0" />
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/difxapp_ia64.wixlib b/difxapp_ia64.wixlib
new file mode 100644
index 0000000..33e607f
--- /dev/null
+++ b/difxapp_ia64.wixlib
Binary files differ
diff --git a/difxapp_x64.wixlib b/difxapp_x64.wixlib
new file mode 100644
index 0000000..2054bc0
--- /dev/null
+++ b/difxapp_x64.wixlib
Binary files differ
diff --git a/difxapp_x86.wixlib b/difxapp_x86.wixlib
new file mode 100644
index 0000000..6d90219
--- /dev/null
+++ b/difxapp_x86.wixlib
Binary files differ
diff --git a/doc/DTF.chm b/doc/DTF.chm
new file mode 100644
index 0000000..6e5706b
--- /dev/null
+++ b/doc/DTF.chm
Binary files differ
diff --git a/doc/DTFAPI.chm b/doc/DTFAPI.chm
new file mode 100644
index 0000000..e314968
--- /dev/null
+++ b/doc/DTFAPI.chm
Binary files differ
diff --git a/doc/difxapp.xsd b/doc/difxapp.xsd
new file mode 100644
index 0000000..a3d34f3
--- /dev/null
+++ b/doc/difxapp.xsd
@@ -0,0 +1,115 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
+            xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
+             xmlns:xs="http://www.w3.org/2001/XMLSchema"
+            xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+      targetNamespace="http://schemas.microsoft.com/wix/DifxAppExtension"
+                xmlns="http://schemas.microsoft.com/wix/DifxAppExtension">
+    <xs:annotation>
+        <xs:documentation>
+            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 Driver Install Frameworks for Applications Extension.
+        </xs:documentation>
+    </xs:annotation>
+
+    <xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
+
+    <xs:element name="Driver">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+            </xs:appinfo>
+            <xs:documentation>
+                Installs a driver. To use this element, you need to reference the WixDifxAppExtension extension and add the 
+                .wixlib appropriate for the target platform (difxapp_x86.wixlib, difxapp_x64.wixlib, or difxapp_ia64.wixlib) 
+                to your project.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="AddRemovePrograms" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies that the DIFxApp CustomActions should add an entry in the Add/Remove Programs Control
+                        Panel applet.  The default is 'yes'.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DeleteFiles" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        If set to "yes", configures DIFxApp to delete binary files that were copied to the system from the driver
+                        store when a driver package was installed. If this attribute is set to "no" or not present, DIFxApp does not
+                        remove these files from a system. Note that configuring DIFxApp to delete these files is controlled by the
+                        Flags entry value of the component that represents the driver package in the MsiDriverPackages custom table.
+                        Setting DriverDeleteFiles to "yes" sets the corresponding bit in the Flags entry value. Setting DriverLegacy
+                        to "no" clears the corresponding bit in the Flags entry value. If this attribute is not present, DIFxApp uses
+                        a default value of "no".
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ForceInstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies that the DIFxApp CustomActions should force the installation of a new Plug and Play driver
+                        on a device, even if the currently installed driver on the device is a better match than the new driver.
+                        Specifying 'no' is an excellent way to ensure the DIFxApp CustomActions recognize the Component contains
+                        a driver for installation.  The default is null which means the Component does not install a driver via
+                        DIFxApp CustomActions. See <html:a href='http://www.microsoft.com/whdc/driver/install/difxtools.mspx'>http://www.microsoft.com/whdc/driver/install/difxtools.mspx</html:a>
+                        for more information.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Legacy" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        If set to "yes", configures DIFxApp to install unsigned driver packages and driver packages with missing
+                        files. For more information, see "Installing Unsigned Driver Packages in Legacy Mode" earlier in this paper.
+                        If this attribute is set to "no" or not present, DIFxApp will install only signed driver packages. Note
+                        that configuring DIFxApp to install unsigned drivers is controlled by the Flags entry value of the component
+                        that represents the driver package in the MsiDriverPackages custom table. Setting DriverLegacy to "yes" sets
+                        the corresponding bit in the Flags entry value. Setting DriverLegacy to "no" clears the bit in the Flags
+                        entry value that configures DIFxApp to install unsigned driver packages. If this attribute is not present,
+                        DIFxApp uses a default value of "no".
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="PlugAndPlayPrompt" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies that the DIFxApp CustomActions should prompt the user to connect the Plug and Play
+                        device if it is not connected.  The default is 'yes'.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Sequence" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies an optional installation sequence number. DIFxApp CustomActions install the driver packages in
+                        an installation package in the order of increasing sequence numbers. The same sequence number can be used
+                        for more than one driver; however, the order in which packages with the same sequence number are actually
+                        installed cannot be determined.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:simpleType name="YesNoType">
+        <xs:annotation>
+            <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base='xs:NMTOKEN'>
+            <xs:enumeration value="no"/>
+            <xs:enumeration value="yes"/>
+        </xs:restriction>
+    </xs:simpleType>
+</xs:schema>
diff --git a/doc/firewall.xsd b/doc/firewall.xsd
new file mode 100644
index 0000000..dccca1d
--- /dev/null
+++ b/doc/firewall.xsd
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+          xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+         xmlns:html="http://www.w3.org/1999/xhtml"
+    targetNamespace="http://schemas.microsoft.com/wix/FirewallExtension"
+              xmlns="http://schemas.microsoft.com/wix/FirewallExtension">
+    <xs:annotation>
+        <xs:documentation>
+            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 Firewall Extension.
+        </xs:documentation>
+    </xs:annotation>
+
+    <xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
+
+    <xs:element name="FirewallException">
+        <xs:annotation>
+            <xs:documentation>
+                Registers an exception for a program or a specific port and protocol in the Windows Firewall
+                on Windows XP SP2, Windows Server 2003 SP1, and later. For more information about the Windows
+                Firewall, see <html:a href="http://msdn2.microsoft.com/en-us/library/aa364679.aspx">
+                About Windows Firewall API</html:a>.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+            </xs:appinfo>
+        </xs:annotation>
+
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>
+                        Explicitly-listed remote addresses that this exception allows through the 
+                        firewall.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:element ref="RemoteAddress" />
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        Unique ID of this firewall exception.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        Name of this firewall exception, visible to the user in the firewall 
+                        control panel.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="Scope">
+                <xs:annotation>
+                    <xs:documentation>
+                        The scope of this firewall exception, which indicates whether incoming
+                        connections can come from any computer including those on the Internet
+                        or only those on the local network subnet. To more precisely specify
+                        allowed remote address, specify a custom scope using RemoteAddress 
+                        child elements.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="any" />
+                        <xs:enumeration value="localSubnet" />
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+
+            <xs:attribute name="Port" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Port to allow through the firewall for this exception. If you use Port, you 
+                        cannot also use File or Program.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="Protocol">
+                <xs:annotation>
+                    <xs:documentation>
+                        IP protocol used for this firewall exception. If not specified, "tcp" is 
+                        assumed. If you use Protocol, you must also specify Port and you cannot 
+                        also use File or Program.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="tcp" />
+                        <xs:enumeration value="udp" />
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+
+            <xs:attribute name="File" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Identifier of a file to be granted access to all incoming ports and 
+                        protocols. If you use File, you cannot also use Program, Port, or Protocol.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="Program" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Path to a target program to be granted access to all incoming ports and 
+                        protocols. Note that this is a formatted field, so you can use [#fileId] 
+                        syntax to refer to a file being installed. If you use Program, you cannot 
+                        also use File, Port, or Protocol.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="IgnoreFailure" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        If "yes," failures to register this firewall exception will be silently 
+                        ignored. If "no" (the default), failures will cause rollback.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="Profile">
+              <xs:annotation>
+                <xs:documentation>
+                  Profile type for this firewall exception. Default is "all".
+                </xs:documentation>
+              </xs:annotation>
+              <xs:simpleType>
+                <xs:restriction base="xs:NMTOKEN">
+                  <xs:enumeration value="domain" />
+                  <xs:enumeration value="private" />
+                  <xs:enumeration value="public" />
+                  <xs:enumeration value="all" />
+                </xs:restriction>
+              </xs:simpleType>
+            </xs:attribute>
+          
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="RemoteAddress">
+        <xs:annotation>
+            <xs:documentation>
+                A remote address to which the port or program can listen. Address formats vary 
+                based on the version of Windows and Windows Firewall the program is being installed
+                on. For Windows XP SP2 and Windows Server 2003 SP1, see
+                <html:a href="http://msdn2.microsoft.com/en-us/library/aa365270.aspx">
+                    RemoteAddresses Property</html:a>.
+                For Windows Vista and Windows Server 2008, see
+                <html:a href="http://msdn2.microsoft.com/en-us/library/aa365366.aspx">
+                    RemoteAddresses Property</html:a>.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation>
+                        <xs:documentation>
+                            A remote address.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:simpleType name="YesNoType">
+        <xs:annotation>
+            <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base='xs:NMTOKEN'>
+            <xs:enumeration value="no"/>
+            <xs:enumeration value="yes"/>
+        </xs:restriction>
+    </xs:simpleType>
+</xs:schema>
diff --git a/doc/gaming.xsd b/doc/gaming.xsd
new file mode 100644
index 0000000..8ceae8b
--- /dev/null
+++ b/doc/gaming.xsd
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+          xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+         xmlns:html="http://www.w3.org/1999/xhtml"
+    targetNamespace="http://schemas.microsoft.com/wix/GamingExtension"
+              xmlns="http://schemas.microsoft.com/wix/GamingExtension">
+    <xs:annotation>
+        <xs:documentation>
+            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 Gaming Extension.
+        </xs:documentation>
+    </xs:annotation>
+
+    <xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
+
+    <xs:attribute name="IsRichSavedGame">
+        <xs:annotation>
+            <xs:documentation>
+                Registers this extension for the 
+                <html:a href="http://msdn.microsoft.com/library/bb173448.aspx" target="_blank">rich saved games</html:a> 
+                property handler on Windows Vista and later.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Extension" />
+            </xs:appinfo>
+        </xs:annotation>
+    </xs:attribute>
+
+    <xs:element name="Game">
+        <xs:annotation>
+            <xs:documentation>
+                Registers a game in Game Explorer on Windows Vista and later. The executable must have an
+                embedded Game Definition File. For more information about Game Explorer and GDFs, see
+                <html:a href="http://msdn.microsoft.com/library/bb173432.aspx" target="_blank">The Windows Vista Game Explorer</html:a>.
+                This registration is accomplished via custom action.
+
+                On Windows XP, this element instead records the same information in the registry so that
+                later upgrades to Windows Vista register the game in Game Explorer.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>Each game can support multiple play and support tasks that are shown in the Game Explorer context menu.  PlayTask and SupportTask are not needed when using when authoring the tasks in the GDF using ExtendedProperties\GameTasks available in Windows 7.  At least one play task should be created using either PlayTask or the ExtendedProperties\GameTasks\Play in the GDF.</xs:documentation>
+                </xs:annotation>
+                <xs:element ref="PlayTask"/>
+                <xs:element ref="SupportTask"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="Guid" use="required">
+                <xs:annotation>
+                    <xs:documentation>The game's instance ID.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="GdfResourceFile" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Identifier of the file that contains the game's GDF resource, if it doesn't exist in the parent file.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ExecutableFile" type="xs:string">
+              <xs:annotation>
+                <xs:documentation>Identifier of the file that is the game's executable, if it isn't the parent file.</xs:documentation>
+              </xs:annotation>
+            </xs:attribute>
+          </xs:complexType>
+    </xs:element>
+
+    <xs:element name="PlayTask">
+        <xs:annotation>
+            <xs:documentation>
+                Creates a shortcut to the parent File and registers it as a "play task" in Game Explorer. For more information, see
+                <html:a href="http://msdn.microsoft.com/library/bb173450.aspx" target="_blank">
+                    Game Explorer Tasks
+                </html:a>.  PlayTask should not be used when authoring the tasks in the GDF using ExtendedProperties\GameTasks available in Windows 7.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>User-visible task name Game Explorer shows on its context menu. Note that the first task is named "Play" regardless of the name you provide.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Arguments" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Command-line arguments to be passed to the game executable for this task.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="SupportTask">
+        <xs:annotation>
+            <xs:documentation>
+                Creates an Internet shortcut and registers it as a "support task" in Game Explorer. For more information, see
+                <html:a href="http://msdn.microsoft.com/library/bb173450.aspx" target="_blank">
+                    Game Explorer Tasks
+                </html:a>.  SupportTask should not be used when authoring the tasks in the GDF using ExtendedProperties\GameTasks available in Windows 7.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>User-visible task name Game Explorer shows on its context menu. Note that the first task is named "Play" regardless of the name you provide.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Address" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>URI for this task.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:simpleType name="Guid">
+        <xs:annotation>
+            <xs:documentation>Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". Also allows "PUT-GUID-HERE" for use in examples.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-HERE|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)|!\(wix\.[_A-Za-z][0-9A-Za-z_.]*\)"/>
+        </xs:restriction>
+    </xs:simpleType>
+</xs:schema>
diff --git a/doc/iis.xsd b/doc/iis.xsd
new file mode 100644
index 0000000..ffb4750
--- /dev/null
+++ b/doc/iis.xsd
@@ -0,0 +1,1114 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
+            xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
+             xmlns:xs="http://www.w3.org/2001/XMLSchema"
+            xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+      targetNamespace="http://schemas.microsoft.com/wix/IIsExtension"
+                xmlns="http://schemas.microsoft.com/wix/IIsExtension">
+    <xs:annotation>
+        <xs:documentation>
+            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 Internet Information Services Extension.
+        </xs:documentation>
+    </xs:annotation>
+
+    <xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
+
+    <xs:element name="WebDirProperties">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+            </xs:appinfo>
+            <xs:documentation>
+                WebDirProperties used by one or more WebSites. Lists properties common to IIS web sites and vroots. Corresponding properties can be viewed through the IIS Manager snap-in. One property entry can be reused by multiple sites or vroots using the Id field as a reference, using WebVirtualDir.DirProperties, WebSite.DirProperties, or WebDir.DirProperties.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required"/>
+            <xs:attribute name="Read" type="YesNoType"/>
+            <xs:attribute name="Write" type="YesNoType"/>
+            <xs:attribute name="Script" type="YesNoType"/>
+            <xs:attribute name="Execute" type="YesNoType"/>
+            <xs:attribute name="AnonymousAccess" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Sets the Enable Anonymous Access checkbox, which maps anonymous users to a Windows user account. When setting this to 'yes' you should also provide the user account using the AnonymousUser attribute, and determine what setting to use for the IIsControlledPassword attribute. Defaults to 'no.'</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AnonymousUser" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Reference to the Id attribute on the User element to be used as the anonymous user for the directory. See the User element for more information.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IIsControlledPassword" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Sets whether IIS should control the password used for the Windows account specified in the AnonymousUser attribute. Defaults to 'no.'</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="WindowsAuthentication" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Sets the Windows Authentication option, which enables integrated Windows authentication to be used on the site. Defaults to 'no.'</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DigestAuthentication" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Sets the Digest Authentication option, which allows using digest authentication with domain user accounts. Defaults to 'no.'</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="BasicAuthentication" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Sets the Basic Authentication option, which allows clients to provide credentials in plaintext over the wire. Defaults to 'no.'</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="PassportAuthentication" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Sets the Passport Authentication option, which allows clients to provide credentials via a .Net Passport account. Defaults to 'no.'</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LogVisits" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Sets whether visits to this site should be logged. Defaults to 'no.'</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Index" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Sets the Index Resource option, which specifies whether this web directory should be indexed. Defaults to 'no.'</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DefaultDocuments" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The list of default documents to set for this web directory, in comma-delimited format.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AspDetailedError" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Sets the option for whether to send detailed ASP errors back to the client on script error. Default is 'no.'</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="HttpExpires" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Value to set the HttpExpires attribute to for a Web Dir in the metabase.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CacheControlMaxAge" type="xs:nonNegativeInteger">
+                <xs:annotation>
+                    <xs:documentation>Integer value specifying the cache control maximum age value.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CacheControlCustom" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Custom HTTP 1.1 cache control directives.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ClearCustomError" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies whether IIs will return custom errors for this directory.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AccessSSL" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>A value of true indicates that file access requires SSL file permission processing, with or without a client certificate. This corresponds to AccessSSL flag for AccessSSLFlags IIS metabase property.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AccessSSL128" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>A value of true indicates that file access requires SSL file permission processing with a minimum key size of 128 bits, with or without a client certificate. This corresponds to AccessSSL128 flag for AccessSSLFlags IIS metabase property.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AccessSSLMapCert" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>This corresponds to AccessSSLMapCert flag for AccessSSLFlags IIS metabase property.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AccessSSLNegotiateCert" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>This corresponds to AccessSSLNegotiateCert flag for AccessSSLFlags IIS metabase property.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AccessSSLRequireCert" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>This corresponds to AccessSSLRequireCert flag for AccessSSLFlags IIS metabase property.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AuthenticationProviders" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Comma delimited list, in order of precedence, of Windows authentication providers that IIS will attempt to use: NTLM, Kerberos, Negotiate, and others.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebError">
+        <xs:annotation>
+            <xs:documentation>Custom Web Errors used by WebSites and Virtual Directories.</xs:documentation>
+            <xs:appinfo>
+                <xse:remarks>
+                    You can only use error code and sub code combinations which are supported by IIS.  Attempting to set a custom error for
+                    an error code and sub code combination that is not supported by IIS (in the default list of error codes) will result in
+                    an installation failure.
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="ErrorCode" use="required" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>HTTP 1.1 error code.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SubCode" use="required" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Error sub code.  Set to 0 to get the wild card "*".</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="File" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>File to be sent to the client for this error code and sub code.  This can be formatted.  For example: [#FileId].</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="URL" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>URL to be sent to the client for this error code and sub code.  This can be formatted.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="HttpHeader">
+        <xs:annotation>
+            <xs:documentation>Custom HTTP Header definition for IIS resources such as WebSite and WebVirtualDir.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Primary key for custom HTTP Header entry.  This will default to the Name attribute.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Name of the custom HTTP Header.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Value for the custom HTTP Header. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see <a href="http://msdn2.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</a> for details.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="MimeMap">
+        <xs:annotation>
+            <xs:documentation>MimeMap definition for IIS resources.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Id for the MimeMap.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Type" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Mime-type covered by the MimeMap.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Extension" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Extension covered by the MimeMap.  Must begin with a dot.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebFilter">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+            </xs:appinfo>
+            <xs:documentation>IIs Filter for a Component</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The unique Id for the web filter.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The name of the filter to be used in IIS.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Path" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The path of the filter executable file.
+                        This should usually be a value like '[!FileId]', where 'FileId' is the file identifier
+                        of the filter executable file.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="WebSite" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the parent website for this filter (if there is one).
+                        If this is a global filter, then this attribute should not be specified.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Description of the filter.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Flags" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Sets the MD_FILTER_FLAGS metabase key for the filter. This must be an integer. See MSDN 'FilterFlags' documentation for more details.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LoadOrder" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The legal values are "first", "last", or a number.
+                        If a number is specified, it must be greater than 0.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebApplicationExtension">
+        <xs:annotation>
+            <xs:documentation>Extension for WebApplication</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Executable" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>usually a Property that resolves to short file name path</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Extension" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Extension being registered. Do not prefix with a '.' (e.g. you should use "html", not ".html").  To register for all extensions, use Extension="*".  To register a wildcard application map (which handles all requests, even those for directories or files with no extension) omit the Extension attribute completely.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Verbs" type="xs:string">
+            </xs:attribute>
+            <xs:attribute name="Script" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="CheckPath" type="YesNoType">
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebAppPool">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+            </xs:appinfo>
+            <xs:documentation>IIS6 Application Pool</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="RecycleTime" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:sequence>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Id of the AppPool.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Name of the AppPool to be shown in IIs.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="User" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>User account to run the AppPool as.  To use this, you must set the Identity attribute to 'other'.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RecycleMinutes" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>How often, in minutes, you want the AppPool to be recycled.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RecycleRequests" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>How often, in requests, you want the AppPool to be recycled.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="VirtualMemory" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Specifies the amount of virtual memory (in KB) that a worker process can use before the worker process recycles. The maximum value supported for this attribute is 4,294,967 KB.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="PrivateMemory" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Specifies the amount of private memory (in KB) that a worker process can use before the worker process recycles. The maximum value supported for this attribute is 4,294,967 KB.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IdleTimeout" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Shutdown worker process after being idle for (time in minutes).</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="QueueLimit" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Limit the kernel request queue (number of requests).</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MaxCpuUsage" type="PercentType">
+                <xs:annotation>
+                    <xs:documentation>Maximum CPU usage (percent).</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RefreshCpu" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Refresh CPU usage numbers (in minutes).</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CpuAction">
+                <xs:annotation>
+                    <xs:documentation>Action taken when CPU exceeds maximum CPU use (as defined with MaxCpuUsage and RefreshCpu).</xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="none"/>
+                        <xs:enumeration value="shutdown"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="MaxWorkerProcesses" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Maximum number of worker processes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Identity">
+                <xs:annotation>
+                    <xs:documentation>Identity you want the AppPool to run under.  Use the 'other' value in conjunction with the User attribute to specify non-standard user.</xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="networkService"/>
+                        <xs:enumeration value="localService"/>
+                        <xs:enumeration value="localSystem"/>
+                        <xs:enumeration value="other"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+          <xs:attribute name="ManagedPipelineMode">
+            <xs:annotation>
+              <xs:documentation>Specifies the request-processing mode that is used to process requests for managed content.  Only available on IIS7, ignored on IIS6.</xs:documentation>
+            </xs:annotation>
+            <xs:simpleType>
+              <xs:restriction base="xs:string">
+                <xs:enumeration value="classic"/>
+                <xs:enumeration value="integrated"/>
+              </xs:restriction>
+            </xs:simpleType>
+          </xs:attribute>
+          <xs:attribute name="ManagedRuntimeVersion">
+            <xs:annotation>
+              <xs:documentation>Specifies the .NET Framework version to be used by the application pool.  Only available on IIS7, ignored on IIS6.</xs:documentation>
+            </xs:annotation>
+            <xs:simpleType>
+              <xs:restriction base="xs:string">
+                <xs:enumeration value="v1.1"/>
+                <xs:enumeration value="v2.0"/>
+                <xs:enumeration value="v4.0"/>
+              </xs:restriction>
+            </xs:simpleType>
+          </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="RecycleTime">
+        <xs:annotation>
+            <xs:documentation>IIS6 Application Pool Recycle Times on 24 hour clock.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Value" use="required">
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:pattern value="\d{1,2}:\d{2}"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Certificate">
+        <xs:annotation>
+            <xs:documentation>
+                Used to install and uninstall certificates.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+                <xse:seeAlso ref="CertificateRef"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Unique identifier for this certificate in the installation package.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Name of the certificate that will be installed or uninstalled in the specified store.
+                        This attribute may be set via a formatted Property (e.g. [MyProperty]).
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="StoreName" use="required">
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="ca">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Contains the certificates of certificate authorities that the user trusts to issue certificates to others. Certificates in these stores are normally supplied with the operating system or by the user's network administrator.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="my">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Use the "personal" value instead.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="personal">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Contains personal certificates. These certificates will usually have an associated private key. This store is often
+                                    referred to as the "MY" certificate store.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="request"/>
+                        <xs:enumeration value="root">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Contains the certificates of certificate authorities that the user trusts to issue certificates to others. Certificates in these stores are normally supplied with the operating system or by the user's network administrator. Certificates in this store are typically self-signed.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="otherPeople">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Contains the certificates of those that the user normally sends enveloped messages to or receives signed messages from.
+                                    See <a href="http://msdn2.microsoft.com/library/aa388160.aspx" target="_blank">MSDN documentation</a> for more information.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="trustedPeople">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Contains the certificates of those directly trusted people and resources.
+                                    See <a href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename.aspxx" target="_blank">MSDN documentation</a> for more information.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="trustedPublisher">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Contains the certificates of those publishers who are trusted.
+                                    See <a href="http://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.storename.aspxx" target="_blank">MSDN documentation</a> for more information.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="StoreLocation" use="required">
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="currentUser"/>
+                        <xs:enumeration value="localMachine"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Overwrite" type="YesNoType"/>
+            <xs:attribute name="Request" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute controls whether the CertificatePath attribute is a path to a certificate file (Request=&apos;no&apos;) or the
+                        certificate authority to request the certificate from  (Request=&apos;yes&apos;).
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="BinaryKey" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Reference to a Binary element that will store the certificate as a stream inside the package.  This attribute cannot be specified with
+                        the CertificatePath attribute.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:seeAlso ref="Binary"/>
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CertificatePath" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        If the Request attribute is "no" then this attribute is the path to the certificate file outside of the package.
+                        If the Request attribute is "yes" then this atribute is the certificate authority to request the certificate from.
+                        This attribute may be set via a formatted Property (e.g. [MyProperty]).
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="PFXPassword" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        If the Binary stream or path to the file outside of the package is a password protected PFX file, the password for that
+                        PFX must be specified here.  This attribute may be set via a formatted Property (e.g. [MyProperty]).
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="CertificateRef">
+        <xs:annotation>
+            <xs:documentation>
+                Associates a certificate with the parent WebSite.  The Certificate element should be
+                in the same Component as the parent WebSite.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Certificate"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The identifier of the referenced Certificate.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebProperty">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+                <xse:remarks>
+                    Here is an explanation of the acceptable values for each property and their meaning:
+                    <html:ul>
+                        <html:li>
+                            For the Ids IIs5IsolationMode and LogInUTF8, no value should be specified since
+                            the presence of this property indicates that the setting should be set.
+                        </html:li>
+                        <html:li>
+                            For the MaxGlobalBandwidth Id, the value should be specified in kilobytes.  The
+                            value should be a base 10 number.
+                        </html:li>
+                        <html:li>
+                            ETagChangeNumber sets the machine-specific portion of ETag as a number. This value,
+                            when synchronized across servers in a web farm, allows the web farm to return an
+                            identical ETag for a given resource regardless of the server that handled the
+                            request.  The value should be a base 10 number.
+                        </html:li>
+                    </html:ul>
+                </xse:remarks>
+            </xs:appinfo>
+            <xs:documentation>IIS Properties</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required">
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="ETagChangeNumber"/>
+                        <xs:enumeration value="IIs5IsolationMode"/>
+                        <xs:enumeration value="MaxGlobalBandwidth"/>
+                        <xs:enumeration value="LogInUTF8"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The value to be used for the WebProperty specified in the Id attribute.  See
+                        the remarks section for information on acceptable values for each Id.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebApplication">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+            </xs:appinfo>
+            <xs:documentation>Defines properties for a web application. These properties can be used for more than one application defined in a web site or vroot, by defining this element in a common location and referring to it by setting the WebApplication attribute of the WebSite and WebVirtualDir elements.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="WebApplicationExtension" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:sequence>
+            <xs:attribute name="Id" use="required" type="xs:string"/>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Sets the name of this application.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Isolation">
+                <xs:annotation>
+                    <xs:documentation>
+                        Sets the application isolation level for this application for pre-IIS 6 applications.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="low">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Means the application executes within the IIS process.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="medium">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Executes pooled in a separate process.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="high">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Means execution alone in a separate process.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="AllowSessions" type="YesNoDefaultType">
+                <xs:annotation>
+                    <xs:documentation>Sets the Enable Session State option. When enabled, you can set the session timeout using the SessionTimeout attribute.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SessionTimeout" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Sets the timeout value for sessions in minutes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Buffer" type="YesNoDefaultType">
+                <xs:annotation>
+                    <xs:documentation>Sets the option that enables response buffering in the application, which allows ASP script to set response headers anywhere in the script.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ParentPaths" type="YesNoDefaultType">
+                <xs:annotation>
+                    <xs:documentation>Sets the parent paths option, which allows a client to use relative paths to reach parent directories from this application.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DefaultScript">
+                <xs:annotation>
+                    <xs:documentation>Sets the default script language for the site.</xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="VBScript"/>
+                        <xs:enumeration value="JScript"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="ScriptTimeout" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Sets the timeout value in seconds for executing ASP scripts.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ServerDebugging" type="YesNoDefaultType">
+                <xs:annotation>
+                    <xs:documentation>Enable ASP server-side script debugging.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ClientDebugging" type="YesNoDefaultType">
+                <xs:annotation>
+                    <xs:documentation>Enable ASP client-side script debugging.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="WebAppPool" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>References the Id attribute of a WebAppPool element to use as the application pool for this application in IIS 6 applications.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebAddress">
+        <xs:annotation>
+            <xs:documentation>WebAddress for WebSite</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string"/>
+            <xs:attribute name="IP" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                      The IP address to locate an existing WebSite or create a new WebSite. When the WebAddress is part of a WebSite element
+                      used to locate an existing web site the following rules are used:
+                      <html:ul>
+                      <html:li>When this attribute is not specified only the “All Unassigned” IP address will be located.</html:li>
+                      <html:li>When this attribute is explicitly specified only the specified IP address will be located.</html:li>
+                      <html:li>When this attribute has the value “*” then any IP address including the “All Unassigned” IP address will be located</html:li>
+                      </html:ul>
+                      When the WebAddress is part of a WebSite element used to create a new web site the following rules are used:
+                      <html:ul>
+                      <html:li>When this attribute is not specified or the value is "*" the "All Unassigned" IP address will be used.</html:li>
+                      <html:li>When this attribute is explicitly specified the IP address will use that value.</html:li>
+                      </html:ul>
+                      The IP attribute can contain a formatted string that is processed at install time to insert the values of properties using
+                      [PropertyName] syntax. 
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Port" use="required" type="xs:string"/>
+            <xs:attribute name="Header" type="xs:string"/>
+            <xs:attribute name="Secure" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Determines if this address represents a secure binding.  The default is 'no'.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebVirtualDir">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+            </xs:appinfo>
+            <xs:documentation>Defines an IIS virtual directory. When this element is a child of WebSite element, the virtual directory is defined within that web site. Otherwise this virtual directory must reference a WebSite element via the WebSite attribute</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="WebApplication" minOccurs="0" maxOccurs="1" />
+                <xs:element ref="WebDirProperties" minOccurs="0" maxOccurs="1" />
+                <xs:element ref="WebError" minOccurs="0" maxOccurs="unbounded"/>
+                <xs:element ref="WebVirtualDir" minOccurs="0" maxOccurs="unbounded"/>
+                <xs:element ref="HttpHeader" minOccurs="0" maxOccurs="unbounded"/>
+                <xs:element ref="MimeMap" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:choice>
+            <xs:attribute name="Id" use="required" type="xs:string"/>
+            <xs:attribute name="WebSite" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>References the Id attribute for a WebSite in which this virtual directory belongs. Required when this element is not a child of WebSite element.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Alias" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Sets the application name, which is the URL relative path used to access this virtual directory</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Directory" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>References the Id attribute for a Directory element that points to the content for this virtual directory.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DirProperties" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        References the Id attribute for a WebDirProperties element that specifies the security and access properties for this virtual directory.
+                        This attribute may not be specified if a WebDirProperties element is directly nested in this element.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="WebApplication" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>References the Id attribute for a WebApplication element that specifies web application settings for this virtual directory.  If a WebApplication child is not specified, the virtual directory does not host web applications.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebDir">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+            </xs:appinfo>
+            <xs:documentation>Defines a subdirectory within an IIS web site. When this element is a child of WebSite, the web directory is defined within that web site. Otherwise the web directory must reference a WebSite element via the WebSite attribute.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice>
+                <xs:element ref="WebDirProperties" minOccurs="0"/>
+            </xs:choice>
+            <xs:attribute name="Id" use="required" type="xs:string"/>
+            <xs:attribute name="WebSite" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>References the Id attribute for a WebSite element in which this directory belongs. Required when this element is not a child of a WebSite element.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Path" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Specifies the name of this web directory.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DirProperties" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        References the Id attribute for a WebDirProperties element that specifies the security and access properties for this web directory.
+                        This attribute may not be specified if a WebDirProperties element is directly nested in this element.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebSite">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+                <xse:remarks>
+                    <html:dl>
+                        <html:dd>Nesting WebSite under a Component element will result in a WebSite being installed to the machine as the package is installed.</html:dd>
+                        <html:dd>
+                            Nesting WebSite under Product, Fragment, or Module
+                            results in a web site "locator" record being created in
+                            the IIsWebSite table.  This means that the web site
+                            itself is neither installed nor uninstalled by the MSI
+                            package.  It does make the database available for referencing
+                            from a WebApplication, WebVirtualDir or WebDir record.  This allows an MSI to install
+                            WebApplications, WebVirtualDirs or WebDirs to already existing web sites on the machine.
+                            The install will fail if the web site does not exist in these cases.
+                        </html:dd>
+                    </html:dl>
+                </xse:remarks>
+            </xs:appinfo>
+            <xs:documentation>IIs Web Site</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="WebAddress" minOccurs="1" maxOccurs="unbounded"/>
+                <xs:element ref="WebApplication" minOccurs="0" maxOccurs="1" />
+                <xs:element ref="WebDirProperties" minOccurs="0" maxOccurs="1" />
+                <xs:element ref="MimeMap" minOccurs="0" maxOccurs="unbounded"/>
+                <xs:element ref="CertificateRef"/>
+                <xs:element ref="HttpHeader"/>
+                <xs:element ref="WebDir"/>
+                <xs:element ref="WebError"/>
+                <xs:element ref="WebFilter"/>
+                <xs:element ref="WebVirtualDir"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Identifier for the WebSite.  Used within the MSI package only.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AutoStart" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies whether to automatically start the web site.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ConfigureIfExists" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies whether to configure the web site if it already exists.  Note: This will not affect uninstall behavior.  If the web site exists on uninstall, it will be removed.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ConnectionTimeout" type="xs:nonNegativeInteger">
+                <xs:annotation>
+                    <xs:documentation>Sets the timeout value for connections in seconds.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>This is the name of the web site that will show up in the IIS management console.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Directory" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Root directory of the web site.  Resolved to a directory in the Directory table at install time by the server custom actions.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DirProperties" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        References the Id attribute for a WebDirProperties element that specifies the security and access properties for this website root directory.
+                        This attribute may not be specified if a WebDirProperties element is directly nested in this element.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Sequence" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Sequence that the web site is to be created in.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SiteId" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                      Optional attribute to directly specify the site id of the WebSite.  Use this to ensure all web
+                      sites in a web garden get the same site id.  If a number is provided, the site id must be unique
+                      on all target machines.  If "*" is used, the Description attribute will be hashed to create a unique
+                      value for the site id. This value must be a positive number or a "*" or a formatted value that resolves
+                      to "-1" (for the same behavior as "*") or a positive number or blank.  If this attribute is absent then
+                      the web site will be located using the WebAddress element associated with the web site.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="StartOnInstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies whether to start the web site on install.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="WebApplication" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Reference to a WebApplication that is to be installed as part of this web site.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="WebLog" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Reference to WebLog definition.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebLog">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+            </xs:appinfo>
+            <xs:documentation>WebLog definition.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Identifier for the WebLog.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Type" use="required">
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="IIS">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Microsoft IIS Log File Format
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="NCSA">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    NCSA Common Log File Format
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="none">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Disables logging.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="ODBC">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    ODBC Logging
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="W3C">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    W3C Extended Log File Format
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WebServiceExtension">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+            </xs:appinfo>
+            <xs:documentation>The WebServiceExtension property is used by the Web server to determine whether a Web service extension is permitted to run.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string"/>
+            <xs:attribute name="File" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Usually a Property that resolves to short file name path</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Description of the extension.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Group" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>String used to identify groups of extensions.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Allow" use="required" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Indicates if the extension is allowed or denied.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="UIDeletable" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Indicates if the UI is allowed to delete the extension from the list of not.  Default: Not deletable.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:simpleType name="PercentType">
+        <xs:annotation>
+            <xs:documentation>Values of this type are any integers between 0 and 100, inclusive.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:nonNegativeInteger">
+            <xs:maxInclusive value="100"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="YesNoType">
+        <xs:annotation>
+            <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base='xs:NMTOKEN'>
+            <xs:enumeration value="no"/>
+            <xs:enumeration value="yes"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="YesNoDefaultType">
+        <xs:annotation>
+            <xs:documentation>Values of this type will either be "default", "yes", or "no".</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base='xs:NMTOKEN'>
+            <xs:enumeration value="default"/>
+            <xs:enumeration value="no"/>
+            <xs:enumeration value="yes"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+</xs:schema>
diff --git a/doc/lux.xsd b/doc/lux.xsd
new file mode 100644
index 0000000..2bf770c
--- /dev/null
+++ b/doc/lux.xsd
@@ -0,0 +1,228 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+          xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+         xmlns:html="http://www.w3.org/1999/xhtml"
+    targetNamespace="http://schemas.microsoft.com/wix/2009/Lux"
+              xmlns="http://schemas.microsoft.com/wix/2009/Lux">
+  <xs:annotation>
+    <xs:documentation>
+      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.
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
+
+    <xs:element name="Mutation">
+        <xs:annotation>
+            <xs:documentation>
+              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.            
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>
+                        Child UnitTest elements are validated when the parent mutation is being executed.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:element ref="UnitTest"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Value of the WIXLUX_RUNNING_MUTATION property set by the mutation.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="UnitTest">
+        <xs:annotation>
+            <xs:documentation>
+                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.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2009/Lux" ref="Mutation" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation>
+                    <xs:documentation>
+                        Child UnitTest elements are used to test multi-value properties. Note that Property
+                        and ValueDelimiter or NameValueDelimiter must be specified in the parent element.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:element ref="Condition"/>
+                <xs:element ref="Expression"/>
+                <xs:element ref="UnitTest"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Identifier of the unit test. If you omit this attribute, a stable identifier is generated for you.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="CustomAction" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Identifier of the custom action to be tested.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="Property" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Name of the property set by the custom action.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="Operator" default="equal">
+                <xs:annotation>
+                    <xs:documentation>
+                        The operator to apply to the property and value. Default is "equal."
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="equal">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    (Default) Compares Property to Value and succeeds if they are equal.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="notEqual">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Compares Property to Value and succeeds if they are NOT equal.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="caseInsensitiveEqual">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Compares Property to Value and succeeds if they are equal (ignoring case).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="caseInsensitiveNotEqual">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Compares Property to Value and succeeds if they are NOT equal (ignoring case).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+
+            <xs:attribute name="Value" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The value to compare to the property.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="ValueSeparator" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        One character that is used to separate values in a multi-value property.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="NameValueSeparator" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        One character that is used to separate values in a name/value-pair multi-value property.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+
+            <xs:attribute name="Index" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        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.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Condition">
+    <xs:annotation>
+      <xs:documentation>
+        Conditions for a unit test.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:simpleContent>
+        <xs:extension base="xs:string" />
+      </xs:simpleContent>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="Expression">
+    <xs:annotation>
+      <xs:documentation>
+        An expression that must evaluate to true to succeed. Cannot be specified if Property is specified.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:simpleContent>
+        <xs:extension base="xs:string" />
+      </xs:simpleContent>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="UnitTestRef">
+    <xs:annotation>
+      <xs:documentation>
+        Identifies a unit test to be linked into a project.
+      </xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="Id" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            Identifier of the unit test to be included.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+
+</xs:schema>
\ No newline at end of file
diff --git a/doc/msmq.xsd b/doc/msmq.xsd
new file mode 100644
index 0000000..3299399
--- /dev/null
+++ b/doc/msmq.xsd
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
+            xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
+             xmlns:xs="http://www.w3.org/2001/XMLSchema"
+            xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+      targetNamespace="http://schemas.microsoft.com/wix/MsmqExtension"
+                xmlns="http://schemas.microsoft.com/wix/MsmqExtension">
+  <xs:annotation>
+    <xs:documentation>
+      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 MSMQ Extension.
+    </xs:documentation>
+  </xs:annotation>
+
+  <xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
+
+  <xs:element name="MessageQueue">
+    <xs:annotation><xs:documentation>
+    </xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="MessageQueuePermission" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+      <xs:attribute name="Id" use="required" type="xs:string">
+        <xs:annotation><xs:documentation>
+        </xs:documentation></xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Authenticate" use="optional" type="YesNoType">
+        <xs:annotation><xs:documentation>
+          Default: No.
+        </xs:documentation></xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="BasePriority" use="optional" type="xs:integer" />
+      <xs:attribute name="Journal" use="optional" type="YesNoType">
+        <xs:annotation><xs:documentation>
+          Default: No.
+        </xs:documentation></xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="JournalQuota" use="optional" type="xs:integer" />
+      <xs:attribute name="Label" use="required" type="xs:string" />
+      <xs:attribute name="MulticastAddress" use="optional" type="xs:string" />
+      <xs:attribute name="PathName" use="required" type="xs:string" />
+      <xs:attribute name="PrivLevel" use="optional">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="none" />
+            <xs:enumeration value="optional" />
+            <xs:enumeration value="body" />
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="Quota" use="optional" type="xs:integer" />
+      <xs:attribute name="Transactional" use="optional" type="YesNoType">
+        <xs:annotation><xs:documentation>
+          Default: No.
+        </xs:documentation></xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ServiceTypeGuid" use="optional" type="xs:string" />
+    </xs:complexType>
+  </xs:element>
+
+  <xs:element name="MessageQueuePermission">
+    <xs:annotation><xs:documentation>
+    </xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="Id" use="required" type="xs:string">
+        <xs:annotation><xs:documentation>
+        </xs:documentation></xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="MessageQueue" use="optional" type="xs:string">
+        <xs:annotation><xs:documentation>
+        </xs:documentation></xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="User" use="optional" type="xs:string">
+        <xs:annotation><xs:documentation>
+        </xs:documentation></xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Group" use="optional" type="xs:string">
+        <xs:annotation><xs:documentation>
+        </xs:documentation></xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="DeleteMessage" use="optional" type="YesNoType" />
+      <xs:attribute name="PeekMessage" use="optional" type="YesNoType" />
+      <xs:attribute name="WriteMessage" use="optional" type="YesNoType" />
+      <xs:attribute name="DeleteJournalMessage" use="optional" type="YesNoType" />
+      <xs:attribute name="SetQueueProperties" use="optional" type="YesNoType" />
+      <xs:attribute name="GetQueueProperties" use="optional" type="YesNoType" />
+      <xs:attribute name="DeleteQueue" use="optional" type="YesNoType" />
+      <xs:attribute name="GetQueuePermissions" use="optional" type="YesNoType" />
+      <xs:attribute name="ChangeQueuePermissions" use="optional" type="YesNoType" />
+      <xs:attribute name="TakeQueueOwnership" use="optional" type="YesNoType" />
+      <xs:attribute name="ReceiveMessage" use="optional" type="YesNoType" />
+      <xs:attribute name="ReceiveJournalMessage" use="optional" type="YesNoType" />
+      <xs:attribute name="QueueGenericRead" use="optional" type="YesNoType" />
+      <xs:attribute name="QueueGenericWrite" use="optional" type="YesNoType" />
+      <xs:attribute name="QueueGenericExecute" use="optional" type="YesNoType" />
+      <xs:attribute name="QueueGenericAll" use="optional" type="YesNoType" />
+    </xs:complexType>
+  </xs:element>
+
+  <xs:simpleType name="YesNoType">
+    <xs:annotation>
+      <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:NMTOKEN">
+      <xs:enumeration value="no" />
+      <xs:enumeration value="yes" />
+    </xs:restriction>
+  </xs:simpleType>
+
+</xs:schema>
diff --git a/doc/netfx.xsd b/doc/netfx.xsd
new file mode 100644
index 0000000..7121eca
--- /dev/null
+++ b/doc/netfx.xsd
@@ -0,0 +1,207 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+          xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+         xmlns:html="http://www.w3.org/1999/xhtml"
+    targetNamespace="http://schemas.microsoft.com/wix/NetFxExtension"
+              xmlns="http://schemas.microsoft.com/wix/NetFxExtension">
+    <xs:annotation>
+        <xs:documentation>
+            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 .NET Framework Extension.
+        </xs:documentation>
+    </xs:annotation>
+
+    <xs:element name="NativeImage">
+        <xs:annotation>
+            <xs:documentation>
+                Improves the performance of managed applications by creating native images.
+                Requires the .NET Framework 2.0 or newer to be installed on the target machine since
+                it runs <html:a href="http://msdn2.microsoft.com/en-us/library/6t9t5wcf.aspx">NGen</html:a>.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+                <xse:remarks>
+                    Native images are files containing compiled processor-specific machine code, which
+                    are installed into the native image cache on the local computer. The runtime
+                    can use native images from the cache instead using the just-in-time (JIT)
+                    compiler to compile the original assembly.
+                    The native image custom actions are configured to ignore failures so that failing
+                    to generate or remove a native image will not cause setup to fail and roll back.
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        The identifier for this NativeImage.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AppBaseDirectory" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The identifier of the directory to use for locating dependent assemblies.
+                        For DLL assemblies and assemblies installed to the Global Assembly Cache (GAC),
+                        this attribute should be set to the directory of the application which loads this
+                        assembly.  For EXE assemblies, this attribute does not need to be set because NGen
+                        will use the directory of the assembly file by default.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AssemblyApplication" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The identifier of the application which will load this assembly.
+                        For DLL assemblies which are loaded via reflection, this attribute should
+                        be set to indicate the application which will load this assembly.
+                        The configuration of the application (usually specified via an exe.config file) will be used
+                        to determine how to resolve dependencies for this assembly.
+                        When a shared component is loaded at run time, using the Load method, the
+                        application's configuration file determines the dependencies that are loaded
+                        for the shared component — for example, the version of a dependency that is loaded.
+                        This attribute gives guidance on which dependencies would be loaded at run time in order
+                        to figure out which dependency assemblies will also need to have native images generated
+                        (assuming the Dependency attribute is not set to "no").
+                        This attribute cannot be set if the AssemblyApplication attribute is set on the parent
+                        File element (please note that these attributes both refer to the same application
+                        assembly but do very different things: specifiying File/@AssemblyApplication will force
+                        an assembly to install to a private location next to the indicated application, whereas
+                        this AssemblyApplication attribute will be used to help resolve dependent assemblies
+                        while generating native images for this assembly).
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Debug" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set to "yes" to generate native images that can be used under a debugger.
+                        The default value is "no".
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Dependencies" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set to "no" to generate the minimum number of native images.
+                        The default value is "yes".
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Platform">
+                <xs:annotation>
+                    <xs:documentation>
+                        Sets the platform(s) for which native images will be generated.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="32bit">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Attempt to generate native images only for the 32-bit version of the .NET Framework
+                                    on the target machine.  If the 32-bit version of the .NET Framework 2.0 or newer is not
+                                    present on the target machine, native image custom actions will not be scheduled.
+                                    This is the default value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="64bit">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Attempt to generate native images only for the 64-bit version of the .NET Framework
+                                    on the target machine.  If a 64-bit version of the .NET Framework 2.0 or newer is not
+                                    present on the target machine, native image custom actions will not be scheduled.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="all">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Attempt to generate native images for the 32-bit and 64-bit versions of the .NET Framework
+                                    on the target machine.  If a version of the .NET Framework 2.0 or newer is not present on the
+                                    target machine for a processor architecture, native image custom actions will not be
+                                    scheduled for that processor architecture.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Priority">
+                <xs:annotation>
+                    <xs:documentation>
+                        Sets the priority of generating the native images for this assembly.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="0">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    This is the highest priority, it means that image generation occurs syncronously
+                                    during the setup process.  This option will slow down setup performance.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="1">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    This will queue image generation to the NGen service to occur immediately.
+                                    This option will slow down setup performance.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="2">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    This will queue image generation to the NGen service to occur after all priority 1
+                                    assemblies have completed.
+                                    This option will slow down setup performance.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="3">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    This is the lowest priority, it will queue image generation to occur when the
+                                    machine is idle.
+                                    This option should not slow down setup performance.
+                                    This is the default value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Profile" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set to "yes" to generate native images that can be used under a profiler.
+                        The default value is "no".
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:simpleType name="YesNoType">
+        <xs:annotation>
+            <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base='xs:NMTOKEN'>
+            <xs:enumeration value="no"/>
+            <xs:enumeration value="yes"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+</xs:schema>
diff --git a/doc/ps.xsd b/doc/ps.xsd
new file mode 100644
index 0000000..0ef768f
--- /dev/null
+++ b/doc/ps.xsd
@@ -0,0 +1,208 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+          xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+         xmlns:html="http://www.w3.org/1999/xhtml"
+          xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
+    targetNamespace="http://schemas.microsoft.com/wix/PSExtension"
+              xmlns="http://schemas.microsoft.com/wix/PSExtension">
+  <xs:annotation>
+    <xs:documentation>
+      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 PowerShell Extension.
+    </xs:documentation>
+  </xs:annotation>
+  <xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
+  <xs:element name="FormatsFile">
+    <xs:annotation>
+      <xs:documentation>
+        Identifies the parent File as a formats XML file for the referenced PowerShell snap-in.
+      </xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+        <xse:remarks>
+          A formats XML file that defines output formats for objects on the pipeline.
+        </xse:remarks>
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="FileId" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            Reference to the formats File ID. This is required when nested under the SnapIn element.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="SnapIn" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            Reference to the PowerShell snap-in ID for which this formats file is associated. This is required when nested under the File element.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="TypesFile">
+    <xs:annotation>
+      <xs:documentation>
+        Identifies the parent File as a types XML file for the referenced PowerShell snap-in.
+      </xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+        <xse:remarks>
+          A types XML file used by the extensible type system.
+        </xse:remarks>
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="FileId" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            Reference to the types File ID. This is required when nested under the SnapIn element.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="SnapIn" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            Reference to the PowerShell snap-in ID for which this types file is associated. This is required when nested under the File element.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="SnapIn">
+    <xs:annotation>
+      <xs:documentation>
+        Identifies the parent File as a PowerShell snap-in to be registered on the system.
+      </xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+        <xse:remarks>
+          <html:a href="http://www.microsoft.com/powershell">PowerShell</html:a> snap-ins
+          allow developers to extend the functionality of of the PowerShell engine.
+          Add this element to identify the parent File as a PowerShell snap-in that will
+          get registered on the system.
+        </xse:remarks>
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:choice minOccurs="0" maxOccurs="unbounded">
+        <xs:element ref="FormatsFile" />
+        <xs:element ref="TypesFile" />
+      </xs:choice>
+      <xs:attribute name="Id" type="xs:string" use="required">
+        <xs:annotation>
+          <xs:documentation>
+            The identifier for this PowerShell snap-in.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="AssemblyName" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            The fully-qualified name of the assembly.
+          </xs:documentation>
+          <xs:appinfo>
+            <xse:deprecated />
+          </xs:appinfo>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="CustomSnapInType" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            The full type name of a class that is used to register a list of cmdlets and providers.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Description" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            A brief description of the snap-in.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="DescriptionIndirect" type="EmbeddedResource">
+        <xs:annotation>
+          <xs:documentation>
+            An embedded resource that contains a brief description of the snap-in.
+            This resource must be embedded in the current snap-in assembly.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="RequiredPowerShellVersion" type="VersionType">
+        <xs:annotation>
+          <xs:documentation>
+            The required version of PowerShell that must be installed and is associated with the
+            snap-in registration. The default value is "1.0".
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Vendor" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+            The name of the snap-in vendor.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="VendorIndirect" type="EmbeddedResource">
+        <xs:annotation>
+          <xs:documentation>
+            An embedded resource that contains the name of the snap-in vendor.
+            This resource must be embedded in the current snap-in assembly.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Version" type="VersionType">
+        <xs:annotation>
+          <xs:documentation>
+            The version of the snapin. If not specified, this is taken from the assembly name.
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:attribute name="RequiredVersion" type="xs:string">
+    <xs:annotation>
+      <xs:documentation>
+        The version of this extension required to compile the defining source.
+      </xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Wix" />
+      </xs:appinfo>
+    </xs:annotation>
+  </xs:attribute>
+  <xs:simpleType name="EmbeddedResource">
+    <xs:annotation>
+      <xs:documentation>
+        <html:p>
+          Values should be in the format <html:i>ResourceName,StringName</html:i>, where <html:i>ResourceName</html:i>
+          is the name of the embedded resource in your assembly sans the ".resources" extension, and <html:i>StringName</html:i>
+          is the name of the string resource in the embedded resource.
+        </html:p>
+        <html:p>
+          Example: UtilityMshSnapInResources,Description
+        </html:p>
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string" />
+  </xs:simpleType>
+  <xs:simpleType name="VersionType">
+    <xs:annotation>
+      <xs:documentation>
+        Values of this type will look like: "x", "x.x", "x.x.x", or "x.x.x.x" where x is an integer from 0 to 65534.
+      </xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:pattern value="\d{1,5}(\.\d{1,5}){0,3}"/>
+    </xs:restriction>
+  </xs:simpleType>
+</xs:schema>
diff --git a/doc/sql.xsd b/doc/sql.xsd
new file mode 100644
index 0000000..55c2481
--- /dev/null
+++ b/doc/sql.xsd
@@ -0,0 +1,349 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:html="http://www.w3.org/1999/xhtml"
+            xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
+             xmlns:xs="http://www.w3.org/2001/XMLSchema"
+            xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+      targetNamespace="http://schemas.microsoft.com/wix/SqlExtension"
+                xmlns="http://schemas.microsoft.com/wix/SqlExtension">
+    <xs:annotation>
+        <xs:documentation>
+            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 SQL Server Extension.
+        </xs:documentation>
+    </xs:annotation>
+
+    <xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
+
+    <xs:element name="SqlDatabase">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+                <xse:remarks>
+                    <html:dl>
+                        <html:dd>Nesting SqlDatabase under a Component element will result in a SqlDatabase being installed to the machine as the package is installed.</html:dd>
+                        <html:dd>
+                            Nesting SqlDatabase under Product, Fragment, or Module
+                            results in a database "locator" record being created in
+                            the SqlDatabase table.  This means that the database
+                            itself is neither installed nor uninstalled by the MSI
+                            package.  It does make the database available for referencing
+                            from a SqlString or SqlScript record.  This allows MSI to install
+                            SqlScripts or SqlStrings to already existing databases on the machine.
+                            The install will fail if the database does not exist in these cases.
+                        </html:dd>
+                        <html:dd>
+                            The User attribute references credentials specified in a User element.
+                            If a user is not specified then Windows Authentication will be used by default
+                            using the credentials of the user performing the install to execute sql
+                            strings, etc.
+                        </html:dd>
+                    </html:dl>
+                </xse:remarks>
+                <xse:seeAlso ref="User"/>
+            </xs:appinfo>
+            <xs:documentation>SQL Database</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:sequence>
+                  <xs:element ref="SqlFileSpec" minOccurs="0"/>
+                  <xs:element ref="SqlLogFileSpec" minOccurs="0"/>
+                </xs:sequence>
+                <xs:element ref="SqlScript"/>
+                <xs:element ref="SqlString"/>
+            </xs:choice>
+            <xs:attribute name="Id" use="required" type="xs:string"/>
+            <xs:attribute name="Server" use="required" type="xs:string">
+            </xs:attribute>
+            <xs:attribute name="Instance" type="xs:string">
+            </xs:attribute>
+            <xs:attribute name="Database" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The name of the database. The value can be a literal value or derived from a
+                        Property element using the <html:a href='http://msdn.microsoft.com/library/aa368609.aspx' target='_blank'>Formatted</html:a>
+                        syntax.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="User" type="xs:string">
+            </xs:attribute>
+            <xs:attribute name="CreateOnInstall" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="CreateOnReinstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies whether to create the database when the associated component is reinstalled.  Setting CreateOnInstall to yes does <html:b>not</html:b> imply CreateOnReinstall is set to yes.  CreateOnReinstall must be set in addition to CreateOnInstall for it to be created during both install and reinstall.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CreateOnUninstall" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="DropOnInstall" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="DropOnReinstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies whether to drop the database when the associated component is reinstalled.  Setting DropOnInstall to yes does <html:b>not</html:b> imply DropOnReinstall is set to yes.  DropOnReinstall must be set in addition to DropOnInstall for it to be dropped during both install and reinstall.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DropOnUninstall" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="ContinueOnError" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="ConfirmOverwrite" type="YesNoType">
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="SqlFileSpec">
+        <xs:annotation>
+            <xs:documentation>File specification for a Sql database.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>ID of the file specification.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Specifies the logical name for the database file.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Filename" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Specifies the operating-system file name for the database file.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Size" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the size of the database file. The GB, MB and KB suffixes can be used to specify gigabytes, 
+                        megabytes or kilobytes. The default is megabytes if no suffix is specified. When a Size is not 
+                        supplied for a database file, SQL Server uses the size of the primary file in the model database. 
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MaxSize" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the maximum size to which the database file can grow. The GB, MB and KB suffixes can be used to 
+                        to specify gigabytes, megabytes or kilobytes. The default is megabytes if no suffix is specified. If 
+                        MaxSize is not specified, the file will grow until the disk is full.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="GrowthSize" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the growth increment of the database file. The GB, MB and KB and % suffixes can be used to 
+                        specify gigabytes, megabytes, kilobytes or a percentage of the current file size to grow. The default is 
+                        megabytes if no suffix is specified. The default value is 10% if GrowthSize is not specified, and the 
+                        minimum value is 64 KB. The GrowthSize setting for a file cannot exceed the MaxSize setting.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="SqlLogFileSpec">
+        <xs:annotation>
+            <xs:documentation>File specification for a Sql database.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>ID of the log file specification.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Specifies the logical name for the log file.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Filename" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Specifies the operating-system file name for the log file.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Size" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the size of the log file. The GB, MB and KB suffixes can be used to specify gigabytes, 
+                        megabytes or kilobytes. The default is megabytes if no suffix is specified. When a Size is not 
+                        supplied for a log file, SQL Server makes the file 1 MB.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MaxSize" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the maximum size to which the log file can grow. The GB, MB and KB suffixes can be used to 
+                        to specify gigabytes, megabytes or kilobytes. The default is megabytes if no suffix is specified. If 
+                        MaxSize is not specified, the file will grow until the disk is full.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="GrowthSize" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the growth increment of the log file. The GB, MB and KB and % suffixes can be used to 
+                        specify gigabytes, megabytes, kilobytes or a percentage of the current file size to grow. The default is 
+                        megabytes if no suffix is specified. The default value is 10% if GrowthSize is not specified, and the 
+                        minimum value is 64 KB. The GrowthSize setting for a file cannot exceed the MaxSize setting.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="SqlScript">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+            </xs:appinfo>
+            <xs:documentation>SQL Script</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string"/>
+            <xs:attribute name="SqlDb" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>required when not child of SqlDatabase</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="User" type="xs:string">
+            </xs:attribute>
+            <xs:attribute name="BinaryKey" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Reference to Binary stream that contains the SQL script to execute.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ExecuteOnInstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies to execute the script when the associated component is installed.  This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ExecuteOnReinstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies whether to execute the script when the associated component is reinstalled.  Setting ExecuteOnInstall to yes does <html:b>not</html:b> imply ExecuteOnReinstall is set to yes.  ExecuteOnReinstall must be set in addition to ExecuteOnInstall for it to be executed during both install and reinstall.  This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ExecuteOnUninstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies to execute the script when the associated component is uninstalled.  This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RollbackOnInstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to install the associated component.  This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RollbackOnReinstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to reinstall the associated component.  This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RollbackOnUninstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies whether to execute the script on rollback if an attempt is made to uninstall the associated component.  This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ContinueOnError" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Continue executing scripts even if this one fails.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Sequence" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Specifes the order to run the SQL Scripts.  It is recommended that rollback scripts be scheduled before their complementary execution script.  This order is also relative across the SqlString element.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="SqlString">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+            </xs:appinfo>
+            <xs:documentation>SQL String</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+            </xs:attribute>
+            <xs:attribute name="SQL" use="required" type="xs:string">
+            </xs:attribute>
+            <xs:attribute name="User" type="xs:string">
+            </xs:attribute>
+            <xs:attribute name="SqlDb" type="xs:string">
+            </xs:attribute>
+            <xs:attribute name="ExecuteOnInstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies to execute the string when the associated component is installed.  This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ExecuteOnReinstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies whether to execute the string when the associated component is reinstalled.  Setting ExecuteOnInstall to yes does <html:b>not</html:b> imply ExecuteOnReinstall is set to yes.  ExecuteOnReinstall must be set in addition to ExecuteOnInstall for it to be executed during both install and reinstall.  This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ExecuteOnUninstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies to execute the string when the associated component is uninstalled.  This attribute is mutually exclusive with the RollbackOnInstall, RollbackOnReinstall and RollbackOnUninstall attributes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RollbackOnInstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to install the associated component.  This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RollbackOnReinstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to reinstall the associated component.  This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RollbackOnUninstall" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Specifies whether to execute the string on rollback if an attempt is made to uninstall the associated component.  This attribute is mutually exclusive with the ExecuteOnInstall, ExecuteOnReinstall and ExecuteOnUninstall attributes.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ContinueOnError" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Continue executing strings even if this one fails.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Sequence" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>Specifes the order to run the SQL Strings.  It is recommended that rollback strings be scheduled before their complementary execution string.  This order is also relative across the SqlScript element.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:simpleType name="YesNoType">
+        <xs:annotation>
+            <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base='xs:NMTOKEN'>
+            <xs:enumeration value="no"/>
+            <xs:enumeration value="yes"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+</xs:schema>
diff --git a/doc/util.xsd b/doc/util.xsd
new file mode 100644
index 0000000..77d10d6
--- /dev/null
+++ b/doc/util.xsd
@@ -0,0 +1,1130 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:html="http://www.w3.org/1999/xhtml" xmlns:wix="http://schemas.microsoft.com/wix/2006/wi" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" targetNamespace="http://schemas.microsoft.com/wix/UtilExtension" xmlns="http://schemas.microsoft.com/wix/UtilExtension">
+  <xs:annotation>
+    <xs:documentation>
+            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 Utility Extension.
+        </xs:documentation>
+  </xs:annotation>
+  <xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
+  <xs:element name="CloseApplication">
+    <xs:annotation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+      </xs:appinfo>
+      <xs:documentation>Closes applications or schedules a reboot if application cannot be closed.</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:simpleContent>
+        <xs:extension base="xs:string">
+          <xs:annotation>
+            <xs:documentation>
+                            Condition that determines if the application should be closed.  Must be blank or evaluate to true
+                            for the application to be scheduled for closing.
+                        </xs:documentation>
+          </xs:annotation>
+          <xs:attribute name="Id" type="xs:string" use="required">
+            <xs:annotation>
+              <xs:documentation>Identifier for the close application (primary key).</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+          <xs:attribute name="Target" type="xs:string" use="required">
+            <xs:annotation>
+              <xs:documentation>Name of the exectuable to be closed.  This should only be file name.</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+          <xs:attribute name="Description" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>Description to show if application is running and needs to be closed.</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+          <xs:attribute name="Sequence" type="xs:integer">
+            <xs:annotation>
+              <xs:documentation>Optionally orders the applications to be closed.</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+          <xs:attribute name="CloseMessage" type="YesNoType">
+            <xs:annotation>
+              <xs:documentation>Optionally sends a close message to the application. Default is no.</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+          <xs:attribute name="ElevatedCloseMessage" type="YesNoType">
+            <xs:annotation>
+              <xs:documentation>Optionally sends a close message to the application from deffered action without impersonation. Default is no.</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+          <xs:attribute name="RebootPrompt" type="YesNoType">
+            <xs:annotation>
+              <xs:documentation>Optionally prompts for reboot if application is still running. Default is yes.</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+          <xs:attribute name="Property" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>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.</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+        </xs:extension>
+      </xs:simpleContent>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="EventSource">
+    <xs:annotation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+      </xs:appinfo>
+      <xs:documentation>Creates an event source.</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="CategoryCount" type="xs:integer">
+        <xs:annotation>
+          <xs:documentation>
+                        The number of categories in CategoryMessageFile. CategoryMessageFile
+                        must be specified too.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="CategoryMessageFile" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+                        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.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="EventMessageFile" type="xs:string" use="required">
+        <xs:annotation>
+          <xs:documentation>
+                        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.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="KeyPath" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>
+                        Marks the EventSource registry as the key path of the component it belongs to.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Log" type="xs:string" use="required">
+        <xs:annotation>
+          <xs:documentation>Name of the event source's log.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Name" type="xs:string" use="required">
+        <xs:annotation>
+          <xs:documentation>Name of the event source.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ParameterMessageFile" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+                        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.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="SupportsErrors" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>
+                        Equivalent to EVENTLOG_ERROR_TYPE.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="SupportsFailureAudits" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>
+                        Equivalent to EVENTLOG_AUDIT_FAILURE.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="SupportsInformationals" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>
+                        Equivalent to EVENTLOG_INFORMATION_TYPE.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="SupportsSuccessAudits" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>
+                        Equivalent to EVENTLOG_AUDIT_SUCCESS.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="SupportsWarnings" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>
+                        Equivalent to EVENTLOG_WARNING_TYPE.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="FileShare">
+    <xs:annotation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+      </xs:appinfo>
+      <xs:documentation>Creates a file share out of the component's directory.</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="FileSharePermission" minOccurs="1" maxOccurs="unbounded">
+          <xs:annotation>
+            <xs:documentation>ACL permission</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+      <xs:attribute name="Id" type="xs:string" use="required">
+        <xs:annotation>
+          <xs:documentation>Identifier for the file share (primary key).</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Name" type="xs:string" use="required">
+        <xs:annotation>
+          <xs:documentation>Name of the file share.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Description" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Description of the file share.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="FileSharePermission">
+    <xs:annotation>
+      <xs:documentation>
+                Sets ACLs on a FileShare.  This element has no Id attribute.
+                The table and key are taken from the parent element.
+            </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="User" use="required" type="xs:string"></xs:attribute>
+      <!-- Common ACLs -->
+      <xs:attribute name="Read" type="YesNoType"></xs:attribute>
+      <xs:attribute name="Delete" type="YesNoType"></xs:attribute>
+      <xs:attribute name="ReadPermission" type="YesNoType"></xs:attribute>
+      <xs:attribute name="ChangePermission" type="YesNoType"></xs:attribute>
+      <xs:attribute name="TakeOwnership" type="YesNoType"></xs:attribute>
+      <!-- Folder and File ACLs -->
+      <xs:attribute name="ReadAttributes" type="YesNoType"></xs:attribute>
+      <xs:attribute name="WriteAttributes" type="YesNoType"></xs:attribute>
+      <xs:attribute name="ReadExtendedAttributes" type="YesNoType"></xs:attribute>
+      <xs:attribute name="WriteExtendedAttributes" type="YesNoType"></xs:attribute>
+      <xs:attribute name="Synchronize" type="YesNoType"></xs:attribute>
+      <!-- Folder only ACLs -->
+      <xs:attribute name="CreateFile" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>For a directory, the right to create a file in the directory.  Only valid under a 'CreateFolder' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="CreateChild" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>For a directory, the right to create a subdirectory.  Only valid under a 'CreateFolder' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="DeleteChild" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Traverse" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <!-- Generic ACLs, mapped by system to appropriate permissions -->
+      <xs:attribute name="GenericAll" type="YesNoType"></xs:attribute>
+      <xs:attribute name="GenericExecute" type="YesNoType"></xs:attribute>
+      <xs:attribute name="GenericWrite" type="YesNoType"></xs:attribute>
+      <xs:attribute name="GenericRead" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>specifying this will fail to grant read access</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="Group">
+    <xs:annotation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+      </xs:appinfo>
+      <xs:documentation>
+                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.
+            </xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="Id" type="xs:string" use="required">
+        <xs:annotation>
+          <xs:documentation>Unique identifier in your installation package for this group.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Name" type="xs:string" use="required">
+        <xs:annotation>
+          <xs:documentation>A <html:a href="http://msdn.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</html:a> string that contains the name of the group to be found.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Domain" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>An optional <html:a href="http://msdn.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</html:a> string that specifies the domain for the group.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GroupRef">
+    <xs:annotation>
+      <xs:documentation>Used to join a user to a group</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="Id" type="xs:string" use="required" />
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="InternetShortcut">
+    <xs:annotation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+        <xse:howtoRef href="create_internet_shortcut.htm">How To: Create a shortcut to a webpage</xse:howtoRef>
+      </xs:appinfo>
+      <xs:documentation>Creates a shortcut to a URL.</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="Id" type="xs:string" use="required">
+        <xs:annotation>
+          <xs:documentation>Unique identifier in your installation package for this Internet shortcut.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Directory" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Identifier reference to Directory element where shortcut is to be created. This attribute's value defaults to the parent Component directory.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Name" type="xs:string" use="required">
+        <xs:annotation>
+          <xs:documentation>
+                        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.)
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Target" type="xs:string" use="required">
+        <xs:annotation>
+          <xs:documentation>
+                        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).
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Type">
+        <xs:annotation>
+          <xs:documentation>Which type of shortcut should be created.</xs:documentation>
+        </xs:annotation>
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="url">
+              <xs:annotation>
+                <xs:documentation>Creates .url files using IUniformResourceLocatorW.</xs:documentation>
+              </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="link">
+              <xs:annotation>
+                <xs:documentation>Creates .lnk files using IShellLinkW (default).</xs:documentation>
+              </xs:annotation>
+            </xs:enumeration>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="PerformanceCategory">
+    <xs:annotation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+      </xs:appinfo>
+      <xs:documentation>Used to create performance categories and configure performance counters.</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="PerformanceCounter" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+      <xs:attribute name="Id" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Unique identifier in your installation package for this performance counter category.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Name" type="xs:string" use="optional">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Help" type="xs:string" use="optional">
+        <xs:annotation>
+          <xs:documentation>Optional help text for the performance counter category.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="MultiInstance" type="YesNoType" use="optional">
+        <xs:annotation>
+          <xs:documentation>Flag that specifies whether the performance counter category is multi or single instanced.  Default is single instance.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Library" type="xs:string" use="optional">
+        <xs:annotation>
+          <xs:documentation>DLL that contains the performance counter.  The default is "netfxperf.dll" which should be used for all managed code performance counters.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Open" type="xs:string" use="optional">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Close" type="xs:string" use="optional">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Collect" type="xs:string" use="optional">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="DefaultLanguage" type="PerformanceCounterLanguageType">
+        <xs:annotation>
+          <xs:documentation>Default language for the performance category and contained counters' names and help text.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="PerformanceCounter">
+    <xs:annotation>
+      <xs:documentation>Creates a performance counter in a performance category.</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="Name" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Name for the performance counter.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Help" type="xs:string" use="optional">
+        <xs:annotation>
+          <xs:documentation>Optional help text for the performance counter.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Type" type="PerformanceCounterTypesType">
+        <xs:annotation>
+          <xs:documentation>Type of the performance counter.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Language" type="PerformanceCounterLanguageType" use="optional">
+        <xs:annotation>
+          <xs:documentation>Language for the peformance counter name and help.  The default is to use the parent PerformanceCategory element's DefaultLanguage attribute.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="PerfCounter">
+    <xs:annotation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+        <xse:deprecated ref="PerformanceCounter" />
+      </xs:appinfo>
+      <xs:documentation>Used to install Perfmon counters.</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="Name" type="xs:string" />
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="PerfCounterManifest">
+    <xs:annotation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+      </xs:appinfo>
+      <xs:documentation>Used to install Perfmon Counter Manifests.</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="ResourceFileDirectory" type="xs:string" use="optional">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="EventManifest">
+    <xs:annotation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+      </xs:appinfo>
+      <xs:documentation>Used to install Event Manifests.</xs:documentation>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="MessageFile" type="xs:string" use="optional">
+        <xs:annotation>
+          <xs:documentation>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. </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ParameterFile" type="xs:string" use="optional">
+        <xs:annotation>
+          <xs:documentation>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. </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ResourceFile" type="xs:string" use="optional">
+        <xs:annotation>
+          <xs:documentation>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. </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="PermissionEx">
+    <xs:annotation>
+      <xs:documentation>
+                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.
+            </xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="CreateFolder" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Registry" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="RegistryKey" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="RegistryValue" />
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="Domain" type="xs:string"></xs:attribute>
+      <xs:attribute name="User" use="required" type="xs:string"></xs:attribute>
+      <!-- Common ACLs -->
+      <xs:attribute name="Read" type="YesNoType"></xs:attribute>
+      <xs:attribute name="Delete" type="YesNoType"></xs:attribute>
+      <xs:attribute name="ReadPermission" type="YesNoType"></xs:attribute>
+      <xs:attribute name="ChangePermission" type="YesNoType"></xs:attribute>
+      <xs:attribute name="TakeOwnership" type="YesNoType"></xs:attribute>
+      <!-- Folder and File ACLs -->
+      <xs:attribute name="ReadAttributes" type="YesNoType"></xs:attribute>
+      <xs:attribute name="WriteAttributes" type="YesNoType"></xs:attribute>
+      <xs:attribute name="ReadExtendedAttributes" type="YesNoType"></xs:attribute>
+      <xs:attribute name="WriteExtendedAttributes" type="YesNoType"></xs:attribute>
+      <xs:attribute name="Synchronize" type="YesNoType"></xs:attribute>
+      <!-- Folder only ACLs -->
+      <xs:attribute name="CreateFile" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>For a directory, the right to create a file in the directory.  Only valid under a 'CreateFolder' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="CreateChild" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>For a directory, the right to create a subdirectory.  Only valid under a 'CreateFolder' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="DeleteChild" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Traverse" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <!-- File only ACLs -->
+      <xs:attribute name="Append" type="YesNoType"></xs:attribute>
+      <xs:attribute name="Execute" type="YesNoType"></xs:attribute>
+      <!-- File and Registry ACLs -->
+      <xs:attribute name="Write" type="YesNoType"></xs:attribute>
+      <!-- Registry only ACLs -->
+      <xs:attribute name="CreateSubkeys" type="YesNoType"></xs:attribute>
+      <xs:attribute name="EnumerateSubkeys" type="YesNoType"></xs:attribute>
+      <xs:attribute name="Notify" type="YesNoType"></xs:attribute>
+      <xs:attribute name="CreateLink" type="YesNoType"></xs:attribute>
+      <!-- Generic ACLs, mapped by system to appropriate permissions -->
+      <xs:attribute name="GenericAll" type="YesNoType"></xs:attribute>
+      <xs:attribute name="GenericExecute" type="YesNoType"></xs:attribute>
+      <xs:attribute name="GenericWrite" type="YesNoType"></xs:attribute>
+      <xs:attribute name="GenericRead" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>specifying this will fail to grant read access</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <!-- Service only ACLs -->
+      <xs:attribute name="ServiceQueryConfig" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Required to call the QueryServiceConfig and QueryServiceConfig2 functions to query the service configuration.  Only valid under a 'ServiceInstall' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ServiceChangeConfig" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Required to call the ChangeServiceConfig or ChangeServiceConfig2 function to change the service configuration.  Only valid under a 'ServiceInstall' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ServiceQueryStatus" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Required to call the QueryServiceStatus function to ask the service control manager about the status of the service.  Only valid under a 'ServiceInstall' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ServiceEnumerateDependents" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Required to call the EnumDependentServices function to enumerate all the services dependent on the service.  Only valid under a 'ServiceInstall' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ServiceStart" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Required to call the StartService function to start the service.  Only valid under a 'ServiceInstall' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ServiceStop" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Required to call the ControlService function to stop the service.  Only valid under a 'ServiceInstall' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ServicePauseContinue" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Required to call the ControlService function to pause or continue the service.  Only valid under a 'ServiceInstall' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ServiceInterrogate" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Required to call the ControlService function to ask the service to report its status immediately.  Only valid under a 'ServiceInstall' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ServiceUserDefinedControl" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Required to call the ControlService function to specify a user-defined control code.  Only valid under a 'ServiceInstall' parent.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="RestartResource">
+    <xs:annotation>
+      <xs:documentation>Registers a resource with the Restart Manager.</xs:documentation>
+      <xs:appinfo>
+          <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+          <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+          <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+          <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="Id" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The unique identifier for this resource. A unique identifier will
+                    be generated automatically if not specified.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Path" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ProcessName" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The name of a process to register with the Restart Manager.
+                    This can be a formatted value that resolves to a process name.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ServiceName" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The name of a Windows service to register with the Restart Manager.
+                    This can be a formatted value that resolves to a service name.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="ServiceConfig">
+    <xs:annotation>
+      <xs:documentation>Service configuration information for failure actions.</xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="ServiceInstall" />
+        <xse:remarks>
+          <html:dl>
+            <html:dd>Nesting a ServiceConfig element under a ServiceInstall element will result in the service being installed to be configured.</html:dd>
+            <html:dd>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.</html:dd>
+          </html:dl>
+        </xse:remarks>
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="ServiceName" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Required if not under a ServiceInstall element.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="FirstFailureActionType" use="required">
+        <xs:annotation>
+          <xs:documentation>Action to take on the first failure of the service.</xs:documentation>
+        </xs:annotation>
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="none" />
+            <xs:enumeration value="reboot" />
+            <xs:enumeration value="restart" />
+            <xs:enumeration value="runCommand" />
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="SecondFailureActionType" use="required">
+        <xs:annotation>
+          <xs:documentation>Action to take on the second failure of the service.</xs:documentation>
+        </xs:annotation>
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="none" />
+            <xs:enumeration value="reboot" />
+            <xs:enumeration value="restart" />
+            <xs:enumeration value="runCommand" />
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="ThirdFailureActionType" use="required">
+        <xs:annotation>
+          <xs:documentation>Action to take on the third failure of the service.</xs:documentation>
+        </xs:annotation>
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="none" />
+            <xs:enumeration value="reboot" />
+            <xs:enumeration value="restart" />
+            <xs:enumeration value="runCommand" />
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="ResetPeriodInDays" type="xs:integer">
+        <xs:annotation>
+          <xs:documentation>Number of days after which to reset the failure count to zero if there are no failures.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="RestartServiceDelayInSeconds" type="xs:integer">
+        <xs:annotation>
+          <xs:documentation>If any of the three *ActionType attributes is "restart", this specifies the number of seconds to wait before doing so.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ProgramCommandLine" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>If any of the three *ActionType attributes is "runCommand", this specifies the command to run when doing so.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="RebootMessage" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>If any of the three *ActionType attributes is "reboot", this specifies the message to broadcast to server users before doing so.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="User">
+    <xs:annotation>
+      <xs:documentation>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.</xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+        <xse:seeAlso ref="Group" />
+        <xse:seeAlso ref="GroupRef" />
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="GroupRef" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+      <xs:attribute name="Id" type="xs:string" use="required" />
+      <xs:attribute name="Name" use="required" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>A <a href="http://msdn2.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</a> string that contains the name of the user account.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Domain" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>A <a href="http://msdn2.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</a> string that contains the local machine or Active Directory domain for the user.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Password" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Usually a Property that is passed in on the command-line to keep it more secure.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="PasswordNeverExpires" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>The account's password never expires. Equivalent to UF_DONT_EXPIRE_PASSWD.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="CanNotChangePassword" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>The user cannot change the account's password. Equivalent to UF_PASSWD_CANT_CHANGE.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="RemoveOnUninstall" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Indicates whether the user account should be removed or left behind on uninstall.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="FailIfExists" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Indicates if the install should fail if the user already exists.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="LogonAsService" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="UpdateIfExists" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Indicates if the user account properties should be updated if the user already exists.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="PasswordExpired" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Indicates whether the user must change their password on their first login.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Disabled" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>The account is disabled. Equivalent to UF_ACCOUNTDISABLE.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="CreateUser" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="XmlFile">
+    <xs:annotation>
+      <xs:documentation>
+                Adds or removes .xml file entries.  If you use the XmlFile element you must reference WixUtilExtension.dll as it contains the XmlFile custom actions.
+            </xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+      <xs:attribute name="Id" use="required" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Identifier for xml file modification.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ElementPath" use="required" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="File" use="required" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Path of the .xml file to configure.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Name" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Value" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+                        The value to be written.  See the <html:a href="http://msdn.microsoft.com/library/aa368609(VS.85).aspx" target="_blank">Formatted topic</html:a> for information how to escape square brackets in the value.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Action" use="required">
+        <xs:annotation>
+          <xs:documentation>The type of modification to be made to the XML file when the component is installed.</xs:documentation>
+        </xs:annotation>
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="createElement">
+              <xs:annotation>
+                <xs:documentation>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.</xs:documentation>
+              </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="deleteValue">
+              <xs:annotation>
+                <xs:documentation>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.</xs:documentation>
+              </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="setValue">
+              <xs:annotation>
+                <xs:documentation>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.</xs:documentation>
+              </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="bulkSetValue">
+              <xs:annotation>
+                <xs:documentation>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.</xs:documentation>
+              </xs:annotation>
+            </xs:enumeration>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="Permanent" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>Specifies whether or not the modification should be removed on uninstall.  This has no effect on uninstall if the action was deleteValue.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="PreserveModifiedDate" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Sequence" use="optional" type="xs:integer">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="SelectionLanguage">
+        <xs:annotation>
+          <xs:documentation>
+                        Specify whether the DOM object should use XPath language or the old XSLPattern language (default) as the query language.                        
+                    </xs:documentation>
+        </xs:annotation>
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="XPath" />
+            <xs:enumeration value="XSLPattern" />
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="XmlConfig">
+    <xs:annotation>
+      <xs:documentation>
+                Adds or removes .xml file entries.  If you use the XmlConfig element you must reference WixUtilExtension.dll as it contains the XmlConfig custom actions.
+            </xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType mixed="true">
+      <xs:sequence>
+        <xs:element ref="XmlConfig" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+      <xs:attribute name="Id" use="required" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Identifier for xml file modification.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Action">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="create" />
+            <xs:enumeration value="delete" />
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="ElementId" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>The Id of another XmlConfig to add attributes to.  In this case, the 'Action' 'Node' and 'On' attributes must be left unspecified.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="ElementPath" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="File" use="required" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>Path of the .xml file to configure.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Name" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Node">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="element" />
+            <xs:enumeration value="value" />
+            <xs:enumeration value="document" />
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="On">
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="install" />
+            <xs:enumeration value="uninstall" />
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+      <xs:attribute name="PreserveModifiedDate" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Sequence" use="optional" type="xs:integer">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Value" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+                        The value to be written.  See the <html:a href="http://msdn.microsoft.com/library/aa368609(VS.85).aspx" target="_blank">Formatted topic</html:a> for information how to escape square brackets in the value.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="VerifyPath" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>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.</xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+  <xs:simpleType name="YesNoType">
+    <xs:annotation>
+      <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:NMTOKEN">
+      <xs:enumeration value="no" />
+      <xs:enumeration value="yes" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="PerformanceCounterLanguageType">
+    <xs:annotation>
+      <xs:documentation>Enumeration of valid languages for performance counters.</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:NMTOKEN">
+      <xs:enumeration value="afrikaans" />
+      <xs:enumeration value="albanian" />
+      <xs:enumeration value="arabic" />
+      <xs:enumeration value="armenian" />
+      <xs:enumeration value="assamese" />
+      <xs:enumeration value="azeri" />
+      <xs:enumeration value="basque" />
+      <xs:enumeration value="belarusian" />
+      <xs:enumeration value="bengali" />
+      <xs:enumeration value="bulgarian" />
+      <xs:enumeration value="catalan" />
+      <xs:enumeration value="chinese" />
+      <xs:enumeration value="croatian" />
+      <xs:enumeration value="czech" />
+      <xs:enumeration value="danish" />
+      <xs:enumeration value="divehi" />
+      <xs:enumeration value="dutch" />
+      <xs:enumeration value="english" />
+      <xs:enumeration value="estonian" />
+      <xs:enumeration value="faeroese" />
+      <xs:enumeration value="farsi" />
+      <xs:enumeration value="finnish" />
+      <xs:enumeration value="french" />
+      <xs:enumeration value="galician" />
+      <xs:enumeration value="georgian" />
+      <xs:enumeration value="german" />
+      <xs:enumeration value="greek" />
+      <xs:enumeration value="gujarati" />
+      <xs:enumeration value="hebrew" />
+      <xs:enumeration value="hindi" />
+      <xs:enumeration value="hungarian" />
+      <xs:enumeration value="icelandic" />
+      <xs:enumeration value="indonesian" />
+      <xs:enumeration value="italian" />
+      <xs:enumeration value="japanese" />
+      <xs:enumeration value="kannada" />
+      <xs:enumeration value="kashmiri" />
+      <xs:enumeration value="kazak" />
+      <xs:enumeration value="konkani" />
+      <xs:enumeration value="korean" />
+      <xs:enumeration value="kyrgyz" />
+      <xs:enumeration value="latvian" />
+      <xs:enumeration value="lithuanian" />
+      <xs:enumeration value="macedonian" />
+      <xs:enumeration value="malay" />
+      <xs:enumeration value="malayalam" />
+      <xs:enumeration value="manipuri" />
+      <xs:enumeration value="marathi" />
+      <xs:enumeration value="mongolian" />
+      <xs:enumeration value="nepali" />
+      <xs:enumeration value="norwegian" />
+      <xs:enumeration value="oriya" />
+      <xs:enumeration value="polish" />
+      <xs:enumeration value="portuguese" />
+      <xs:enumeration value="punjabi" />
+      <xs:enumeration value="romanian" />
+      <xs:enumeration value="russian" />
+      <xs:enumeration value="sanskrit" />
+      <xs:enumeration value="serbian" />
+      <xs:enumeration value="sindhi" />
+      <xs:enumeration value="slovak" />
+      <xs:enumeration value="slovenian" />
+      <xs:enumeration value="spanish" />
+      <xs:enumeration value="swahili" />
+      <xs:enumeration value="swedish" />
+      <xs:enumeration value="syriac" />
+      <xs:enumeration value="tamil" />
+      <xs:enumeration value="tatar" />
+      <xs:enumeration value="telugu" />
+      <xs:enumeration value="thai" />
+      <xs:enumeration value="turkish" />
+      <xs:enumeration value="ukrainian" />
+      <xs:enumeration value="urdu" />
+      <xs:enumeration value="uzbek" />
+      <xs:enumeration value="vietnamese" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:simpleType name="PerformanceCounterTypesType">
+    <xs:annotation>
+      <xs:documentation>Enumeration of valid types for performance counters.</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:NMTOKEN">
+      <xs:enumeration value="averageBase" />
+      <xs:enumeration value="averageCount64" />
+      <xs:enumeration value="averageTimer32" />
+      <xs:enumeration value="counterDelta32" />
+      <xs:enumeration value="counterTimerInverse" />
+      <xs:enumeration value="sampleFraction" />
+      <xs:enumeration value="timer100Ns" />
+      <xs:enumeration value="counterTimer" />
+      <xs:enumeration value="rawFraction" />
+      <xs:enumeration value="timer100NsInverse" />
+      <xs:enumeration value="counterMultiTimer" />
+      <xs:enumeration value="counterMultiTimer100Ns" />
+      <xs:enumeration value="counterMultiTimerInverse" />
+      <xs:enumeration value="counterMultiTimer100NsInverse" />
+      <xs:enumeration value="elapsedTime" />
+      <xs:enumeration value="sampleBase" />
+      <xs:enumeration value="rawBase" />
+      <xs:enumeration value="counterMultiBase" />
+      <xs:enumeration value="rateOfCountsPerSecond64" />
+      <xs:enumeration value="rateOfCountsPerSecond32" />
+      <xs:enumeration value="countPerTimeInterval64" />
+      <xs:enumeration value="countPerTimeInterval32" />
+      <xs:enumeration value="sampleCounter" />
+      <xs:enumeration value="counterDelta64" />
+      <xs:enumeration value="numberOfItems64" />
+      <xs:enumeration value="numberOfItems32" />
+      <xs:enumeration value="numberOfItemsHEX64" />
+      <xs:enumeration value="numberOfItemsHEX32" />
+    </xs:restriction>
+  </xs:simpleType>
+</xs:schema>
\ No newline at end of file
diff --git a/doc/vs.xsd b/doc/vs.xsd
new file mode 100644
index 0000000..a8a73bd
--- /dev/null
+++ b/doc/vs.xsd
@@ -0,0 +1,209 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+          xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+    targetNamespace="http://schemas.microsoft.com/wix/VSExtension"
+              xmlns="http://schemas.microsoft.com/wix/VSExtension">
+    <xs:annotation>
+        <xs:documentation>
+            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 Visual Studio Extension.
+        </xs:documentation>
+    </xs:annotation>
+
+    <xs:element name="HelpCollection">
+        <xs:annotation>
+            <xs:documentation>
+                Help Namespace for a help collection.  The parent file is the key for the HxC (Collection) file.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="HelpFileRef" />
+                <xs:element ref="HelpFilterRef" />
+                <xs:element ref="PlugCollectionInto" />
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Primary Key for HelpNamespace.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation><xs:documentation>Friendly name for Namespace.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Internal Microsoft Help ID for this Namespace.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SuppressCustomActions" type="YesNoType">
+                <xs:annotation><xs:documentation>Suppress linking Help registration custom actions.  Help redistributable merge modules will be required.  Use this when building a merge module.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="HelpFilter">
+        <xs:annotation>
+            <xs:documentation>
+                Filter for Help Namespace.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Primary Key for HelpFilter.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="FilterDefinition" type="xs:string">
+                <xs:annotation><xs:documentation>Query String for Help Filter.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Friendly name for Filter.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SuppressCustomActions" type="YesNoType">
+                <xs:annotation><xs:documentation>Suppress linking Help registration custom actions.  Help redistributable merge modules will be required.  Use this when building a merge module.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="HelpFile">
+        <xs:annotation>
+            <xs:documentation>
+                File for Help Namespace.  The parent file is the key for HxS (Title) file.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Primary Key for HelpFile Table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AttributeIndex" type="xs:string">
+                <xs:annotation><xs:documentation>Key for HxR (Attributes) file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Index" type="xs:string">
+                <xs:annotation><xs:documentation>Key for HxI (Index) file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Language" use="required" type="xs:integer">
+                <xs:annotation><xs:documentation>Language ID for content file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Internal Microsoft Help ID for this HelpFile.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SampleLocation" type="xs:string">
+                <xs:annotation><xs:documentation>Key for a file that is in the "root" of the samples directory for this HelpFile.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Search" type="xs:string">
+                <xs:annotation><xs:documentation>Key for HxQ (Query) file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SuppressCustomActions" type="YesNoType">
+                <xs:annotation><xs:documentation>Suppress linking Help registration custom actions.  Help redistributable merge modules will be required.  Use this when building a merge module.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="PlugCollectionInto">
+        <xs:annotation><xs:documentation>Plugin for Help Namespace.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Attributes" type="xs:string">
+                <xs:annotation><xs:documentation>Key for HxA (Attributes) file of child namespace.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TableOfContents" type="xs:string">
+                <xs:annotation><xs:documentation>Key for HxT  file of child namespace.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TargetCollection" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Foriegn Key into HelpNamespace table for the parent namespace into which the child will be inserted.
+                    The following special keys can be used to plug into external namespaces defined outside of the installer.
+                      MS_VSIPCC_v80 : Visual Studio 2005
+                      MS.VSIPCC.v90 : Visual Studio 2008
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TargetTableOfContents" type="xs:string">
+                <xs:annotation><xs:documentation>Key for HxT  file of parent namespace that now includes the new child namespace.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TargetFeature" type="xs:string">
+                <xs:annotation><xs:documentation>Key for the feature parent of this help collection.  Required only when plugging into external namespaces.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SuppressExternalNamespaces" type="YesNoType">
+                <xs:annotation><xs:documentation>Suppress linking Visual Studio Help namespaces.  Help redistributable merge modules will be required.  Use this when building a merge module.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="HelpFileRef">
+        <xs:annotation><xs:documentation>Create a reference to a HelpFile element in another Fragment.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Primary Key for HelpFile Table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="HelpFilterRef">
+        <xs:annotation><xs:documentation>Create a reference to a HelpFile element in another Fragment.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Primary Key for HelpFilter.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="HelpCollectionRef">
+        <xs:annotation>
+            <xs:documentation>Create a reference to a HelpCollection element in another Fragment.</xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="HelpFileRef" />
+            </xs:choice>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Primary Key for HelpNamespace Table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:simpleType name="YesNoType">
+        <xs:annotation>
+            <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base='xs:NMTOKEN'>
+            <xs:enumeration value="no"/>
+            <xs:enumeration value="yes"/>
+        </xs:restriction>
+    </xs:simpleType>
+</xs:schema>
diff --git a/doc/wix.chm b/doc/wix.chm
new file mode 100644
index 0000000..12ac811
--- /dev/null
+++ b/doc/wix.chm
Binary files differ
diff --git a/doc/wix.xsd b/doc/wix.xsd
new file mode 100644
index 0000000..128e46e
--- /dev/null
+++ b/doc/wix.xsd
@@ -0,0 +1,10369 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+          xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+         xmlns:html="http://www.w3.org/1999/xhtml"
+    targetNamespace="http://schemas.microsoft.com/wix/2006/wi"
+              xmlns="http://schemas.microsoft.com/wix/2006/wi">
+    <xs:annotation>
+        <xs:documentation>
+            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.
+
+            Schema for describing Windows Installer database files (.msi/.msm/.pcp).
+        </xs:documentation>
+    </xs:annotation>
+
+    <xs:import namespace="http://www.w3.org/1999/xhtml" />
+
+    <xs:element name="Wix">
+        <xs:annotation><xs:documentation>
+            This is the top-level container element for every wxs file.  Among the possible children,
+            the Product, Module, Patch, and PatchCreation elements are analogous to the main function in a C program.
+            There can only be one of these present when linking occurs.  Product compiles into an msi file,
+            Module compiles into an msm file, PatchCreation compiles into a pcp file.  The Fragment element
+            is an atomic unit which ultimately links into either a Product, Module, or PatchCreation.  The
+            Fragment can either be completely included or excluded during linking.
+        </xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0">
+                <xs:sequence>
+                    <xs:choice minOccurs="0">
+                        <xs:element ref="Product"/>
+                        <xs:element ref="Module"/>
+                        <xs:element ref="Patch"/>
+                    </xs:choice>
+                    <xs:element ref="Fragment" minOccurs="0" maxOccurs="unbounded"/>
+                </xs:sequence>
+                <xs:element ref="PatchCreation"/>
+            </xs:choice>
+            <xs:attribute name="RequiredVersion" type="VersionType">
+                <xs:annotation>
+                    <xs:documentation>Required version of the WiX toolset to compile this input file.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema. Schema extensions can register additional attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Include">
+        <xs:annotation><xs:documentation>
+            This is the top-level container element for every wxi file.
+        </xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:any namespace="##any" processContents="lax"/>
+            </xs:choice>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="LayoutDirectory">
+        <xs:annotation>
+            <xs:documentation>Representation of layout directory.</xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Patch" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="PatchCreation" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="LayoutDirectoryRef" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="LayoutDirectory"/>
+                <xs:element ref="LayoutDirectoryRef"/>
+                <xs:element ref="LayoutFile"/>
+            </xs:choice>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The destination path of this layout. It can contain multiple levels of directory structure (i.e. src\files\product)</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Identifier for LayoutDirectory. Only required if this is shared and is referenced by LayoutDirectoryRef.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="LayoutDirectoryRef">
+        <xs:annotation>
+            <xs:documentation>Create a reference to an existing LayoutDirectory element.</xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="LayoutDirectory"/>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="LayoutDirectory" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Module" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Patch" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="PatchCreation" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="LayoutDirectory"/>
+                <xs:element ref="LayoutDirectoryRef"/>
+                <xs:element ref="LayoutFile"/>
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The identifier of LayoutDirectory element to reference.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="LayoutFile">
+        <xs:annotation>
+            <xs:documentation>Describes the file to copy into the final layout.</xs:documentation>
+            <xs:appinfo>
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="LayoutDirectory" />
+                <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="LayoutDirectoryRef"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="SourceFile" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Location of the source file.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The destination path and file name for this file. The default is the source file name.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Product">
+        <xs:annotation>
+            <xs:documentation>
+                The Product element is analogous to the main function in a C program.  When linking, only one Product section
+                can be given to the linker to produce a successful result.  Using this element creates an msi file.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:remarks>
+                    <html:p>You can specify any valid Windows code by integer like 1252, or by web name like Windows-1252. See <html:a href="codepage.htm">Code Pages</html:a> for more information.</html:p>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="Package" />
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:element ref="AppId"/>
+                    <xs:element ref="Binary"/>
+                    <xs:element ref="ComplianceCheck"/>
+                    <xs:element ref="Component"/>
+                    <xs:element ref="ComponentGroup"/>
+                    <xs:element ref="Condition"/>
+                    <xs:element ref="CustomAction"/>
+                    <xs:element ref="CustomActionRef"/>
+                    <xs:element ref="CustomTable"/>
+                    <xs:element ref="Directory"/>
+                    <xs:element ref="DirectoryRef"/>
+                    <xs:element ref="EmbeddedChainer"/>
+                    <xs:element ref="EmbeddedChainerRef"/>
+                    <xs:element ref="EnsureTable"/>
+                    <xs:element ref="Feature"/>
+                    <xs:element ref="FeatureRef"/>
+                    <xs:element ref="FeatureGroupRef"/>
+                    <xs:element ref="Icon"/>
+                    <xs:element ref="InstanceTransforms"/>
+                    <xs:element ref="LayoutDirectory" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="LayoutDirectoryRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="MajorUpgrade"/>
+                    <xs:element ref="Media"/>
+                    <xs:element ref="PackageCertificates"/>
+                    <xs:element ref="PatchCertificates"/>
+                    <xs:element ref="Property"/>
+                    <xs:element ref="PropertyRef"/>
+                    <xs:element ref="SetDirectory"/>
+                    <xs:element ref="SetProperty"/>
+                    <xs:element ref="SFPCatalog"/>
+                    <xs:element ref="SymbolPath"/>
+                    <xs:element ref="UI"/>
+                    <xs:element ref="UIRef"/>
+                    <xs:element ref="Upgrade"/>
+                    <xs:element ref="WixVariable"/>
+                    <xs:sequence>
+                        <xs:element ref="InstallExecuteSequence" minOccurs="0"/>
+                        <xs:element ref="InstallUISequence" minOccurs="0"/>
+                        <xs:element ref="AdminExecuteSequence" minOccurs="0"/>
+                        <xs:element ref="AdminUISequence" minOccurs="0"/>
+                        <xs:element ref="AdvertiseExecuteSequence" minOccurs="0"/>
+                    </xs:sequence>
+                    <xs:any namespace="##other" processContents="lax">
+                        <xs:annotation><xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            elements at this point in the schema.
+                        </xs:documentation></xs:annotation>
+                    </xs:any>
+                </xs:choice>
+            </xs:sequence>
+
+            <xs:attribute name="Id" type="AutogenGuid" use="required">
+                <xs:annotation>
+                    <xs:documentation>The product code GUID for the product.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Codepage" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The code page integer value or web name for the resulting MSI. See remarks for more information.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Language" type="LocalizableInteger" use="required">
+                <xs:annotation>
+                    <xs:documentation>The decimal language ID (LCID) for the product.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Manufacturer" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The manufacturer of the product.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The descriptive name of the product.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="UpgradeCode" type="Guid">
+                <xs:annotation>
+                    <xs:documentation>The upgrade code GUID for the product.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Version" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The product's version string.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Module">
+        <xs:annotation>
+            <xs:documentation>
+            The Module element is analogous to the main function in a C program.  When linking, only
+            one Module section can be given to the linker to produce a successful result.  Using this
+            element creates an msm file.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:remarks>
+                    <html:p>You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See <html:a href="codepage.htm">Code Pages</html:a> for more information.</html:p>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="Package" />
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:element ref="AppId"/>
+                    <xs:element ref="Binary"/>
+                    <xs:element ref="Component"/>
+                    <xs:element ref="ComponentGroupRef"/>
+                    <xs:element ref="ComponentRef"/>
+                    <xs:element ref="Configuration"/>
+                    <xs:element ref="CustomAction"/>
+                    <xs:element ref="CustomActionRef"/>
+                    <xs:element ref="CustomTable"/>
+                    <xs:element ref="Dependency"/>
+                    <xs:element ref="Directory"/>
+                    <xs:element ref="DirectoryRef"/>
+                    <xs:element ref="EmbeddedChainer"/>
+                    <xs:element ref="EmbeddedChainerRef"/>
+                    <xs:element ref="EnsureTable"/>
+                    <xs:element ref="Exclusion"/>
+                    <xs:element ref="Icon"/>
+                    <xs:element ref="IgnoreModularization"/>
+                    <xs:element ref="IgnoreTable"/>
+                    <xs:element ref="LayoutDirectory" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="LayoutDirectoryRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="Property"/>
+                    <xs:element ref="PropertyRef"/>
+                    <xs:element ref="SetDirectory"/>
+                    <xs:element ref="SetProperty"/>
+                    <xs:element ref="SFPCatalog"/>
+                    <xs:element ref="Substitution"/>
+                    <xs:element ref="UI"/>
+                    <xs:element ref="UIRef"/>
+                    <xs:element ref="WixVariable"/>
+                    <xs:sequence>
+                        <xs:element ref="InstallExecuteSequence" minOccurs="0"/>
+                        <xs:element ref="InstallUISequence" minOccurs="0"/>
+                        <xs:element ref="AdminExecuteSequence" minOccurs="0"/>
+                        <xs:element ref="AdminUISequence" minOccurs="0"/>
+                        <xs:element ref="AdvertiseExecuteSequence" minOccurs="0"/>
+                    </xs:sequence>
+                    <xs:any namespace="##other" processContents="lax">
+                        <xs:annotation><xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            elements at this point in the schema.
+                        </xs:documentation></xs:annotation>
+                    </xs:any>
+                </xs:choice>
+            </xs:sequence>
+
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The name of the merge module (not the file name).</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Codepage" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The code page integer value or web name for the resulting MSM. See remarks for more information.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Guid" type="Guid">
+                <xs:annotation>
+                    <xs:documentation>This attribute is deprecated. Use the Package/@Id attribute instead.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Language" type="LocalizableInteger" use="required">
+                <xs:annotation>
+                    <xs:documentation>The decimal language ID (LCID) of the merge module.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Version" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The major and minor versions of the merge module.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Dependency">
+        <xs:annotation>
+            <xs:documentation>Declares a dependency on another merge module.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="RequiredId" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Identifier of the merge module required by the merge module.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RequiredLanguage" type="xs:integer" use="required">
+                <xs:annotation><xs:documentation>Numeric language ID of the merge module in RequiredID.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RequiredVersion" type="xs:string">
+                <xs:annotation><xs:documentation>Version of the merge module in RequiredID.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Exclusion">
+        <xs:annotation>
+            <xs:documentation>Declares a merge module with which this merge module is incompatible.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="ExcludedId" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Identifier of the merge module that is incompatible.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ExcludeExceptLanguage" type="xs:integer">
+                <xs:annotation><xs:documentation>Numeric language ID of the merge module in ExcludedID. All except this language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ExcludeLanguage" type="xs:integer">
+                <xs:annotation><xs:documentation>Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ExcludedMinVersion" type="xs:string">
+                <xs:annotation><xs:documentation>Minimum version excluded from a range. If not set, all versions before max are excluded. If neither max nor min, no exclusion based on version.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ExcludedMaxVersion" type="xs:string">
+                <xs:annotation><xs:documentation>Maximum version excluded from a range. If not set, all versions after min are excluded. If neither max nor min, no exclusion based on version.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Configuration">
+        <xs:annotation>
+            <xs:documentation>Defines the configurable attributes of merge module.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Defines the name of the configurable item.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Format" use="required">
+                <xs:annotation><xs:documentation>Specifies the format of the data being changed.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:string">
+                        <xs:enumeration value="Text"/>
+                        <xs:enumeration value="Key"/>
+                        <xs:enumeration value="Integer"/>
+                        <xs:enumeration value="Bitfield"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Type" type="xs:string">
+                <xs:annotation><xs:documentation>Specifies the type of the data being changed.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ContextData" type="xs:string">
+                <xs:annotation><xs:documentation>Specifies a semantic context for the requested data.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DefaultValue" type="xs:string">
+                <xs:annotation><xs:documentation>Specifies a default value for the item in this record if the merge tool declines to provide a value.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="KeyNoOrphan" type="YesNoType">
+                <xs:annotation><xs:documentation>Does not merge rule according to rules in MSI SDK.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="NonNullable" type="YesNoType">
+                <xs:annotation><xs:documentation>If yes, null is not a valid entry.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DisplayName" type="xs:string">
+                <xs:annotation><xs:documentation>Display name for authoring.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation><xs:documentation>Description for authoring.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="HelpLocation" type="xs:string">
+                <xs:annotation><xs:documentation>Location of chm file for authoring.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="HelpKeyword" type="xs:string">
+                <xs:annotation><xs:documentation>Keyword into chm file for authoring.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+    
+    <xs:element name="Substitution">
+        <xs:annotation>
+            <xs:documentation>Specifies the configurable fields of a module database and provides a template for the configuration of each field.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Table" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Specifies the name of the table being modified in the module database.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Row" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Column" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Specifies the target column in the row named in the Row column.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string">
+                <xs:annotation><xs:documentation>Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="IgnoreTable">
+        <xs:annotation>
+            <xs:documentation>
+                Specifies a table from the merge module that is not merged into an .msi file.
+                If the table already exists in an .msi file, it is not modified by the merge.
+                The specified table can therefore contain data that is unneeded after the merge.
+                To minimize the size of the .msm file, it is recommended that developers remove
+                unused tables from modules intended for redistribution rather than creating
+                IgnoreTable elements for those tables.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        The name of the table in the merge module that is not to be merged into the .msi file.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Fragment">
+        <xs:annotation>
+            <xs:documentation>
+                The Fragment element is the building block of creating an installer database in WiX.  Once defined,
+                the Fragment becomes an immutable, atomic unit which can either be completely included or excluded
+                from a product.  The contents of a Fragment element can be linked into a product by utilizing one
+                of the many *Ref elements.  When linking in a Fragment, it will be necessary to link in all of its
+                individual units.  For instance, if a given Fragment contains two Component elements, you must link
+                both under features using ComponentRef for each linked Component.  Otherwise, you will get a linker
+                warning and have a floating Component that does not appear under any Feature.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="AppId"/>
+                <xs:element ref="Binary"/>
+                <xs:element ref="ComplianceCheck"/>
+                <xs:element ref="Component"/>
+                <xs:element ref="ComponentGroup"/>
+                <xs:element ref="Condition"/>
+                <xs:element ref="CustomAction"/>
+                <xs:element ref="CustomActionRef"/>
+                <xs:element ref="CustomTable"/>
+                <xs:element ref="Directory"/>
+                <xs:element ref="DirectoryRef"/>
+                <xs:element ref="EmbeddedChainer"/>
+                <xs:element ref="EmbeddedChainerRef"/>
+                <xs:element ref="EnsureTable"/>
+                <xs:element ref="Feature"/>
+                <xs:element ref="FeatureGroup"/>
+                <xs:element ref="FeatureRef"/>
+                <xs:element ref="Icon"/>
+                <xs:element ref="IgnoreModularization"/>
+                <xs:element ref="LayoutDirectory"/>
+                <xs:element ref="LayoutDirectoryRef"/>
+                <xs:element ref="Media"/>
+                <xs:element ref="PackageCertificates"/>
+                <xs:element ref="PatchCertificates"/>
+                <xs:element ref="PatchFamily"/>
+                <xs:element ref="Property"/>
+                <xs:element ref="PropertyRef"/>
+                <xs:element ref="SetDirectory"/>
+                <xs:element ref="SetProperty"/>
+                <xs:element ref="SFPCatalog"/>
+                <xs:element ref="UI"/>
+                <xs:element ref="UIRef"/>
+                <xs:element ref="Upgrade"/>
+                <xs:element ref="WixVariable"/>
+                <xs:sequence>
+                    <xs:element ref="InstallExecuteSequence" minOccurs="0"/>
+                    <xs:element ref="InstallUISequence" minOccurs="0"/>
+                    <xs:element ref="AdminExecuteSequence" minOccurs="0"/>
+                    <xs:element ref="AdminUISequence" minOccurs="0"/>
+                    <xs:element ref="AdvertiseExecuteSequence" minOccurs="0"/>
+                </xs:sequence>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation><xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        elements at this point in the schema.
+                    </xs:documentation></xs:annotation>
+                </xs:any>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Optional identifier for a Fragment.  Should only be set by advanced users to tag sections.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Patch">
+        <xs:annotation>
+            <xs:documentation>
+            The Patch element is analogous to the main function in a C program.  When linking, only one Patch section
+            can be given to the linker to produce a successful result.  Using this element creates an MSP file.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:remarks>
+                    <html:p>You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See <html:a href="codepage.htm">Code Pages</html:a> for more information.</html:p>
+                    <html:p>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 <html:i>ClientPatchId</html:i>.PatchCode and <html:i>ClientPatchId</html:i>.AllowRemoval. If the patch code GUID is auto-generated you could not reference any properties using this auto-generated prefix.</html:p>
+					<html:p>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 <html:code><html:nobr>[SystemFolder]msiexec.exe</html:nobr> /package [ProductCode] /uninstall [QFE1.PatchCode]</html:code>. 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 <html:i>prefix</html:i>.PatchCode property as shown above.</html:p>
+					<html:p>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.</html:p>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                     <xs:element ref="PatchInformation" minOccurs="0" maxOccurs="1">
+                        <xs:annotation>
+                            <xs:documentation>Optional element that allows overriding summary information properties.</xs:documentation>
+                        </xs:annotation>
+                    </xs:element>
+                    <xs:element ref="LayoutDirectory" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="LayoutDirectoryRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="Media" minOccurs="1" maxOccurs="unbounded"/>
+                    <xs:element ref="OptimizeCustomActions" minOccurs="0" maxOccurs="1">
+                        <xs:annotation><xs:documentation>Indicates whether custom actions can be skipped when applying the patch.</xs:documentation></xs:annotation>
+                    </xs:element>
+                    <xs:element ref="PatchFamily" minOccurs="1" maxOccurs="unbounded"/>
+                    <xs:element ref="PatchFamilyRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="PatchProperty"/>
+                    <xs:element ref="TargetProductCodes"/>
+                    <xs:any namespace="##other" processContents="lax">
+                        <xs:annotation><xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            elements at this point in the schema.
+                        </xs:documentation></xs:annotation>
+                    </xs:any>
+                </xs:choice>
+            </xs:sequence>
+
+            <xs:attribute name="Id" type="AutogenGuid">
+                <xs:annotation><xs:documentation>Patch code for this patch.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Codepage" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The code page integer value or web name for the resulting MSP. See remarks for more information.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AllowRemoval" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Whether this is an uninstallable patch.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Classification" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ClientPatchId" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ApiPatchingSymbolNoImagehlpFlag" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Flag used when creating a binary file patch. Default is &quot;no&quot;. Don't use imagehlp.dll.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ApiPatchingSymbolNoFailuresFlag" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Flag used when creating a binary file patch. Default is &quot;no&quot;. Don't fail patch due to imagehlp failures.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ApiPatchingSymbolUndecoratedTooFlag" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Flag used when creating a binary file patch. Default is &quot;no&quot;. After matching decorated symbols, try to match remaining by undecorated names.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Description of the patch.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DisplayName" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Comments" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Optional comments for browsing.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Manufacturer" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Vendor releasing the package</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MinorUpdateTargetRTM" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Indicates that the patch targets the RTM version of the product or the most recent major
+                    upgrade patch.  Author this optional property in minor update patches that contain sequencing
+                    information to indicate that the patch removes all patches up to the RTM version of the
+                    product, or up to the most recent major upgrade patch.  This property is available beginning
+                    with Windows Installer 3.1.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MoreInfoURL" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>A URL that provides information specific to this patch.  In Add/Remove Programs from XP SP2 on.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="OptimizedInstallMode" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
+                    application of the patch is optimized if possible.  Available beginning with Windows Installer 3.1.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TargetProductName" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Name of the application or target product suite.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="OptimizePatchSizeForLargeFiles" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Validate">
+        <xs:annotation>
+            <xs:documentation>Sets information in the patch transform that determines if the transform applies to an installed product and what errors should be ignored when applying the patch transform.</xs:documentation>
+            <xs:appinfo>
+                <xse:remarks>
+                    <html:p>A transform contains the differences between the target product and the upgraded product. When a transform or a patch (which contains transforms) is applied, the following properties of the installed product are validated against the properties of the target product stored in a transform.</html:p>
+                    <html:ul>
+                        <html:li>ProductCode</html:li>
+                        <html:li>ProductLanguage</html:li>
+                        <html:li>ProductVersion</html:li>
+                        <html:li>UpgradeCode</html:li>
+                    </html:ul>
+                    <html:p>Windows Installer simply validates that the ProductCode, ProductLanguage, and UpgradeCode of an installed product are equivalent to those propeties of the target product used to create the transform; however, the ProductVersion can be validated with a greater range of comparisons.</html:p>
+                    <html:p>You can compare up to the first three fields of the ProductVersion. Changes to the fourth field are not validated and are useful for small updates. You can also choose how to compare the target ProductVersion used to create the transform with the installed ProductVersion. For example, while the default value of 'Equals' is recommended, if you wanted a minor upgrade patch to apply to the target ProductVersion and all older products with the same ProductCode, you would use 'LesserOrEqual'.</html:p>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="ProductId" type="YesNoType" default="yes">
+                <xs:annotation>
+                    <xs:documentation>Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ProductLanguage" type="YesNoType" default="no">
+                <xs:annotation>
+                    <xs:documentation>Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ProductVersion" default="Update">
+                <xs:annotation>
+                    <xs:documentation>Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'.</xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="Major">
+                            <xs:annotation>
+                                <xs:documentation>Checks the major version.</xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="Minor">
+                            <xs:annotation>
+                                <xs:documentation>Checks the major and minor versions.</xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="Update">
+                            <xs:annotation>
+                                <xs:documentation>Checks the major, minor, and update versions.</xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="ProductVersionOperator" default="Equal">
+                <xs:annotation>
+                    <xs:documentation>Determines how the installed ProductVersion is compared to the target ProductVersion used to create the transform. See remarks for more information. The default is 'Equal'.</xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="Lesser">
+                            <xs:annotation>
+                                <xs:documentation>Installed ProductVersion &lt; target ProductVersion.</xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="LesserOrEqual">
+                            <xs:annotation>
+                                <xs:documentation>Installed ProductVersion &lt;= target ProductVersion.</xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="Equal">
+                            <xs:annotation>
+                                <xs:documentation>Installed ProductVersion = target ProductVersion.</xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="GreaterOrEqual">
+                            <xs:annotation>
+                                <xs:documentation>Installed ProductVersion &gt;= target ProductVersion.</xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="Greater">
+                            <xs:annotation>
+                                <xs:documentation>Installed ProductVersion &gt; target ProductVersion.</xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="UpgradeCode" type="YesNoType" default="yes">
+                <xs:annotation>
+                    <xs:documentation>Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreAddExistingRow" type="YesNoType" default="yes">
+                <xs:annotation>
+                    <xs:documentation>Ignore errors when adding existing rows. The default is 'yes'.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreAddExistingTable" type="YesNoType" default="yes">
+                <xs:annotation>
+                    <xs:documentation>Ignore errors when adding existing tables. The default is 'yes'.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreDeleteMissingRow" type="YesNoType" default="yes">
+                <xs:annotation>
+                    <xs:documentation>Ignore errors when deleting missing rows. The default is 'yes'.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreDeleteMissingTable" type="YesNoType" default="yes">
+                <xs:annotation>
+                    <xs:documentation>Ignore errors when deleting missing tables. The default is 'yes'.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreUpdateMissingRow" type="YesNoType" default="yes">
+                <xs:annotation>
+                    <xs:documentation>Ignore errors when updating missing rows. The default is 'yes'.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreChangingCodePage" type="YesNoType" default="no">
+                <xs:annotation>
+                    <xs:documentation>Ignore errors when changing the database code page. The default is 'no'.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="OptimizeCustomActions">
+        <xs:annotation>
+            <xs:documentation>Indicates whether custom actions can be skipped when applying the patch.</xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiPatchMetadata" href="http://msdn.microsoft.com/library/aa370344.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="SkipAssignment" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Skip property (type 51) and directory (type 35) assignment custom actions.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SkipImmediate" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Skip immediate custom actions that are not property or directory assignment custom actions.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SkipDeferred" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Skip custom actions that run within the script.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="PatchBaseline">
+        <xs:annotation><xs:documentation>Identifies a set of product versions.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0">
+                <xs:element ref="Validate" minOccurs="0" />
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Identifier for a set of product versions.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="PatchFamily">
+        <xs:annotation><xs:documentation>Collection of items that should be kept from the differences between two products.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:element ref="BinaryRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="ComponentRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="CustomActionRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="FeatureRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="IconRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="PropertyRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="DirectoryRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="UIRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:any namespace="##other" processContents="lax">
+                        <xs:annotation><xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            elements at this point in the schema.
+                        </xs:documentation></xs:annotation>
+                    </xs:any>
+                </xs:choice>
+            </xs:sequence>
+
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Identifier which indicates a sequence family to which this patch belongs.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ProductCode" type="Guid">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the ProductCode of the product that this family applies to.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Version" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Supersede" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
+                        The default value is 'no'.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="PatchCreation">
+        <xs:annotation>
+            <xs:documentation>
+            The PatchCreation element is analogous to the main function in a C program.  When linking, only one PatchCreation section
+            can be given to the linker to produce a successful result.  Using this element creates a pcp file.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:remarks>
+                    <html:p>You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See <html:a href="codepage.htm">Code Pages</html:a> for more information.</html:p>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="PatchInformation" />
+                <xs:element ref="PatchMetadata" minOccurs="0"/>
+                <xs:element ref="Family" maxOccurs="unbounded"/>
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:element ref="LayoutDirectory" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="LayoutDirectoryRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="PatchProperty"/>
+                    <xs:element ref="PatchSequence"/>
+                    <xs:element ref="ReplacePatch"/>
+                    <xs:element ref="TargetProductCode"/>
+                </xs:choice>
+            </xs:sequence>
+        
+            <xs:attribute name="Id" type="Guid" use="required">
+                <xs:annotation><xs:documentation>PatchCreation identifier; this is the primary key for identifying patches.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AllowMajorVersionMismatches" type="YesNoType">
+                <xs:annotation><xs:documentation>Use this to set whether the major versions between the upgrade and target images match. See <html:a href="http://msdn2.microsoft.com/library/aa370890.aspx" target="_blank">AllowProductVersionMajorMismatches</html:a> for more information.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AllowProductCodeMismatches" type="YesNoType">
+                <xs:annotation><xs:documentation>Use this to set whether the product code between the upgrade and target images match. See <html:a href="http://msdn2.microsoft.com/library/aa370890.aspx" target="_blank">AllowProductCodeMismatches</html:a> for more information.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CleanWorkingFolder" type="YesNoType">
+                <xs:annotation><xs:documentation>Use this to set whether Patchwiz should clean the temp folder when finished. See <html:a href="http://msdn2.microsoft.com/library/aa370890.aspx" target="_blank">DontRemoveTempFolderWhenFinished</html:a> for more information.	</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Codepage" type="xs:string">
+                <xs:annotation><xs:documentation>The code page integer value or web name for the resulting PCP. See remarks for more information.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="OutputPath" type="xs:string">
+                <xs:annotation><xs:documentation>The full path, including file name, of the patch package file that is to be generated. See <html:a href="http://msdn2.microsoft.com/library/aa370890.aspx" target="_blank">PatchOutputPath</html:a> for more information.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceList" type="xs:string">
+                <xs:annotation><xs:documentation>Used to locate the .msp file for the patch if the cached copy is unavailable. See <html:a href="http://msdn2.microsoft.com/library/aa370890.aspx" target="_blank">PatchSourceList</html:a> for more information.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SymbolFlags" type="xs:int">
+                <xs:annotation><xs:documentation>An 8-digit hex integer representing the combination of patch symbol usage flags to use when creating a binary file patch. See <html:a href="http://msdn2.microsoft.com/library/aa370890.aspx" target="_blank">ApiPatchingSymbolFlags</html:a> for more information.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="WholeFilesOnly" type="YesNoType">
+                <xs:annotation><xs:documentation>Use this to set whether changing files should be included in their entirety. See <html:a href="http://msdn2.microsoft.com/library/aa370890.aspx" target="_blank">IncludeWholeFilesOnly</html:a> for more information.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="PatchInformation">
+        <xs:annotation>
+            <xs:documentation>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.</xs:documentation>
+            <xs:appinfo>
+                <xse:remarks>
+                    <html:p>You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See <html:a href="codepage.htm">Code Pages</html:a> for more information.</html:p>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>A short description of the patch that includes the name of the product.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Platforms" type="xs:string">
+                <xs:annotation>
+                    <xs:appinfo>
+                        <xse:deprecated />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Languages" type="xs:string">
+                <xs:annotation>
+                    <xs:appinfo>
+                        <xse:deprecated />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Manufacturer" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The name of the manufacturer of the patch package.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Keywords" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database".</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Comments" type="xs:string">
+                <xs:annotation>
+					<xs:documentation>General purpose of the patch package. For example, "This patch contains the logic and data required to install <html:i>&lt;product&gt;</html:i>."</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ReadOnly" type="YesNoDefaultType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The value of this attribute conveys whether the package should be opened as read-only.
+                        A database editing tool should not modify a read-only enforced database and should
+                        issue a warning at attempts to modify a read-only recommended database.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SummaryCodepage" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The code page integer value or web name for summary info strings only.  The default is 1252.  See remarks for more information.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShortNames" type="YesNoType">
+                <xs:annotation>
+                    <xs:appinfo>
+                        <xse:deprecated />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Compressed" type="YesNoType">
+                <xs:annotation>
+                    <xs:appinfo>
+                        <xse:deprecated />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AdminImage" type="YesNoType">
+                <xs:annotation>
+                    <xs:appinfo>
+                        <xse:deprecated />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="PatchMetadata">
+        <xs:annotation>
+            <xs:documentation>Properties about the patch to be placed in the PatchMetadata table.</xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiPatchMetadata" href="http://msdn.microsoft.com/library/aa370344.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:element ref="CustomProperty" minOccurs="0">
+                        <xs:annotation><xs:documentation>A custom property that extends the standard set.</xs:documentation></xs:annotation>
+                    </xs:element>
+                    <xs:element ref="OptimizeCustomActions" minOccurs="0" maxOccurs="1">
+                        <xs:annotation><xs:documentation>Indicates whether custom actions can be skipped when applying the patch.</xs:documentation></xs:annotation>
+                    </xs:element>
+                </xs:choice>
+            </xs:sequence>
+
+            <xs:attribute name="AllowRemoval" type="YesNoType" use="required">
+                <xs:annotation>
+                    <xs:documentation>Whether this is an uninstallable patch.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+          <xs:attribute name="Classification" type="xs:string" use="required">
+            <xs:annotation>
+              <xs:documentation>Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup.</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+          <xs:attribute name="CreationTimeUTC" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute).</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Description of the patch.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DisplayName" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ManufacturerName" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Name of the manufacturer.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MinorUpdateTargetRTM" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Indicates that the patch targets the RTM version of the product or the most recent major
+                    upgrade patch.  Author this optional property in minor update patches that contain sequencing
+                    information to indicate that the patch removes all patches up to the RTM version of the
+                    product, or up to the most recent major upgrade patch.  This property is available beginning
+                    with Windows Installer 3.1.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MoreInfoURL" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>A URL that provides information specific to this patch.  In Add/Remove Programs from XP SP2 on.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="OptimizedInstallMode" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    If this attribute is set to 'yes' in all the patches to be applied in a transaction, the
+                    application of the patch is optimized if possible.  Available beginning with Windows Installer 3.1.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TargetProductName" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Name of the application or target product suite.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="CustomProperty">
+        <xs:annotation><xs:documentation>A custom property for the PatchMetadata table.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Company" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The name of the company.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Property" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The name of the metadata property.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Value of the metadata property.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ReplacePatch">
+        <xs:annotation><xs:documentation>A patch that is deprecated by this patch.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="Guid" use="required">
+                <xs:annotation>
+                    <xs:documentation>Patch GUID to be unregistered if it exists on the machine targeted by this patch.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="TargetProductCodes">
+        <xs:annotation>
+            <xs:documentation>
+                The product codes for products that can accept the patch.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice maxOccurs="unbounded">
+                <xs:element ref="TargetProductCode"/>
+            </xs:choice>
+            <xs:attribute name="Replace" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Whether to replace the product codes that can accept the patch from the target packages with the child elements.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="TargetProductCode">
+        <xs:annotation>
+            <xs:documentation>
+                A product code for a product that can accept the patch.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:remarks>
+                    <html:p>When using the PatchCreation element, if the Id attribute value is '*' or this element is not authored, the product codes of all products referenced by the TargetImages element are used.</html:p>
+                    <html:p>When using the Patch element, the Id attribute value must not be '*'. Use the TargetProductCodes/@Replace attribute instead.</html:p>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        The product code for a product that can accept the patch. This can be '*'. See remarks for more information.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+    
+    <xs:element name="PatchProperty">
+        <xs:annotation>
+            <xs:documentation>A property for this patch database.</xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiPatchMetadata" href="http://msdn.microsoft.com/library/aa370344.aspx"/>
+                <xse:remarks>
+                    <html:p>When authored under the Patch element, the PatchProperty defines entries in the MsiPatchMetadata table.</html:p>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Company" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Name of the company for a custom metadata property.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Name of the patch property.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Value of the patch property.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+    
+    <xs:element name="PatchSequence">
+        <xs:annotation>
+            <xs:documentation>Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly.</xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiPatchSequence" href="http://msdn.microsoft.com/library/aa370350.aspx" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="PatchFamily" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Identifier which indicates a sequence family to which this patch belongs.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ProductCode" type="Guid">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the ProductCode of the product that this family applies to.
+                        This attribute cannot the specified if the TargetImage attribute is specified.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Sequence" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Supersede" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family.
+                        The default value is 'no'.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Target" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the TargetImage attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="TargetImage" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TargetImage" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the TargetImage that this family applies to.
+                        This attribute cannot the specified if the ProductCode attribute is specified.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Family">
+        <xs:annotation><xs:documentation>Group of one or more upgraded images of a product.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="UpgradeImage" maxOccurs="unbounded"/>
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:element ref="ExternalFile"/>
+                    <xs:element ref="ProtectFile"/>
+                </xs:choice>
+            </xs:sequence>
+
+            <xs:attribute name="DiskId" type="xs:int">
+                <xs:annotation><xs:documentation>Entered into the DiskId field of the new Media table record.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DiskPrompt" type="xs:string">
+                <xs:annotation><xs:documentation>Value to display in the "[1]" of the DiskPrompt Property.  Using this attribute will require you to define a DiskPrompt Property.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MediaSrcProp" type="xs:string">
+                <xs:annotation><xs:documentation>Entered into the Source field of the new Media table entry of the upgraded image.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Identifier for the family.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SequenceStart" type="xs:int">
+                <xs:annotation><xs:documentation>Sequence number for the starting file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="VolumeLabel" type="xs:string">
+                <xs:annotation><xs:documentation>Entered into the VolumeLabel field of the new Media table record.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+    
+    <xs:element name="UpgradeImage">
+        <xs:annotation><xs:documentation>Contains information about the upgraded images of the product.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="TargetImage" maxOccurs="unbounded"/>
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:element ref="SymbolPath"/>
+                    <xs:element ref="UpgradeFile"/>
+                </xs:choice>
+            </xs:sequence>
+            
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Identifier to connect target images with upgraded image.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceFile" type="xs:string">
+                <xs:annotation><xs:documentation>Full path to location of msi file for upgraded image.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="src" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the SourceFile attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="SourceFile" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourcePatch" type="xs:string">
+                <xs:annotation><xs:documentation>Modified copy of the upgraded installation database that contains additional authoring specific to patching.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="srcPatch" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the SourcePatch attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="SourcePatch" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+    
+    <xs:element name="TargetImage">
+        <xs:annotation><xs:documentation>Contains information about the target images of the product.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="SymbolPath"/>
+                <xs:element ref="TargetFile"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Identifier for the target image.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceFile" type="xs:string">
+                <xs:annotation><xs:documentation>Full path to the location of the msi file for the target image.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="src" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the SourceFile attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="SourceFile" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Order" type="xs:int" use="required">
+                <xs:annotation><xs:documentation>Relative order of the target image.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Validation" type="xs:string">
+                <xs:annotation><xs:documentation>Product checking to avoid applying irrelevant transforms.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreMissingFiles" type="YesNoType">
+                <xs:annotation><xs:documentation>Files missing from the target image are ignored by the installer.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+    
+    <xs:element name="TargetFile">
+        <xs:annotation><xs:documentation>Information about specific files in a target image.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="SymbolPath" minOccurs="0"/>
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:element ref="IgnoreRange"/>
+                    <xs:element ref="ProtectRange"/>
+                </xs:choice>
+            </xs:sequence>
+            
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Foreign key into the File table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+    
+    <xs:element name="IgnoreRange">
+        <xs:annotation><xs:documentation>Specifies part of a file that is to be ignored during patching.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Offset" type="xs:int" use="required">
+                <xs:annotation><xs:documentation>Offset of the start of the range.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Length" type="xs:int" use="required">
+                <xs:annotation><xs:documentation>Length of the range.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ProtectRange">
+        <xs:annotation><xs:documentation>Specifies part of a file that cannot be overwritten during patching.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Offset" type="xs:int" use="required">
+                <xs:annotation><xs:documentation>Offset of the start of the range.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Length" type="xs:int" use="required">
+                <xs:annotation><xs:documentation>Length of the range.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ProtectFile">
+        <xs:annotation><xs:documentation>Specifies a file to be protected.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:choice maxOccurs="unbounded">
+                <xs:element ref="ProtectRange"/>
+            </xs:choice>
+
+            <xs:attribute name="File" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Foreign key into the File table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ExternalFile">
+        <xs:annotation><xs:documentation>Contains information about specific files that are not part of a regular target image.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="ProtectRange" maxOccurs="unbounded"/>
+                <xs:element ref="SymbolPath" maxOccurs="unbounded"/>
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:element ref="IgnoreRange"/>
+                </xs:choice>
+            </xs:sequence>
+            
+            <xs:attribute name="File" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Foreign key into the File table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Source" type="xs:string">
+                <xs:annotation><xs:documentation>Full path of the external file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="src" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the Source attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="Source" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Order" type="xs:int" use="required">
+                <xs:annotation><xs:documentation>Specifies the order of the external files to use when creating the patch.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="UpgradeFile">
+        <xs:annotation><xs:documentation>Specifies files to either ignore or to specify optional data about a file.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="SymbolPath"/>
+            </xs:choice>
+            
+            <xs:attribute name="File" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Foreign key into the File table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Ignore" type="YesNoType" use="required">
+                <xs:annotation><xs:documentation>If yes, the file is ignored during patching, and the next two attributes are ignored.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AllowIgnoreOnError" type="YesNoType">
+                <xs:annotation><xs:documentation>Specifies whether patching this file is vital.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="WholeFile" type="YesNoType">
+                <xs:annotation><xs:documentation>Whether the whole file should be installed, rather than creating a binary patch.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="SymbolPath">
+        <xs:annotation><xs:documentation>A path to symbols.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Path" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The path.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+  
+    <xs:element name="Package">
+        <xs:annotation>
+            <xs:documentation>
+            Properties about the package to be placed in the Summary Information Stream.  These are
+            visible from COM through the IStream interface, and these properties can be seen on the package in Explorer.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:remarks>
+                    <html:p>You can specify any valid Windows code by by integer like 1252, or by web name like Windows-1252. See <html:a href="codepage.htm">Code Pages</html:a> for more information.</html:p>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="AutogenGuid">
+                <xs:annotation>
+                    <xs:documentation>
+                        The package code GUID for a product or merge module.
+                        When compiling a product, this attribute should not be set in order to allow the package
+                        code to be generated for each build.
+                        When compiling a merge module, this attribute must be set to the modularization guid.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AdminImage" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Set to 'yes' if the source is an admin image.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Comments" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Optional comments for browsing.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Compressed" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set to 'yes' to have compressed files in the source.
+                        This attribute cannot be set for merge modules.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The product full name or description.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="InstallPrivileges">
+                <xs:annotation>
+                    <xs:documentation>Use this attribute to specify the priviliges required to install the package on Windows Vista and above.</xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="limited">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Set this value to declare that the package does not require elevated privileges to install.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="elevated">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Set this value to declare that the package requires elevated privileges to install.
+                                    This is the default value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="InstallScope">
+                <xs:annotation>
+                    <xs:documentation>Use this attribute to specify the installation scope of this package: per-machine or per-user.</xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="perMachine">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Set this value to declare that the package is a per-machine installation and requires elevated privileges to install.
+                                    Sets the ALLUSERS property to 1.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="perUser">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Set this value to declare that the package is a per-user installation and does not require elevated privileges to install.
+                                    Sets the package's InstallPrivileges attribute to "limited."
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="InstallerVersion" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>
+                        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 is set to 200 by default as
+                        Windows Installer 2.0 was the first version to support 64-bit packages.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Keywords" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Optional keywords for browsing.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Languages" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The list of language IDs (LCIDs) supported in the package.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Manufacturer" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The vendor releasing the package.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Platforms" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The list of platforms supported by the package. This attribute has been deprecated.
+                        Use the Platform attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="Platform" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Platform">
+                <xs:annotation>
+                    <xs:documentation>The platform supported by the package.</xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="x86">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Set this value to declare that the package is an x86 package.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="ia64">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Set this value to declare that the package is an ia64 package.
+                                    This value requires that the InstallerVersion property be set to 200 or greater.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="x64">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Set this value to declare that the package is an x64 package.
+                                    This value requires that the InstallerVersion property be set to 200 or greater.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="intel">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    This value has been deprecated. Use &quot;x86&quot; instead.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="intel64">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    This value has been deprecated. Use &quot;ia64&quot; instead.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="ReadOnly" type="YesNoDefaultType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The value of this attribute conveys whether the package should be opened as read-only.
+                        A database editing tool should not modify a read-only enforced database and should
+                        issue a warning at attempts to modify a read-only recommended database.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShortNames" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Set to 'yes' to have short filenames in the source.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SummaryCodepage" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The code page integer value or web name for summary info strings only.  See remarks for more information.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="AssemblyName">
+        <xs:annotation>
+            <xs:documentation>
+                The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly.
+                Consider using the Assembly attribute on File element to have the toolset populate these entries automatically.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiAssemblyName" href="http://msdn.microsoft.com/library/aa370062.aspx" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Name of the attribute associated with the value specified in the Value column.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string">
+                <xs:annotation><xs:documentation>Value associated with the name specified in the Name column.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="PatchCertificates">
+        <xs:annotation>
+            <xs:documentation>
+                Identifies the possible signer certificates used to digitally sign patches.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiPatchCertificate" href="http://msdn.microsoft.com/library/aa370342.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice maxOccurs="unbounded">
+                <xs:element ref="DigitalCertificate" />
+            </xs:choice>
+        </xs:complexType>
+    </xs:element>
+  
+    <xs:element name="PackageCertificates">
+      <xs:annotation>
+        <xs:documentation>
+          Digital signatures that identify installation packages in a multi-product transaction.
+        </xs:documentation>
+        <xs:appinfo>
+          <xse:msiRef table="MsiPackageCertificate" href="http://msdn.microsoft.com/library/cc542575.aspx" />
+        </xs:appinfo>
+      </xs:annotation>
+      <xs:complexType>
+        <xs:choice maxOccurs="unbounded">
+          <xs:element ref="DigitalCertificate" />
+        </xs:choice>
+      </xs:complexType>
+    </xs:element>
+
+    <xs:element name="DigitalCertificate">
+        <xs:annotation>
+            <xs:documentation>
+                Adds a digital certificate.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiDigitalCertificate" href="http://msdn.microsoft.com/library/aa370086.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Identifier for a certificate file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceFile" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The path to the certificate file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="DigitalSignature">
+        <xs:annotation>
+            <xs:documentation>
+                Adds a digital signature.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiDigitalSignature" href="http://msdn.microsoft.com/library/aa370087.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice>
+                <xs:element ref="DigitalCertificate"/>
+            </xs:choice>
+
+            <xs:attribute name="SourceFile" type="xs:string">
+                <xs:annotation><xs:documentation>The path to signature's optional hash file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="SFPCatalog">
+        <xs:annotation>
+            <xs:documentation>
+                Adds a system file protection update catalog file
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="SFPCatalog" href="http://msdn.microsoft.com/library/aa371833.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="SFPCatalog" minOccurs="0" maxOccurs="unbounded"/>
+                <xs:element ref="SFPFile" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Primary Key to File Table.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:choice>
+
+            <xs:attribute name="Name" type="xs:string">
+                <xs:annotation><xs:documentation>Filename for catalog file when installed.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Dependency" type="xs:string">
+                <xs:annotation><xs:documentation>Used to define dependency outside of the package.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceFile" type="xs:string">
+                <xs:annotation><xs:documentation>Path to catalog file in binary.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="SFPFile">
+        <xs:annotation>
+            <xs:documentation>
+                Provides a many-to-many mapping from the SFPCatalog table to the File table
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="FileSFPCatalog" href="http://msdn.microsoft.com/library/aa368591.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Primary Key to File Table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            </xs:complexType>
+    </xs:element>
+
+    <xs:element name="IniFile">
+        <xs:annotation>
+            <xs:documentation>
+                Adds or removes .ini file entries.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="IniFile" href="http://msdn.microsoft.com/library/aa369282.aspx"/>
+                <xse:msiRef table="RemoveIniFile" href="http://msdn.microsoft.com/library/aa371204.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Identifier for ini file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Action" use="required">
+                <xs:annotation><xs:documentation>The type of modification to be made.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="addLine">
+                            <xs:annotation><xs:documentation>Creates or updates an .ini entry.</xs:documentation></xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="addTag">
+                            <xs:annotation><xs:documentation>Creates a new entry or appends a new comma-separated value to an existing entry.</xs:documentation></xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="createLine">
+                            <xs:annotation><xs:documentation>Creates an .ini entry only if the entry does no already exist.</xs:documentation></xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="removeLine">
+                            <xs:annotation><xs:documentation>Removes an .ini entry.</xs:documentation></xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="removeTag">
+                            <xs:annotation><xs:documentation>Removes a tag from an .ini entry.</xs:documentation></xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Directory" type="xs:string">
+                <xs:annotation><xs:documentation>Name of a property, the value of which is the full path of the folder containing the .ini file. Can be name of a directory in the Directory table, a property set by the AppSearch table, or any other property representing a full path.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Key" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>The localizable .ini file key within the section.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LongName" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the Name attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="Name" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="LongFileNameType" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        In prior versions of the WiX toolset, this attribute specified the short name.
+                        This attribute's value may now be either a short or long name.
+                        If a short name is specified, the ShortName attribute may not be specified.
+                        If a long name is specified, the LongName attribute may not be specified.
+                        Also, if this value is a long name, the ShortName attribute may be omitted to
+                        allow WiX to attempt to generate a unique short name.
+                        However, if this name collides with another file or you wish to manually specify
+                        the short name, then the ShortName attribute may be specified.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Section" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>The localizable .ini file section.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShortName" type="ShortFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The short name of the in 8.3 format.
+                        This attribute should only be set if there is a conflict between generated short names
+                        or the user wants to manually specify the short name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The localizable value to be written or deleted.  This attribute must be set if
+                        the Action attribute's value is "addLine", "addTag", or "createLine".
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ODBCDataSource">
+        <xs:annotation>
+            <xs:documentation>
+                ODBCDataSource for a Component
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ODBCDataSource" href="http://msdn.microsoft.com/library/aa370546.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="Property" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Translates into ODBCSourceAttributes</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:sequence>
+
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Identifier of the data source.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Name for the data source.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DriverName" type="xs:string">
+                <xs:annotation><xs:documentation>Required if not found as child of ODBCDriver element</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Registration" use="required">
+                <xs:annotation><xs:documentation>Scope for which the data source should be registered.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="machine">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Data source is registered per machine.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="user">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Data source is registered per user.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="KeyPath" type="YesNoType">
+                <xs:annotation><xs:documentation>Set 'yes' to force this file to be key path for parent Component</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ODBCDriver">
+        <xs:annotation>
+            <xs:documentation>
+                ODBCDriver for a Component
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ODBCDriver" href="http://msdn.microsoft.com/library/aa370547.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="Property" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Translates into ODBCSourceAttributes</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ODBCDataSource" minOccurs="0" maxOccurs="unbounded"/>
+            </xs:sequence>
+
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Identifier for the driver.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Name for the driver.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="File" type="xs:string">
+                <xs:annotation><xs:documentation>Required if not found as child of File element</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SetupFile" type="xs:string">
+                <xs:annotation><xs:documentation>Required if not found as child of File element or different from File attribute above</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ODBCTranslator">
+        <xs:annotation>
+            <xs:documentation>
+                ODBCTranslator for a Component
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ODBCTranslator" href="http://msdn.microsoft.com/library/aa370549.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Identifier for the translator.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Name for the translator.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="File" type="xs:string">
+                <xs:annotation><xs:documentation>Required if not found as child of File element</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SetupFile" type="xs:string">
+                <xs:annotation><xs:documentation>Required if not found as child of File element or different from File attribute above</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="FileSearch">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="ComponentSearch"/>
+                <xse:seeAlso ref="DirectorySearch"/>
+                <xse:seeAlso ref="DirectorySearchRef"/>
+                <xse:seeAlso ref="FileSearchRef"/>
+                <xse:seeAlso ref="IniFileSearch"/>
+                <xse:seeAlso ref="RegistrySearch"/>
+                <xse:msiRef table="DrLocator" href="http://msdn.microsoft.com/library/aa368331.aspx"/>
+                <xse:msiRef table="Signature" href="http://msdn.microsoft.com/library/aa371853.aspx"/>
+                <xse:howtoRef href="check_the_version_number.htm">How To: Check the version number of a file during installation</xse:howtoRef>
+                <xse:remarks>
+                    <html:a>When the parent DirectorySearch/@Depth attribute is greater than 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'.</html:a>
+                </xse:remarks>
+            </xs:appinfo>
+            <xs:documentation>Searches for file and assigns to fullpath value of parent Property</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation><xs:documentation>Unique identifier for the file search and external key into the Signature table. If this attribute value is not set then the parent element's @Id attribute is used.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        In prior versions of the WiX toolset, this attribute specified the short file name.
+                        This attribute's value may now be either a short or long file name.
+                        If a short file name is specified, the ShortName attribute may not be specified.
+                        If a long file name is specified, the LongName attribute may not be specified.
+                        If you wish to manually specify the short file name, then the ShortName
+                        attribute may be specified.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LongName" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the Name attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="Name" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShortName" type="ShortFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The short file name of the file in 8.3 format.
+                        There is a Windows Installer bug which prevents the FileSearch functionality from working
+                        if both a short and long file name are specified.  Since the Name attribute allows either
+                        a short or long name to be specified, it is the only attribute related to file names which
+                        should be specified.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MinSize" type="xs:int">
+                <xs:annotation><xs:documentation>The minimum size of the file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MaxSize" type="xs:int">
+                <xs:annotation><xs:documentation>The maximum size of the file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MinVersion" type="xs:string">
+                <xs:annotation><xs:documentation>The minimum version of the file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MaxVersion" type="xs:string">
+                <xs:annotation><xs:documentation>The maximum version of the file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MinDate" type="xs:dateTime">
+                <xs:annotation><xs:documentation>The minimum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MaxDate" type="xs:dateTime">
+                <xs:annotation><xs:documentation>The maximum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Languages" type="xs:string">
+                <xs:annotation><xs:documentation>The languages supported by the file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="FileSearchRef">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="FileSearch"/>
+                <xse:remarks>
+                    <html:p>A reference to another FileSearch element must reference the same Id and the same Parent Id. If any of these attribute values are different you must instead use a FileSearch element.</html:p>
+                </xse:remarks>
+            </xs:appinfo>
+            <xs:documentation>References an existing FileSearch element.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Specify the Id to the FileSearch to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="DirectorySearch">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="ComponentSearch"/>
+                <xse:seeAlso ref="IniFileSearch"/>
+                <xse:seeAlso ref="RegistrySearch"/>
+                <xse:msiRef table="DrLocator" href="http://msdn.microsoft.com/library/aa368331.aspx"/>
+                <xse:msiRef table="Signature" href="http://msdn.microsoft.com/library/aa371853.aspx"/>
+                <xse:howtoRef href="check_the_version_number.htm">How To: Check the version number of a file during installation</xse:howtoRef>
+                <xse:howtoRef href="directorysearchref.htm">How To: Reference another DirectorySearch element</xse:howtoRef>
+                <xse:howtoRef href="parentdirectorysearch.htm">How To: Get the parent directory of a file search</xse:howtoRef>
+                <xse:remarks>
+                    <html:p>Use the AssignToProperty attribute to search for a file but set the outer property to the directory containing the file. When this attribute is set to 'yes', you may only nest a FileSearch element with a unique Id or define no child element.</html:p>
+                    <html:a>When the parent DirectorySearch/@Depth attribute is greater than 1, the FileSearch/@Id attribute must be absent or the same as the parent DirectorySearch/@Id attribute value, unless the parent DirectorySearch/@AssignToProperty attribute value is 'yes'.</html:a>
+                </xse:remarks>
+            </xs:appinfo>
+            <xs:documentation>Searches for directory and assigns to value of parent Property.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0">
+                <xs:element ref="DirectorySearch"/>
+                <xs:element ref="DirectorySearchRef"/>
+                <xs:element ref="FileSearch"/>
+                <xs:element ref="FileSearchRef"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Unique identifier for the directory search.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Path" type="xs:string">
+                <xs:annotation><xs:documentation>Path on the user's system. Either absolute, or relative to containing directories.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Depth" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>
+                        Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AssignToProperty" type="YesNoType">
+                <xs:annotation><xs:documentation>Set the value of the outer Property to the result of this search. See remarks for more information.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="DirectorySearchRef">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="ComponentSearch"/>
+                <xse:seeAlso ref="IniFileSearch"/>
+                <xse:seeAlso ref="RegistrySearch"/>
+                <xse:howtoRef href="directorysearchref.htm">How To: Reference another DirectorySearch element</xse:howtoRef>
+                <xse:remarks>
+                    <html:p>A reference to another DirectorySearch element must reference the same Id, the same Parent Id, and the same Path. If any of these attribute values are different you must instead use a DirectorySearch element.</html:p>
+                </xse:remarks>
+            </xs:appinfo>
+            <xs:documentation>References an existing DirectorySearch element.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0">
+                <xs:element ref="DirectorySearch"/>
+                <xs:element ref="DirectorySearchRef"/>
+                <xs:element ref="FileSearch"/>
+                <xs:element ref="FileSearchRef"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Id of the search being referred to.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Parent" type="xs:string">
+                <xs:annotation><xs:documentation>This attribute is the signature of the parent directory of the file or directory in the Signature_ column. If this field is null, and the Path column does not expand to a full path, then all the fixed drives of the user's system are searched by using the Path.  This field is a key into one of the following tables: the RegLocator, the IniLocator, the CompLocator, or the DrLocator tables.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Path" type="xs:string">
+                <xs:annotation><xs:documentation>Path on the user's system. Either absolute, or relative to containing directories.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ComponentSearch">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="IniFileSearch"/>
+                <xse:seeAlso ref="RegistrySearch"/>
+                <xse:msiRef table="CompLocator" href="http://msdn.microsoft.com/library/aa368001.aspx"/>
+                <xse:msiRef table="Signature" href="http://msdn.microsoft.com/library/aa371853.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Searches for file or directory and assigns to value of parent Property.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0">
+                <xs:element ref="DirectorySearch"/>
+                <xs:element ref="DirectorySearchRef"/>
+                <xs:element ref="FileSearch"/>
+                <xs:element ref="FileSearchRef"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" use="required" type="xs:string"/>
+            <xs:attribute name="Guid" type="Guid">
+                <xs:annotation><xs:documentation>The component ID of the component whose key path is to be used for the search.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Type">
+                <xs:annotation><xs:documentation>Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="directory">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The key path of the component is a directory.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="file">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The key path of the component is a file.  This is the default value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="IniFileSearch">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="ComponentSearch"/>
+                <xse:seeAlso ref="RegistrySearch"/>
+                <xse:msiRef table="IniLocator" href="http://msdn.microsoft.com/library/aa369283.aspx"/>
+                <xse:msiRef table="Signature" href="http://msdn.microsoft.com/library/aa371853.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Searches for file, directory or registry key and assigns to value of parent Property</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0">
+                <xs:element ref="DirectorySearch"/>
+                <xs:element ref="DirectorySearchRef"/>
+                <xs:element ref="FileSearch"/>
+                <xs:element ref="FileSearchRef"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>External key into the Signature table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Field" type="xs:integer">
+                <xs:annotation><xs:documentation>The field in the .ini line. If field is Null or 0, the entire line is read.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Key" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>The key value within the section.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LongName" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the Name attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="Name" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="LongFileNameType" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        In prior versions of the WiX toolset, this attribute specified the short name.
+                        This attribute's value may now be either a short or long name.
+                        If a short name is specified, the ShortName attribute may not be specified.
+                        If a long name is specified, the LongName attribute may not be specified.
+                        Also, if this value is a long name, the ShortName attribute may be omitted to
+                        allow WiX to attempt to generate a unique short name.
+                        However, if you wish to manually specify the short name, then the ShortName
+                        attribute may be specified.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Section" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The localizable .ini file section.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShortName" type="ShortFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The short name of the file in 8.3 format.
+                        This attribute should only be set if the user wants to manually specify the short name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Type">
+                <xs:annotation><xs:documentation>Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="directory">
+                            <xs:annotation><xs:documentation>A directory location.</xs:documentation></xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="file">
+                            <xs:annotation><xs:documentation>A file location.  This is the default value.</xs:documentation></xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="raw">
+                            <xs:annotation><xs:documentation>A raw .ini value.</xs:documentation></xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="RegistrySearch">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="ComponentSearch"/>
+                <xse:seeAlso ref="IniFileSearch"/>
+                <xse:msiRef table="RegLocator" href="http://msdn.microsoft.com/library/aa371171.aspx"/>
+                <xse:msiRef table="Signature" href="http://msdn.microsoft.com/library/aa371853.aspx"/>
+                <xse:howtoRef href="read_a_registry_entry.htm">How To: Read a registry entry during installation</xse:howtoRef>
+                <xse:remarks>
+                    <html:p>
+                        When the Type attribute value is 'directory' the registry value must specify the path to a directory excluding the file name.
+                        When the Type attribute value is 'file' the registry value must specify the path to a file including the file name;
+                        however, if there is no child FileSearch element the parent directory of the file is returned. The FileSearch element requires
+                        that you author the name of the file you are searching for. If you do not know the file name
+                        you must set the Type attribute to 'raw' to return the full file path including the file name.
+                    </html:p>
+                </xse:remarks>
+            </xs:appinfo>
+            <xs:documentation>Searches for file, directory or registry key and assigns to value of parent Property</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0">
+                <xs:element ref="DirectorySearch"/>
+                <xs:element ref="DirectorySearchRef"/>
+                <xs:element ref="FileSearch"/>
+                <xs:element ref="FileSearchRef"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Signature to be used for the file, directory or registry key being searched for.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Root" use="required">
+                <xs:annotation><xs:documentation>Root key for the registry value.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="HKCR">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    HKEY_CLASSES_ROOT
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="HKCU">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    HKEY_CURRENT_USER
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="HKLM">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    HKEY_LOCAL_MACHINE
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="HKU">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    HKEY_USERS
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Key" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Key for the registry value.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string">
+                <xs:annotation><xs:documentation>Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Type" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="directory">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The registry value contains the path to a directory.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="file">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The registry value contains the path to a file. To return the full file path you must add a FileSearch element as a child of this element; otherwise, the parent directory of the file path is returned.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="raw">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Sets the raw value from the registry value.  Please note that this value will contain a prefix as follows:<html:br/><html:br/>
+                                    <html:dl>
+                                        <html:dt>DWORD</html:dt>
+                                        <html:dd>Starts with '#' optionally followed by '+' or '-'.</html:dd>
+                                        <html:dt>REG_BINARY</html:dt>
+                                        <html:dd>Starts with '#x' and the installer converts and saves each hexadecimal digit (nibble) as an ASCII character prefixed by '#x'.</html:dd>
+                                        <html:dt>REG_EXPAND_SZ</html:dt>
+                                        <html:dd>Starts with '#%'.</html:dd>
+                                        <html:dt>REG_MULTI_SZ</html:dt>
+                                        <html:dd>Starts with '[~]' and ends with '[~]'.</html:dd>
+                                        <html:dt>REG_SZ</html:dt>
+                                        <html:dd>No prefix, but if the first character of the registry value is '#', the installer escapes the character by prefixing it with another '#'.</html:dd>
+                                    </html:dl>
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Win64" type="YesNoType">
+                <xs:annotation><xs:documentation>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'.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="RegistrySearchRef">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="RegistrySearch"/>
+            </xs:appinfo>
+            <xs:documentation>References an existing RegistrySearch element.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Specify the Id of the RegistrySearch to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ComplianceDrive">
+        <xs:annotation><xs:documentation>Sets the parent of a nested DirectorySearch element to CCP_DRIVE.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:choice>
+                <xs:element ref="DirectorySearch"/>
+                <xs:element ref="DirectorySearchRef"/>
+            </xs:choice>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ComplianceCheck">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Property"/>
+                <xse:msiRef table="CCPSearch" href="http://msdn.microsoft.com/library/aa367846.aspx"/>
+                <xse:msiRef table="Signature" href="http://msdn.microsoft.com/library/aa371853.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Adds a row to the CCPSearch table.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:sequence>
+                    <xs:element ref="ComplianceDrive" minOccurs="0">
+                        <xs:annotation><xs:documentation>Starts searches from the CCP_DRIVE.</xs:documentation></xs:annotation>
+                    </xs:element>
+                    <xs:element ref="ComponentSearch" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="RegistrySearch" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="IniFileSearch" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="DirectorySearch" minOccurs="0" maxOccurs="unbounded"/>
+                </xs:sequence>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation><xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        elements at this point in the schema.
+                    </xs:documentation></xs:annotation>
+                </xs:any>
+            </xs:choice>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Property">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="PropertyRef"/>
+                <xse:msiRef table="Property" href="http://msdn.microsoft.com/library/aa370908.aspx"/>
+                <xse:howtoRef href="check_the_version_number.htm">How To: Check the version number of a file during installation</xse:howtoRef>                
+            </xs:appinfo>
+            <xs:documentation>Property value for a Product or Module.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType mixed="true">
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:sequence>
+                    <xs:element ref="ComplianceDrive" minOccurs="0">
+                        <xs:annotation><xs:documentation>Starts searches from the CCP_DRIVE.</xs:documentation></xs:annotation>
+                    </xs:element>
+                    <xs:element ref="ComponentSearch" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="RegistrySearch" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="RegistrySearchRef" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="IniFileSearch" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="DirectorySearch" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="DirectorySearchRef" minOccurs="0" maxOccurs="unbounded"/>
+                </xs:sequence>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation><xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        elements at this point in the schema.
+                    </xs:documentation></xs:annotation>
+                </xs:any>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Unique identifier for Property.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string">
+                <xs:annotation><xs:documentation>Sets a default value for the property.  The value will be overwritten if the Property is used for a search.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ComplianceCheck" type="YesNoType">
+                <xs:annotation><xs:documentation>Adds a row to the CCPSearch table.  This attribute is only valid when this Property contains a search element.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Admin" type="YesNoType">
+                <xs:annotation><xs:documentation>Denotes that the Property is saved during <html:a href='http://msdn.microsoft.com/library/aa367541.aspx' target='_blank'>admininistrative installation</html:a>. See the <html:a href='http://msdn.microsoft.com/library/aa367542.aspx' target='_blank'>AdminProperties Property</html:a> for more information.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Secure" type="YesNoType">
+                <xs:annotation><xs:documentation>Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the <html:a href='http://msdn.microsoft.com/library/aa371571.aspx' target='_blank'>SecureCustomProperties Property</html:a> for more information.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Hidden" type="YesNoType">
+                <xs:annotation><xs:documentation>Denotes that the Property is not logged during installation. See the <html:a href='http://msdn.microsoft.com/library/aa370308.aspx' target='_blank'>MsiHiddenProperties Property</html:a> for more information.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SuppressModularization" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Use to suppress modularization of this property identifier in merge modules.
+                        Using this functionality is strongly discouraged; it should only be
+                        necessary as a workaround of last resort in rare scenarios.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="PropertyRef">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Property"/>
+                <xse:howtoRef href="check_for_dotnet.htm">How To: Check for .NET Framework versions</xse:howtoRef>
+            </xs:appinfo>
+            <xs:documentation>Reference to a Property value.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Identifier of Property to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Shortcut">
+        <xs:annotation>
+            <xs:documentation>
+                Shortcut, default target is parent File, CreateFolder, or Component's Directory
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Shortcut" href="http://msdn.microsoft.com/library/aa371847.aspx"/>
+                <xse:howtoRef href="create_start_menu_shortcut.htm">How To: Create a shortcut on the Start Menu</xse:howtoRef>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Icon" minOccurs="0" />
+                <xs:element ref="ShortcutProperty" minOccurs="0" />
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Unique identifier for the shortcut. This value will serve as the primary key for the row.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Directory" type="xs:string">
+                <xs:annotation><xs:documentation>Identifier reference to Directory element where shortcut is to be created. When nested under a Component element, this attribute's value will default to the parent directory. Otherwise, this attribute is required.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="LongFileNameType" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        In prior versions of the WiX toolset, this attribute specified the short name.
+                        This attribute's value may now be either a short or long name.
+                        If a short name is specified, the ShortName attribute may not be specified.
+                        If a long name is specified, the LongName attribute may not be specified.
+                        Also, if this value is a long name, the ShortName attribute may be omitted to
+                        allow WiX to attempt to generate a unique short name.
+                        However, if this name collides with another shortcut or you wish to manually specify
+                        the short name, then the ShortName attribute may be specified.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LongName" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the Name attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="Name" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShortName" type="ShortFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The short name of the shortcut in 8.3 format.
+                        This attribute should only be set if there is a conflict between generated short names
+                        or the user wants to manually specify the short name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Target" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute can only be set if this Shortcut element is nested under a Component element.
+                        When nested under a Component element, this attribute's value will default to the parent directory.
+                        This attribute's value is the target for a non-advertised shortcut.
+                        This attribute is not valid for advertised shortcuts.
+                        If you specify this value, its value should be a property identifier enclosed by square brackets ([ ]), that is expanded into the file or a folder pointed to by the shortcut.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation><xs:documentation>The localizable description for the shortcut.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Arguments" type="xs:string">
+                <xs:annotation><xs:documentation>The command-line arguments for the shortcut. Note that the resolution of properties 
+                in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the 
+                property already has the intended value when the component owning the shortcut is installed. For example, for the 
+                argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and 
+                the component that owns the shortcut.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Hotkey" type="xs:integer">
+                <xs:annotation><xs:documentation>The hotkey for the shortcut. The low-order byte contains the virtual-key code for 
+                the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of 
+                installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a 
+                users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys 
+                for accessibility.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Icon" type="xs:string">
+                <xs:annotation><xs:documentation>Identifier reference to Icon element. The Icon identifier should have the same extension 
+                as the file that it points at.  For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier
+                like "MyIcon.exe"</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IconIndex" type="xs:integer">
+                <xs:annotation><xs:documentation>Identifier reference to Icon element.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Show">
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="normal">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The shortcut target will be displayed using the SW_SHOWNORMAL attribute.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="minimized">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="maximized">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="WorkingDirectory" type="xs:string">
+                <xs:annotation><xs:documentation>Directory identifier (or Property identifier that resolves to a directory) that resolves
+                to the path of the working directory for the shortcut.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Advertise" type="YesNoType">
+                <xs:annotation><xs:documentation>Specifies if the shortcut should be advertised or not. Note that advertised shortcuts 
+                always point at a particular application, identified by a ProductCode, and should not be shared between applications. 
+                Advertised shortcuts only work for the most recently installed application, and are removed when that application is 
+                removed.  The default value is 'no'.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DisplayResourceDll" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The Formatted string providing the full path to the language neutral file containing the MUI Manifest.   Generally 
+                        authored using [#filekey] form.  When this attribute is specified, the DisplayResourceId attribute must also 
+                        be provided.
+
+                        This attribute is only used on Windows Vista and above.  If this attribute is not populated and the install 
+                        is running on Vista and above, the value in the Name attribute is used.  If this attribute is populated and 
+                        the install is running on Vista and above, the value in the Name attribute is ignored.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DisplayResourceId" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>
+                        The display name index for the shortcut. This must be a non-negative number.  When this attribute is specified, the 
+                        DisplayResourceDll attribute must also be provided.
+
+                        This attribute is only used on Windows Vista and above.  If this attribute is not specified and the install 
+                        is running on Vista and above, the value in the Name attribute is used.  If this attribute is specified and 
+                        the install is running on Vista and above, the value in the Name attribute is ignored.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DescriptionResourceDll" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The Formatted string providing the full path to the language neutral file containing the MUI Manifest.   Generally 
+                        authored using [#filekey] form.  When this attribute is specified, the DescriptionResourceId attribute must also 
+                        be provided.
+
+                        This attribute is only used on Windows Vista and above.  If this attribute is not specified and the install 
+                        is running on Vista and above, the value in the Name attribute is used.  If this attribute is provided and 
+                        the install is running on Vista and above, the value in the Name attribute is ignored.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DescriptionResourceId" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>
+                        The description name index for the shortcut. This must be a non-negative number.  When this attribute is specified,
+                        the DescriptionResourceDll attribute must also be populated.
+
+                        This attribute is only used on Windows Vista and above.  If this attribute is not specified and the install 
+                        is running on Vista and above, the value in the Name attribute is used.  If this attribute is populated and the
+                        install is running on Vista and above, the value in the Name attribute is ignored.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ShortcutProperty">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Shortcut"/>
+                <xse:msiRef table="MsiShortcutProperty" />
+            </xs:appinfo>
+            <xs:documentation>Property values for a shortcut. This element's functionality is available starting with MSI 5.0.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType mixed="true">
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation><xs:documentation>Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Key" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>A formatted string identifying the property to be set.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string">
+                <xs:annotation><xs:documentation>A formatted string supplying the value of the property.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Permission">
+        <xs:annotation>
+            <xs:documentation>
+                Sets ACLs on File, Registry, or CreateFolder.  When under a Registry element, this cannot be used
+                if the Action attribute's value is remove or removeKeyOnInstall.  This element has no Id attribute.
+                The table and key are taken from the parent element.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="LockPermissions" href="http://msdn.microsoft.com/library/aa369774.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Domain" type="xs:string">
+            </xs:attribute>
+            <xs:attribute name="User" use="required" type="xs:string">
+            </xs:attribute>
+            <!-- Common ACLs -->
+            <xs:attribute name="Read" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="Delete" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="ReadPermission" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="ChangePermission" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="TakeOwnership" type="YesNoType">
+            </xs:attribute>
+            <!-- Folder and File ACLs -->
+            <xs:attribute name="ReadAttributes" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="WriteAttributes" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="ReadExtendedAttributes" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="WriteExtendedAttributes" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="Synchronize" type="YesNoType">
+            </xs:attribute>
+            <!-- Folder only ACLs -->
+            <xs:attribute name="CreateFile" type="YesNoType">
+                <xs:annotation><xs:documentation>For a directory, the right to create a file in the directory.  Only valid under a 'CreateFolder' parent.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CreateChild" type="YesNoType">
+                <xs:annotation><xs:documentation>For a directory, the right to create a subdirectory.  Only valid under a 'CreateFolder' parent.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DeleteChild" type="YesNoType">
+                <xs:annotation><xs:documentation>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.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Traverse" type="YesNoType">
+                <xs:annotation><xs:documentation>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.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <!-- File only ACLs -->
+            <xs:attribute name="Append" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="Execute" type="YesNoType">
+            </xs:attribute>
+            <!-- File and Registry ACLs -->
+            <xs:attribute name="Write" type="YesNoType">
+            </xs:attribute>
+            <!-- Registry only ACLs -->
+            <xs:attribute name="CreateSubkeys" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="EnumerateSubkeys" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="Notify" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="CreateLink" type="YesNoType">
+            </xs:attribute>
+            <!-- Generic ACLs, mapped by system to appropriate permissions -->
+            <xs:attribute name="GenericAll" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="GenericExecute" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="GenericWrite" type="YesNoType">
+            </xs:attribute>
+            <xs:attribute name="GenericRead" type="YesNoType">
+                <xs:annotation><xs:documentation>specifying this will fail to grant read access</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="PermissionEx">
+        <xs:annotation>
+            <xs:documentation>
+                Sets ACLs on File, Registry, or CreateFolder.  When under a Registry element, this cannot be used
+                if the Action attribute's value is remove or removeKeyOnInstall.  This element is only available
+                when installing with MSI 5.0.  For downlevel support, see the PermissionEx element from the
+                WixUtilExtension.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiLockPermissionsEx" href="http://msdn.microsoft.com/library/aa369774.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="Condition" minOccurs="0">
+                    <xs:annotation><xs:documentation>
+                        Optional condition that controls whether the permissions are applied.
+                    </xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:sequence>
+
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute
+                    will be used instead.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Sddl" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>
+                    Security descriptor to apply to parent object.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="CopyFile">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="RemoveFile" />
+                <xse:msiRef table="DuplicateFile" href="http://msdn.microsoft.com/library/aa368335.aspx"/>
+                <xse:msiRef table="MoveFile" href="http://msdn.microsoft.com/library/aa370055.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>
+                Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination.  When
+                this element is nested under a File element, the parent file will be installed, then copied to the specified destination
+                if the parent component of the file is selected for installation or removal.  When this element is nested under
+                a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine.
+                When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed,
+                then copied to the specified destination if the parent component is selected for installation or removal (use
+                this option to control the copy of a file in a different component by the parent component's installation state).  If the 
+                specified destination directory is the same as the directory containing the original file and the name for the proposed source
+                file is the same as the original, then no action takes place.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Primary key used to identify this particular entry.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="FileId" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    This attribute cannot be specified if the element is nested under a File element.  Set this attribute's value to the identifier
+                    of a file from a different component to copy it based on the install state of the parent component.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceDirectory" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified.  Set
+                    this value to the source directory from which to copy or move an existing file on the target machine.  This Directory must
+                    exist in the installer database at creation time.  This attribute cannot be specified in conjunction with SourceProperty.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceProperty" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified.  Set
+                    this value to a property that will have a value that resolves to the full path of the source directory (or full path
+                    including file name if SourceName is not specified).  The property does not have to exist in the installer database at
+                    creation time; it could be created at installation time by a custom action, on the command line, etc.  This attribute
+                    cannot be specified in conjunction with SourceDirectory.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceName" type="WildCardLongFileNameType">
+                <xs:annotation><xs:documentation>
+                    This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified.  Set
+                    this value to the localizable name of the file(s) to be copied or moved.  All of the files that
+                    match the wild card will be removed from the specified directory.  The value is a filename that may also
+                    contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character.  If this
+                    attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the
+                    SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename.
+                    If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied
+                    files retain the file names from their sources.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DestinationDirectory" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Set this value to the destination directory where an existing file on the target machine should be moved or copied to.  This
+                    Directory must exist in the installer database at creation time.  This attribute cannot be specified in conjunction with
+                    DestinationProperty.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DestinationProperty" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Set this value to a property that will have a value that resolves to the full path of the destination directory.  The property
+                    does not have to exist in the installer database at creation time; it could be created at installation time by a custom
+                    action, on the command line, etc.  This attribute cannot be specified in conjunction with DestinationDirectory.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DestinationName" type="LongFileNameType">
+              <xs:annotation>
+                <xs:documentation>
+                  In prior versions of the WiX toolset, this attribute specified the short file name.
+                  Now set this value to the localizable name to be given to the original file after it is moved or copied.
+                  If this attribute is not specified, then the destination file is given the same name as the source file.
+                  If a short file name is specified, the DestinationShortName attribute may not be specified.
+                  If a long file name is specified, the DestinationLongName attribute may not be specified.
+                  Also, if this value is a long file name, the DestinationShortName attribute may be omitted to
+                  allow WiX to attempt to generate a unique short file name.
+                  However, if this name collides with another file or you wish to manually specify
+                  the short file name, then the DestinationShortName attribute may be specified.
+                </xs:documentation>
+              </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DestinationLongName" type="LongFileNameType">
+              <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the DestinationName attribute instead.
+                    </xs:documentation>
+                <xs:appinfo>
+                  <xse:deprecated ref="DestinationName" />
+                </xs:appinfo>
+              </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DestinationShortName" type="ShortFileNameType">
+              <xs:annotation>
+                <xs:documentation>
+                  The short file name of the file in 8.3 format.
+                  This attribute should only be set if there is a conflict between generated short file names
+                  or you wish to manually specify the short file name.
+                </xs:documentation>
+              </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Delete" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified.  In other
+                    cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved.  Set the value to "yes"
+                    in order to move the file (thus deleting the source file) instead of copying it.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="File">
+        <xs:annotation>
+            <xs:documentation>
+                File specification for File table, must be child node of Component.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="File" href="http://msdn.microsoft.com/library/aa368596.aspx"/>
+                <xse:howtoRef href="add_a_file.htm">How To: Add a file to your installer</xse:howtoRef>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="AssemblyName"/>
+                <xs:element ref="Permission">
+                    <xs:annotation><xs:documentation>Used to configure the ACLs for this file.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="PermissionEx">
+                    <xs:annotation><xs:documentation>Can also configure the ACLs for this file.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CopyFile">
+                    <xs:annotation><xs:documentation>Used to create a duplicate of this file elsewhere.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="Shortcut">
+                    <xs:annotation><xs:documentation>Target of the shortcut will be set to this file.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ODBCDriver"/>
+                <xs:element ref="ODBCTranslator"/>
+                <xs:element ref="SymbolPath"/>
+                <xs:element ref="Class"/>
+                <xs:element ref="AppId"/>
+                <xs:element ref="TypeLib"/>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation><xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        elements at this point in the schema.
+                    </xs:documentation></xs:annotation>
+                </xs:any>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                  <xs:documentation>
+                    The unique identifier for this File element. If you omit Id, it defaults to the file name portion of the Source attribute, if specified. May be referenced as a Property by specifying [#value].
+                  </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CompanionFile" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>Set this attribute to make this file a companion child of another file.  The installation 
+                    state of a companion file depends not on its own file versioning information, but on the versioning of its 
+                    companion parent.  A file that is the key path for its component can not be a companion file (that means 
+                    this attribute cannot be set if KeyPath="yes" for this file).  The Version attribute cannot be set along 
+                    with this attribute since companion files are not installed based on their own version.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        In prior versions of the WiX toolset, this attribute specified the short file name.
+                        This attribute's value may now be either a short or long file name.
+                        If a short file name is specified, the ShortName attribute may not be specified.
+                        If a long file name is specified, the LongName attribute may not be specified.
+                        Also, if this value is a long file name, the ShortName attribute may be omitted to
+                        allow WiX to attempt to generate a unique short file name.
+                        However, if this name collides with another file or you wish to manually specify
+                        the short file name, then the ShortName attribute may be specified.
+                        Finally, if this attribute is omitted then its default value is the file name portion 
+                        of the Source attribute, if one is specified, or the value of the Id attribute, if 
+                        the Source attribute is omitted or doesn't contain a file name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LongName" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the Name attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="Name" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="KeyPath" type="YesNoType">
+                <xs:annotation><xs:documentation>Set to yes in order to force this file to be the key path for the parent component.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShortName" type="ShortFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The short file name of the file in 8.3 format.
+                        This attribute should only be set if there is a conflict between generated short file names
+                        or the user wants to manually specify the short file name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <!-- 'Attributes' column integer value generated from XML attributes below -->
+            <xs:attribute name="ReadOnly" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Set to yes in order to have the file's read-only attribute set when it is installed on the target machine.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Hidden" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Set to yes in order to have the file's hidden attribute set when it is installed on the target machine.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="System" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Set to yes in order to have the file's system attribute set when it is installed on the target machine.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Vital" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>If a file is vital, then installation cannot proceed unless the file is successfully installed.  The user will have no option to ignore an error installing this file.  If an error occurs, they can merely retry to install the file or abort the installation. The default is "yes," unless the -sfdvital switch (candle.exe) or SuppressFileDefaultVital property (.wixproj) is used.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Checksum" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>This attribute should be set to "yes" for every executable file in the installation that has a valid checksum stored in the Portable Executable (PE) file header.  Only those files that have this attribute set will be verified for valid checksum during a reinstall.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Compressed" type="YesNoDefaultType">
+                <xs:annotation>
+                    <xs:documentation>Sets the file's source type compression.  A setting of "yes" or "no" will override the setting in the Word Count Summary Property.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="BindPath" type="xs:string">
+                <xs:annotation><xs:documentation>A list of paths, separated by semicolons, that represent the paths to be searched to find the imported DLLs. The list is usually a list of properties, with each property enclosed inside square brackets. The value may be set to an empty string. Including this attribute will cause an entry to be generated for the file in the BindImage table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SelfRegCost" type="xs:integer">
+                <xs:annotation><xs:documentation>The cost of registering the file in bytes. This must be a non-negative number. Including this attribute will cause an entry to be generated for the file in the SelfReg table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TrueType" type="YesNoType">
+                <xs:annotation><xs:documentation>Causes an entry to be generated for the file in the Font table with no FontTitle specified. This attribute is intended to be used to register the file as a TrueType font.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="FontTitle" type="xs:string">
+                <xs:annotation><xs:documentation>Causes an entry to be generated for the file in the Font table with the specified FontTitle. This attribute is intended to be used to register the file as a non-TrueType font.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DefaultLanguage" type="xs:string">
+                <xs:annotation><xs:documentation>This is the default language of this file.  The linker will replace this value from the value in the file if the suppress files option is not used.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DefaultSize" type="xs:integer">
+                <xs:annotation><xs:documentation>This is the default size of this file.  The linker will replace this value from the value in the file if the suppress files option is not used.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DefaultVersion" type="xs:string">
+                <xs:annotation><xs:documentation>This is the default version of this file.  The linker will replace this value from the value in the file if the suppress files option is not used.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <!-- assembly information -->
+            <xs:attribute name="Assembly">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the 
+                        Global Assembly Cache (GAC).  If the value is '.net' or 'win32', this file must also be the key path of the Component.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value=".net">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The file is a .NET Framework assembly.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="no">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The file is not a .NET Framework or Win32 assembly. This is the default value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="win32">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The file is a Win32 assembly.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="AssemblyManifest" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the file identifier of the manifest file that describes this assembly.
+                        The manifest file should be in the same component as the assembly it describes.
+                        This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AssemblyApplication" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies the file identifier of the application file.  This assembly will be isolated
+                        to the same directory as the application file.
+                        If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC).
+                        This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ProcessorArchitecture">
+                <xs:annotation><xs:documentation>Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="msil">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The file is a .NET Framework assembly that is processor-neutral.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="x86">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The file is a .NET Framework assembly for the x86 processor.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="x64">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The file is a .NET Framework assembly for the x64 processor.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="ia64">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The file is a .NET Framework assembly for the ia64 processor.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="DiskId" type="xs:integer">
+                <xs:annotation><xs:documentation>
+                    The value of this attribute should correspond to the Id attribute of a Media
+                    element authored elsewhere.  By creating this connection between a file and
+                    its media, you set the packaging options to the values specified in the Media
+                    element (values such as compression level, cab embedding, etc...). Specifying
+                    the DiskId attribute on the File element overrides the default DiskId attribute
+                    from the parent Component element. If no DiskId attribute is specified,
+                    the default is "1". This DiskId attribute is ignored when creating a merge module
+                    because merge modules do not have media.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Source" type="xs:string">
+                <xs:annotation><xs:documentation>Specifies the path to the File in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more information, see <html:a href="specifying_source_files.htm">Specifying source files</html:a>.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="src" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the Source attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="Source" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="PatchGroup" type="xs:integer">
+                <xs:annotation><xs:documentation>
+                    This attribute must be set for patch-added files.  Each patch should be assigned a different patch group number.  Patch groups
+                    numbers must be greater 0 and should be assigned consecutively.  For example, the first patch should use PatchGroup='1', the
+                    second patch will have PatchGroup='2', etc...
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="PatchIgnore" type="YesNoType">
+                <xs:annotation><xs:documentation>Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="PatchAllowIgnoreOnError" type="YesNoType">
+                <xs:annotation><xs:documentation>Set to indicate that the patch is non-vital.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="PatchWholeFile" type="YesNoType">
+                <xs:annotation><xs:documentation>Set if the entire file should be installed rather than creating a binary patch.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="MultiStringValue">
+        <xs:annotation>
+            <xs:documentation>
+                Use several of these elements to specify each registry value in a multiString registry value.  This element
+                cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'.  The
+                values should go in the text area of the MultiStringValue element.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+    </xs:element>
+
+    <xs:element name="RegistryKey">
+        <xs:annotation>
+            <xs:documentation>
+                Used for organization of child RegistryValue elements or to create a registry key
+                (and optionally remove it during uninstallation).
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx"/>
+                <xse:howtoRef href="read_a_registry_entry.htm">How To: Read a registry entry during installation</xse:howtoRef>
+                <xse:howtoRef href="write_a_registry_entry.htm">How To: Write a registry entry during installation</xse:howtoRef>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="RegistryKey"/>
+                <xs:element ref="RegistryValue"/>
+                <xs:element ref="Permission" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>ACL permission</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="PermissionEx">
+                    <xs:annotation><xs:documentation>Can also configure the ACLs for this registry key.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            elements at this point in the schema.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:any>
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Primary key used to identify this particular entry.  If this attribute is not specified, an identifier will be
+                        generated by hashing the parent Component identifier, Root, Key, and Name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Action">
+                <xs:annotation>
+                    <xs:documentation>
+                        This is the action that will be taken for this registry value.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="create">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Creates the key, if absent, when the parent component is installed.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="createAndRemoveOnUninstall">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    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.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="none">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output.
+                                    This is the default value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Key" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The localizable key for the registry value.
+                        If the parent element is a RegistryKey, this value may be omitted to use the
+                        path of the parent, or if its specified it will be appended to the path of the parent.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Root" type="RegistryRootType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The predefined root key for the registry value.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="RegistryValue">
+        <xs:annotation>
+            <xs:documentation>
+                Used to create a registry value.  For multi-string values, this can be used to prepend or append values.
+
+                For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value.  This element
+                cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'.  The
+                values should go in the text area of the RegistryValue element.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx"/>
+                <xse:howtoRef href="write_a_registry_entry.htm">How To: Write a registry entry during installation</xse:howtoRef>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType mixed="true">
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Permission"/>
+                <xs:element ref="PermissionEx">
+                    <xs:annotation><xs:documentation>Can also configure the ACLs for this registry value.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="MultiStringValue"/>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            elements at this point in the schema.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:any>
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Primary key used to identify this particular entry.  If this attribute is not specified, an identifier will be
+                        generated by hashing the parent Component identifier, Root, Key, and Name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Root" type="RegistryRootType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The predefined root key for the registry value.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Key" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The localizable key for the registry value.
+                        If the parent element is a RegistryKey, this value may be omitted to use the
+                        path of the parent, or if its specified it will be appended to the path of the parent.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The localizable registry value name.  If this attribute is not provided the default value for the registry key will
+                        be set instead.  The Windows Installer allows several special values to be set for this attribute.  You should not
+                        use them in WiX.  Instead use appropriate values in the Action attribute to get the desired behavior.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set this attribute to the localizable registry value.  This value is formatted.  The Windows Installer allows
+                        several special values to be set for this attribute.  You should not use them in WiX.  Instead use appropriate
+                        values in the Type attribute to get the desired behavior.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <!-- unfortunately, this attribute cannot yet be set to required due to backwards-compatibility, once the Registry element is removed, this should be required -->
+            <xs:attribute name="Type">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set this attribute to the type of the desired registry key.  This attribute must be specified whenever the Value
+                        attribute or a child RegistryValue element is specified.    This attribute
+                        should only be set when the value of the Action attribute does not include the word 'remove'.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="string">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The value is interpreted and stored as a string (REG_SZ).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="integer">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The value is interpreted and stored as an integer (REG_DWORD).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="binary">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The value is interpreted and stored as a hexadecimal value (REG_BINARY).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="expandable">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="multiString">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The value is interpreted and stored as a multiple strings (REG_MULTI_SZ).
+                                    Please note that this value will only result in a multi-string value if there is more than one registry value
+                                    or the Action attribute's value is 'append' or 'prepend'.  Otherwise a string value will be created.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Action">
+                <xs:annotation>
+                    <xs:documentation>
+                        This is the action that will be taken for this registry value.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="append">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Appends the specified value(s) to a multiString registry value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="prepend">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Prepends the specified value(s) to a multiString registry value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="write">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Writes a registry value.  This is the default value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="KeyPath" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set this attribute to 'yes' to make this registry key the KeyPath of the parent component.
+                        Only one resource (registry, file, etc) can be the KeyPath of a component.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="RemoveRegistryKey">
+        <xs:annotation>
+            <xs:documentation>
+                Used for removing registry keys and all child keys either during install or uninstall.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx"/>
+                <xse:msiRef table="RemoveRegistry" href="http://msdn.microsoft.com/library/aa371208.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Primary key used to identify this particular entry.  If this attribute is not specified, an identifier will be
+                        generated by hashing the parent Component identifier, Root, Key, and Name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Action">
+                <xs:annotation>
+                    <xs:documentation>
+                        This is the action that will be taken for this registry value.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="removeOnInstall">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Removes a key with all its values and subkeys when the parent component is installed.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="removeOnUninstall">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Removes a key with all its values and subkeys when the parent component is uninstalled.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Key" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The localizable key for the registry value.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Root" type="RegistryRootType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The predefined root key for the registry value.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="RemoveRegistryValue">
+        <xs:annotation>
+            <xs:documentation>
+                Used to remove a registry value during installation.
+                There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey).
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="RemoveRegistry" href="http://msdn.microsoft.com/library/aa371208.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Primary key used to identify this particular entry.  If this attribute is not specified, an identifier will be
+                        generated by hashing the parent Component identifier, Root, Key, and Name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Key" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The localizable key for the registry value.
+                        If the parent element is a RegistryKey, this value may be omitted to use the
+                        path of the parent, or if its specified it will be appended to the path of the parent.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The localizable registry value name.  If this attribute is not provided the default value for the registry key will
+                        be set instead.  The Windows Installer allows several special values to be set for this attribute.  You should not
+                        use them in WiX.  Instead use appropriate values in the Action attribute to get the desired behavior.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Root" type="RegistryRootType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The predefined root key for the registry value.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Registry">
+        <xs:annotation>
+            <xs:appinfo>
+                <xs:documentation>
+                    This element has been deprecated. Use the RegistryValue element instead.
+                </xs:documentation>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx"/>
+                <xse:deprecated ref="RegistryValue" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Permission"/>
+                <xs:element ref="PermissionEx">
+                    <xs:annotation><xs:documentation>Can also configure the ACLs for this registry key.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegistryValue"/>
+                <xs:element ref="Registry"/>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            elements at this point in the schema.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:any>
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Primary key used to identify this particular entry.  If this attribute is not specified, an identifier will be
+                    generated by hashing the parent Component identifier, Root, Key, and Name.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Action">
+                <xs:annotation>
+                    <xs:documentation>
+                        This is the action that will be taken for this registry key.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="append">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Appends the specified value(s) to a multiString registry key.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="createKey">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Creates the key, if absent, when the parent component is installed.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="createKeyAndRemoveKeyOnUninstall">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    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.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="prepend">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Prepends the specified value(s) to a multiString registry key.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="remove">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Removes a registry name when the parent component is installed.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="removeKeyOnInstall">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Removes a key with all its values and subkeys when the parent component is installed.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="removeKeyOnUninstall">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Removes a key with all its values and subkeys when the parent component is uninstalled.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="write">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Writes a registry value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Key" type="xs:string">
+                <xs:annotation><xs:documentation>The localizable key for the registry value.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="KeyPath" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Set this attribute to 'yes' to make this registry key the KeyPath of the parent component.  Only one resource (registry,
+                    file, etc) can be the KeyPath of a component.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    The localizable registry value name.  If this attribute is not provided the default value for the registry key will 
+                    be set instead.  The Windows Installer allows several special values to be set for this attribute.  You should not
+                    use them in WiX.  Instead use appropriate values in the Action attribute to get the desired behavior.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Root" type="RegistryRootType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The predefined root key for the registry value.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Type">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set this attribute to the type of the desired registry key.  This attribute must be specified whenever the Value
+                        attribute or a child RegistryValue element is specified.    This attribute
+                        should only be set when the value of the Action attribute does not include the word 'remove'.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="string">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The value is interpreted and stored as a string (REG_SZ).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="integer">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The value is interpreted and stored as an integer (REG_DWORD).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="binary">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The value is interpreted and stored as a hexadecimal value (REG_BINARY).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="expandable">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="multiString">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The value is interpreted and stored as a multiple strings (REG_MULTI_SZ).
+                                    Please note that this value will only result in a multi-string value if there is more than one registry value
+                                    or the Action attribute's value is 'append' or 'prepend'.  Otherwise a string value will be created.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Set this attribute to the localizable registry value.  This value is formatted.  The Windows Installer allows
+                    several special values to be set for this attribute.  You should not use them in WiX.  Instead use appropriate
+                    values in the Type attribute to get the desired behavior.  This attribute cannot be specified if the Action
+                    attribute's value contains the word 'remove'.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="RemoveFile">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="CopyFile" />
+                <xse:msiRef table="RemoveFile" href="http://msdn.microsoft.com/library/aa371201.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>
+                Remove a file(s) if the parent component is selected for installation or removal.  Multiple files can be removed
+                by specifying a wildcard for the value of the Name attribute.  By default, the source
+                directory of the file is the directory of the parent component.  This can be overridden by specifying the
+                Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property
+                attribute with a value corresponding to a property that will have a value that resolves to the full path
+                to the source directory.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Primary key used to identify this particular entry.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Directory" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Overrides the directory of the parent component with a specific Directory.  This Directory must exist in the
+                    installer database at creation time.  This attribute cannot be specified in conjunction with the Property attribute.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Property" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Overrides the directory of the parent component with the value of the specified property.  The property
+                    should have a value that resolves to the full path of the source directory.  The property does not have
+                    to exist in the installer database at creation time; it could be created at installation time by a custom
+                    action, on the command line, etc.  This attribute cannot be specified in conjunction with the Directory attribute.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="WildCardLongFileNameType" use="required">
+                <xs:annotation><xs:documentation>
+                    This value should be set to the localizable name of the file(s) to be removed.  All of the files that
+                    match the wild card will be removed from the specified directory.  The value is a filename that may also
+                    contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character.
+                    In prior versions of the WiX toolset, this attribute specified the short file name.
+                    This attribute's value may now be either a short or long file name.
+                    If a short file name is specified, the ShortName attribute may not be specified.
+                    If a long file name is specified, the LongName attribute may not be specified.
+                    Also, if this value is a long file name, the ShortName attribute may be omitted to
+                    allow WiX to attempt to generate a unique short file name.
+                    However, if you wish to manually specify the short file name, then the ShortName attribute may be specified.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LongName" type="WildCardLongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the Name attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="Name" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShortName" type="WildCardShortFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The short file name of the file in 8.3 format.
+                        This attribute should only be set if you want to manually specify the short file name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="On" type="InstallUninstallType" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        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.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+    
+    <xs:element name="RemoveFolder">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="CreateFolder" />
+                <xse:msiRef table="RemoveFile" href="http://msdn.microsoft.com/library/aa371201.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>
+                Remove an empty folder if the parent component is selected for installation or removal.  By default, the folder
+                is the directory of the parent component.  This can be overridden by specifying the Directory attribute
+                with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value
+                corresponding to a property that will have a value that resolves to the full path of the folder.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Primary key used to identify this particular entry.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Directory" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Overrides the directory of the parent component with a specific Directory.  This Directory must exist in the
+                    installer database at creation time.  This attribute cannot be specified in conjunction with the Property attribute.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Property" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Overrides the directory of the parent component with the value of the specified property.  The property
+                    should have a value that resolves to the full path of the source directory.  The property does not have
+                    to exist in the installer database at creation time; it could be created at installation time by a custom
+                    action, on the command line, etc.  This attribute cannot be specified in conjunction with the Directory attribute.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="On" type="InstallUninstallType" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        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.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="CreateFolder">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="RemoveFolder" />
+                <xse:msiRef table="CreateFolder" href="http://msdn.microsoft.com/library/aa368053.aspx" />
+            </xs:appinfo>
+            <xs:documentation>Create folder as part of parent Component.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Shortcut" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Non-advertised shortcut to this folder, Shortcut Target is preset to the folder</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="Permission" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>ACL permission</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="PermissionEx">
+                    <xs:annotation><xs:documentation>Can also configure the ACLs for this folder.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            elements at this point in the schema.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:any>
+            </xs:choice>
+            <xs:attribute name="Directory" type="xs:string">
+                <xs:annotation><xs:documentation>Identifier of Directory to create.  Defaults to Directory of parent Component.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="AppData" type="xs:string">
+        <xs:annotation><xs:documentation>Optional way for defining AppData, generally used for complex CDATA.</xs:documentation></xs:annotation>
+    </xs:element>
+
+    <xs:element name="Category">
+        <xs:annotation>
+            <xs:documentation>
+                Qualified published component for parent Component
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="PublishComponent" href="http://msdn.microsoft.com/library/aa370921.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="AppData" />
+            </xs:sequence>
+            <xs:attribute name="Id" use="required" type="Guid">
+                <xs:annotation><xs:documentation>A string GUID that represents the category of components being grouped together.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Qualifier" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>A text string that qualifies the value in the Id attribute.  A qualifier is used to distinguish multiple forms of the same Component, such as a Component that is implemented in multiple languages.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AppData" type="xs:string">
+                <xs:annotation><xs:documentation>An optional localizable text describing the category.  The string is commonly parsed by the application and can be displayed to the user.  It should describe the category.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Feature" type="xs:string">
+                <xs:annotation><xs:documentation>Feature that controls the advertisement of the category.  Defaults to the primary Feature for the parent Component .</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="MIME">
+        <xs:annotation>
+            <xs:documentation>
+                MIME content-type for an Extension
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MIME" href="http://msdn.microsoft.com/library/aa370035.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Advertise" type="YesNoType">
+                <xs:annotation><xs:documentation>Whether this MIME is to be advertised. The default is to match whatever the parent extension element uses.  If the parent element is not advertised, then this element cannot be advertised either.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ContentType" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>This is the identifier for the MIME content.  It is commonly written in the form of type/format.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Class" type="Guid">
+                <xs:annotation><xs:documentation>Class ID for the COM server that is to be associated with the MIME content.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Default" type="YesNoType">
+                <xs:annotation><xs:documentation>If 'yes', become the content type for the parent Extension.  The default value is 'no'.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Verb">
+        <xs:annotation>
+            <xs:documentation>
+            Verb definition for an Extension.  When advertised, this element creates a row in the 
+            <html:a href='http://msdn.microsoft.com/library/aa372487.aspx' target='_blank'>Verb table</html:a>.
+            When not advertised, this element creates the appropriate rows in <html:a href='http://msdn.microsoft.com/library/aa371168.aspx' target='_blank'>Registry table</html:a>.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Verb" href="http://msdn.microsoft.com/library/aa372487.aspx"/>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The verb for the command.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Command" type="xs:string">
+                <xs:annotation><xs:documentation>The localized text displayed on the context menu.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Argument" type="xs:string">
+                <xs:annotation><xs:documentation>Value for the command arguments.  Note that the resolution of properties in the 
+                Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property 
+                already has the intended value when the component owning the verb is installed. For example, for the argument 
+                "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the 
+                component that owns the verb.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Sequence" type="xs:integer">
+                <xs:annotation><xs:documentation>The sequence of the commands. Only verbs for which the Sequence is specified
+                are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this 
+                column becomes the default verb. Used only for Advertised verbs.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Target" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the TargetFile attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="TargetFile" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TargetFile" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb.
+                        The value should be the identifier of the target file to be executed for the verb.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TargetProperty" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Either this attribute or the TargetFile attribute must be specified for a non-advertised verb.
+                        The value should be the identifier of the property which will resolve to the path to the target file to be executed for the verb.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Extension">
+        <xs:annotation>
+            <xs:documentation>
+                Extension for a Component
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MIME" href="http://msdn.microsoft.com/library/aa370035.aspx"/>
+                <xse:msiRef table="Verb" href="http://msdn.microsoft.com/library/aa372487.aspx"/>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:annotation><xs:documentation>MIME and Verbs can be associated with Extensions</xs:documentation></xs:annotation>
+                <xs:element ref="MIME"/>
+                <xs:element ref="Verb"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>This is simply the file extension, like "doc" or "xml".  Do not include the preceding period.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ContentType" type="xs:string">
+                <xs:annotation><xs:documentation>The MIME type that is to be written.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Advertise" type="YesNoType">
+                <xs:annotation><xs:documentation>Whether this extension is to be advertised. The default is "no".</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="TypeLib">
+        <xs:annotation>
+            <xs:documentation>
+                Register a type library (TypeLib).  Please note that in order to properly use this
+                non-advertised, you will need use this element with Advertise='no' and also author the
+                appropriate child Interface elements by extracting them from the type library itself.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="TypeLib" href="http://msdn.microsoft.com/library/aa372092.aspx"/>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="AppId"/>
+                <xs:element ref="Class"/>
+                <xs:element ref="Interface"/>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="Guid" use="required">
+                <xs:annotation><xs:documentation>The GUID that identifes the type library.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Advertise" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Value of 'yes' will create a row in the TypeLib table.
+                    Value of 'no' will create rows in the Registry table.
+                    The default value is 'no'.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Control" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects.
+                    This attribute can only be set if Advertise='no'.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Cost" type="xs:int">
+                <xs:annotation><xs:documentation>
+                    The cost associated with the registration of the type library in bytes.  This attribute cannot be set if Advertise='no'.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation><xs:documentation>The localizable description of the type library.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="HasDiskImage" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Value of 'yes' means the type library exists in a persisted form on disk.  This attribute can only be set if Advertise='no'.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="HelpDirectory" type="xs:string">
+                <xs:annotation><xs:documentation>The identifier of the Directory element for the help directory.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Hidden" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Value of 'yes' means the type library should not be displayed to users, although its use is not restricted.
+                    Should be used by controls.  Hosts should create a new type library that wraps the control with extended properties.
+                    This attribute can only be set if Advertise='no'.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Language" use="required" type="xs:integer">
+                <xs:annotation><xs:documentation>The language of the type library.  This must be a non-negative integer.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MajorVersion" type="xs:integer">
+                <xs:annotation><xs:documentation>The major version of the type library.  The value should be an integer from 0 - 255.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MinorVersion" type="xs:integer">
+                <xs:annotation><xs:documentation>The minor version of the type library.  The value should be an integer from 0 - 255.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ResourceId" type="xs:integer">
+                <xs:annotation><xs:documentation>The resource id of a typelib.  The value is appended to the end of the typelib path in the registry.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Restricted" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Value of 'yes' means the type library is restricted, and should not be displayed to users.  This attribute can only be set if Advertise='no'.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ProgId">
+        <xs:annotation>
+            <xs:documentation>
+                ProgId registration for parent Component.  If ProgId has an associated Class, it must be a child of that element.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ProgId" href="http://msdn.microsoft.com/library/aa370879.aspx"/>
+                <xse:msiRef table="Class" href="http://msdn.microsoft.com/library/aa367861.aspx"/>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx" />
+                <xse:msiRef table="Icon" href="http://msdn.microsoft.com/library/aa369210.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="ProgId" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>The version-independent ProgId must be the first child element of actual ProgId.  Nesting other ProgId elements within the Version-independent ProgId will create COM+ aliases, see <html:a href="http://support.microsoft.com/kb/305745">http://support.microsoft.com/kb/305745</html:a> for more information.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Extensions that refer to this ProgId</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:sequence>
+
+            <xs:attribute name="Id" type="xs:string" use="required"/>
+            <xs:attribute name="Description" type="xs:string"/>
+            <xs:attribute name="Icon" type="xs:string">
+                <xs:annotation><xs:documentation>For an advertised ProgId, the Id of an Icon element. For a non-advertised ProgId, this is the Id of a file containing an icon resource.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IconIndex" type="xs:integer"/>
+            <xs:attribute name="Advertise" type="YesNoType"/>
+            <xs:attribute name="NoOpen" type="xs:string">
+                <xs:annotation><xs:documentation>Specifies that the associated ProgId should not be opened by users. The value is presented as a warning to users. An empty string is also valid for this attribute.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="AppId">
+        <xs:annotation>
+            <xs:documentation>
+                Application ID containing DCOM information for the associated application GUID.  
+                If this element is nested under a Fragment, Module, or Product element, it must be
+                advertised.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="AppId" href="http://msdn.microsoft.com/library/aa367566.aspx"/>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx" />
+                <xse:remarks>
+                    When being used in unadvertised mode, the attributes in the AppId element correspond to registry keys
+                    as follows (values that can be specified in authoring are in bold):
+                    <html:dl>
+                        <html:dt>Id</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>Id</html:b>}]<html:br/>
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br/>
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>ActivateAtStorage</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>Id</html:b>}]<html:br/>
+                                    ActivateAtStorage="<html:b>ActivateAtStorage</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br/>
+                                    ActivateAtStorage="<html:b>Y</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>Description</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>Id</html:b>}]<html:br/>
+                                    @="<html:b>Description</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br/>
+                                    @="<html:b>My AppId Description</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>DllSurrogate</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>Id</html:b>}]<html:br/>
+                                    DllSurrogate="<html:b>DllSurrogate</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br/>
+                                    DllSurrogate="<html:b>C:\surrogate.exe</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>LocalService</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>Id</html:b>}]<html:br/>
+                                    LocalService="<html:b>LocalService</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br/>
+                                    LocalService="<html:b>MyServiceName</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>RemoteServerName</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>Id</html:b>}]<html:br/>
+                                    RemoteServerName="<html:b>RemoteServerName</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br/>
+                                    RemoteServerName="<html:b>MyRemoteServer</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>RunAsInteractiveUser</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>Id</html:b>}]<html:br/>
+                                    RunAs="<html:b>RunAsInteractiveUser</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br/>
+                                    RunAs="<html:b>Interactive User</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>ServiceParameters</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>Id</html:b>}]<html:br/>
+                                    ServiceParameters="<html:b>ServiceParameters</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\AppID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br/>
+                                    ServiceParameters="<html:b>-param</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                    </html:dl>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Class"/>
+            </xs:choice>
+
+            <xs:attribute name="ActivateAtStorage" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Set this value to 'yes' to configure the client to activate on the same system as persistent storage.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Advertise" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Set this value to 'yes' in order to create a normal AppId table row.  Set this value to 'no' in order to
+                    generate Registry rows that perform similar registration (without the often problematic Windows Installer
+                    advertising behavior).
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Set this value to the description of the AppId.  It can only be specified when the AppId is not being advertised.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DllSurrogate" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE 
+                    process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Id" type="Guid" use="required">
+                <xs:annotation><xs:documentation>
+                    Set this value to the AppID GUID that corresponds to the named executable.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LocalService" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Set this value to the name of a service to allow the object to be installed as a Win32 service.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RemoteServerName" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Set this value to the name of the remote server to configure the client to request the object
+                    be run at a particular machine whenever an activation function is called for which a COSERVERINFO
+                    structure is not specified.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RunAsInteractiveUser" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Set this value to 'yes' to configure a class to run under the identity of the user currently
+                    logged on and connected to the interactive desktop when activated by a remote client without
+                    being written as a Win32 service.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ServiceParameters" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Set this value to the parameters to be passed to a LocalService on invocation.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Class">
+        <xs:annotation>
+            <xs:documentation>COM Class registration for parent Component.</xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="AppId"/>
+                <xse:msiRef table="Class" href="http://msdn.microsoft.com/library/aa367861.aspx"/>
+                <xse:msiRef table="ProgId" href="http://msdn.microsoft.com/library/aa370879.aspx"/>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx" />
+                <xse:msiRef table="AppId" href="http://msdn.microsoft.com/library/aa367566.aspx"/>
+                <xse:remarks>
+                    When being used in unadvertised mode, the attributes in the Class element correspond to registry keys
+                    as follows (values that can be specified in authoring are in bold):
+                    <html:dl>
+                        <html:dt>Id/Context/Server</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\<html:b>Context1</html:b>]<html:br/>
+                                    @="[!<html:b>Server</html:b>]"<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\<html:b>Context2</html:b>]<html:br/>
+                                    @="[!<html:b>Server</html:b>]"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\<html:b>LocalServer</html:b>]<html:br/>
+                                    @="[!<html:b>comserv.dll</html:b>]"<html:br/>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\<html:b>LocalServer32</html:b>]<html:br/>
+                                    @="[!<html:b>comserv.dll</html:b>]"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>Id/Context/ForeignServer</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                  [HKCR\CLSID\{<html:b>Id</html:b>}\<html:b>Context1</html:b>]<html:br/>
+                                  @="<html:b>ForeignServer</html:b>"<html:br/>
+                                  [HKCR\CLSID\{<html:b>Id</html:b>}\<html:b>Context2</html:b>]<html:br/>
+                                  @="<html:b>ForeignServer</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                  [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\<html:b>LocalServer</html:b>]<html:br/>
+                                  @="<html:b>mscoree.dll</html:b>"<html:br/>
+                                  [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\<html:b>LocalServer32</html:b>]<html:br/>
+                                  @="<html:b>mscoree.dll</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>AppId</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}]<html:br/>
+                                    AppId="{<html:b>AppId</html:b>}"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br/>
+                                    AppId="{<html:b>00000000-89AB-0000-0123-000000000000</html:b>}"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>Argument</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\<html:b>Context</html:b>]<html:br/>
+                                    @="[!<html:b>Server</html:b>] <html:b>Argument</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\<html:b>LocalServer32</html:b>]<html:br/>
+                                    @="[!<html:b>comserv.dll</html:b>] <html:b>/arg1 /arg2 /arg3</html:b>"<html:br/>
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>Control</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    Value "yes" specified:<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\Control]
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Control]
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>Description</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}]<html:br/>
+                                    @="<html:b>Description</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}]<html:br/>
+                                    @="<html:b>Description of Example COM Component</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>Handler</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    Value "1" specified:<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\InprocHandler]<html:br/>
+                                    @="ole.dll"<html:br/>
+                                    Value "2" specified:<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\InprocHandler32]<html:br/>
+                                    @="ole32.dll"<html:br/>
+                                    Value "3" specified:<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\InprocHandler]<html:br/>
+                                    @="ole.dll"<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\InprocHandler32]<html:br/>
+                                    @="ole32.dll"<html:br/>
+                                    Other value specified:<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\InprocHandler32]<html:br/>
+                                    @="<html:b>Handler</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example (for other value)</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\InprocHandler32]<html:br/>
+                                    @="<html:b>handler.dll</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>Icon/IconIndex</html:dt>
+                        <html:dd>This is not currently handled properly.</html:dd>
+                        <html:dt>Insertable</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    Value "no" specified:<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\NotInsertable]<html:br/>
+                                    Value "yes" specified:<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\Insertable]
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Insertable]
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>Programmable</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    Value "yes" specified:<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\Programmable]
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Programmable]
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>RelativePath</html:dt>
+                        <html:dd>Unsupported.  Please contribute this back to WiX if you know.</html:dd>
+                        <html:dt>SafeForInitializing</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    Value "yes" specified:<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>SafeForScripting</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    Value "yes" specified:<html:br/>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>ThreadingModel</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\<html:b>Context</html:b>]<html:br/>
+                                    ThreadingModel="<html:b>ThreadingModel</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\<html:b>LocalServer32</html:b>]<html:br/>
+                                    ThreadingModel="<html:b>Apartment</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>TypeLibId (from parent TypeLib/@Id)</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\TypeLib]<html:br/>
+                                    @="{<html:b>TypeLibId</html:b>}"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\TypeLib]<html:br/>
+                                    @="{<html:b>11111111-89AB-1111-0123-111111111111</html:b>}"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                        <html:dt>Version</html:dt>
+                        <html:dd>
+                            <html:dl>
+                                <html:dt>In General</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>Id</html:b>}\Version]<html:br/>
+                                    @="<html:b>Version</html:b>"
+                                </html:dd>
+                                <html:dt>Specific Example</html:dt>
+                                <html:dd>
+                                    [HKCR\CLSID\{<html:b>01234567-89AB-CDEF-0123-456789ABCDEF</html:b>}\Version]<html:br/>
+                                    @="<html:b>1.0.0.0</html:b>"
+                                </html:dd>
+                            </html:dl>
+                        </html:dd>
+                    </html:dl>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="ProgId">
+                    <xs:annotation><xs:documentation>A ProgId associated with Class must be a child element of the Class element</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="FileTypeMask"/>
+                <xs:element ref="Interface">
+                    <xs:annotation><xs:documentation>These Interfaces will be registered with the parent Class and TypeLib (if present).</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="Guid" use="required">
+                <xs:annotation><xs:documentation>The Class identifier (CLSID) of a COM server.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Context">
+                <xs:annotation><xs:documentation>
+                  The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable".
+                  Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value
+                  for the Context attribute.
+                </xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:list>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:NMTOKEN">
+                                <xs:enumeration value="LocalServer">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            A 16-bit local server application.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="LocalServer32">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            A 32-bit local server application.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="InprocServer">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            A 16-bit in-process server DLL.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="InprocServer32">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            A 32-bit in-process server DLL.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:list>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation><xs:documentation>Localized description associated with the Class ID and Program ID.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="AppId" type="Guid">
+                <xs:annotation><xs:documentation>
+                    This attribute is only allowed when a Class is advertised.  Using this attribute will reference an Application ID
+                    containing DCOM information for the associated application GUID.  The value must correspond to an AppId/@Id of an
+                    AppId element nested under a Fragment, Module, or Product element.  To associate an AppId with a non-advertised
+                    class, nest the class within a parent AppId element.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Icon" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    The file providing the icon associated with this CLSID.  Reference to an Icon element
+                    (should match the Id attribute of an Icon element).  This is currently not supported if the
+                    value of the Advertise attribute is "no".
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IconIndex" type="xs:integer">
+                <xs:annotation><xs:documentation>Icon index into the icon file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Handler" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    The default inproc handler.  May be optionally provided only for Context = LocalServer or
+                    LocalServer32.  Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler
+                    value).  Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value).
+                    Value of "3" creates 16-bit as well as 32-bit InprocHandlers.  A non-numeric value is treated
+                    as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value).
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Argument" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    This column is optional only when the Context column is set to "LocalServer"
+                    or "LocalServer32" server context. The text is registered as the argument against
+                    the OLE server and is used by OLE for invoking the server.  Note that the resolution
+                    of properties in the Argument field is limited. A property formatted as [Property] in
+                    this field can only be resolved if the property already has the intended value when
+                    the component owning the class is installed.  For example, for the argument "[#MyDoc.doc]"
+                    to resolve to the correct value, the same process must be installing the file MyDoc.doc and the
+                    component that owns the class.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RelativePath" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    When the value is "yes", the bare file name can be used for COM servers. The installer
+                    registers the file name only instead of the complete path.  This enables the server in
+                    the current directory to take precedence and allows multiple copies of the same component.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Advertise" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Set this value to "yes" in order to create a normal Class table row.  Set this value to
+                    "no" in order to generate Registry rows that perform similar registration (without the
+                    often problematic Windows Installer advertising behavior).
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+
+            <!-- Following attributes are not advertised, but add the appropriate rows to the Registry table -->
+            <xs:attribute name="ThreadingModel">
+                <xs:annotation><xs:documentation>
+                    Threading model for the CLSID.
+                </xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="apartment"/>
+                        <xs:enumeration value="free"/>
+                        <xs:enumeration value="both"/>
+                        <xs:enumeration value="neutral"/>
+                        <xs:enumeration value="single"/>
+                        <xs:enumeration value="rental"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Version" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Version for the CLSID.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Insertable" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Specifies the CLSID may be insertable.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Programmable" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Specifies the CLSID may be programmable.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ForeignServer" type="xs:string">
+                <xs:annotation><xs:documentation>
+                  May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only
+                  be used when the Class element is directly under the Component element. The value can be
+                  that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed.
+                </xs:documentation></xs:annotation>
+          </xs:attribute>
+            <xs:attribute name="Server" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified.  File Id of the
+                    COM server file.  If this element is nested under a File element, this value defaults to
+                    the value of the parent File/@Id.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShortPath" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Specifies whether or not to use the short path for the COM server.  This can only apply when Advertise is set to 'no'.  The default is 'no' meaning that it will use the long file name for the COM server.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SafeForScripting" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    May only be specified if the value of the Advertise attribute is "no".
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SafeForInitializing" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    May only be specified if the value of the Advertise attribute is "no".
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Control" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Set this attribute's value to 'yes' to identify an object as an ActiveX Control.  The default value is 'no'.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Interface">
+        <xs:annotation>
+            <xs:documentation>COM Interface registration for parent TypeLib.</xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="Guid" use="required">
+                <xs:annotation><xs:documentation>GUID identifier for COM Interface.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Name for COM Interface.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="BaseInterface" type="Guid">
+                <xs:annotation><xs:documentation>Identifies the interface from which the current interface is derived.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ProxyStubClassId" type="Guid">
+                <xs:annotation><xs:documentation>GUID CLSID for proxy stub to COM Interface.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ProxyStubClassId32" type="Guid">
+                <xs:annotation><xs:documentation>GUID CLSID for 32-bit proxy stub to COM Interface.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="NumMethods" type="xs:integer">
+                <xs:annotation><xs:documentation>Number of methods implemented on COM Interface.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Versioned" type="YesNoType">
+                <xs:annotation><xs:documentation>Determines whether a Typelib version entry should be created with the other COM Interface registry keys.  Default is 'yes'.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="FileTypeMask">
+        <xs:annotation><xs:documentation>FileType data for class Id registration.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Offset" type="xs:integer" use="required">
+                <xs:annotation><xs:documentation>Offset into file. If positive, offset is from the beginning; if negative, offset is from the end.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Mask" type="HexType" use="required">
+                <xs:annotation><xs:documentation>Hex value that is AND'd against the bytes in the file at Offset.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="HexType" use="required">
+                <xs:annotation><xs:documentation>If the result of the AND'ing of Mask with the bytes in the file is Value, the file is a match for this File Type.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ServiceDependency">
+        <xs:annotation>
+            <xs:documentation>
+                Service or group of services that must start before the parent service.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ServiceInstall" href="http://msdn.microsoft.com/library/aa371637.aspx" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        The value of this attribute should be one of the following:
+                        <html:ol>
+                            <html:li>The name (not the display name) of a previously installed service.</html:li>
+                            <html:li>A foreign key referring to another ServiceInstall/@Id.</html:li>
+                            <html:li>A group of services (in which case the Group attribute should be set to 'yes').</html:li>
+                        </html:ol>
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Group" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set to 'yes' to indicate that the value in the Id attribute is the name of a group of services.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ServiceInstall">
+        <xs:annotation>
+            <xs:documentation>
+                Adds and removes services for parent Component.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ServiceInstall" href="http://msdn.microsoft.com/library/aa371637.aspx"/>
+                <xse:remarks>
+                    The service executable installed will point to the KeyPath for the Component.
+                    Therefore, you must ensure that the correct executable is either the first child
+                    File element under this Component or explicitly mark the appropriate File element
+                    as KeyPath='yes'.
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="PermissionEx">
+                    <xs:annotation><xs:documentation>Configures the ACLs for this service.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ServiceDependency">
+                    <xs:annotation><xs:documentation>ordered list of dependencies when installing services</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ServiceConfig"/>
+                <xs:element ref="ServiceConfigFailureActions"/>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            elements at this point in the schema.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:any>
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Unique identifier for this service configuration. This value will default to the Name attribute if not
+                    specified.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>This column is the string that gives the service name to install.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DisplayName" type="xs:string">
+                <xs:annotation><xs:documentation>This column is the localizable string that user interface programs use to identify the service.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Type" use="required">
+                <xs:annotation><xs:documentation>The Windows Installer does not currently support kernelDriver or systemDriver</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="ownProcess">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    A Win32 service that runs its own process.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="shareProcess">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    A Win32 service that shares a process.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="kernelDriver">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    A kernel driver service. This value is not currently supported by the Windows Installer.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="systemDriver">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    A file system driver service. This value is not currently supported by the Windows Installer.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Interactive" type="YesNoType">
+                <xs:annotation><xs:documentation>Whether or not the service interacts with the desktop.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Start" use="required">
+                <xs:annotation><xs:documentation>Determines when the service should be started. The Windows Installer does not support boot or system.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="auto">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The service will start during startup of the system.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="demand">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The service will start when the service control manager calls the StartService function.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="disabled">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The service can no longer be started.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="boot">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The service is a device driver that will be started by the operating system boot loader. This value is not currently supported by the Windows Installer.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="system">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="ErrorControl" use="required">
+                <xs:annotation><xs:documentation>Determines what action should be taken on an error.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="ignore">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Logs the error and continues with the startup operation.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="normal">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Logs the error, displays a message box and continues the startup operation.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="critical">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Logs the error if it is possible and the system is restarted with the last configuration known to be good. If the last-known-good configuration is being started, the startup operation fails.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Vital" type="YesNoType">
+                <xs:annotation><xs:documentation>The overall install should fail if this service fails to install.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LoadOrderGroup" type="xs:string">
+                <xs:annotation><xs:documentation>The load ordering group that this service should be a part of.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Account" type="xs:string">
+                <xs:annotation><xs:documentation>The account under which to start the service. Valid only when ServiceType is ownProcess.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Password" type="xs:string">
+                <xs:annotation><xs:documentation>The password for the account. Valid only when the account has a password.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Arguments" type="xs:string">
+                <xs:annotation><xs:documentation>Contains any command line arguments or properties required to run the service.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation><xs:documentation>Sets the description of the service.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="EraseDescription" type="YesNoType">
+                <xs:annotation><xs:documentation>Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ServiceArgument" type="xs:string">
+        <xs:annotation>
+            <xs:documentation>
+                Argument used in ServiceControl parent
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ServiceControl" href="http://msdn.microsoft.com/library/aa371634.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+    </xs:element>
+
+    <xs:element name="ServiceControl">
+        <xs:annotation>
+            <xs:documentation>
+                Starts, stops, and removes services for parent Component. This element is used to control the state 
+                of a service installed by the MSI or MSM file by using the start, stop and remove attributes.
+                For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install, 
+                remove the service when the product is uninstalled, and stop the service both on install and uninstall.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ServiceControl" href="http://msdn.microsoft.com/library/aa371634.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="ServiceArgument" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Ordered list of arguments used when modifying services.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:sequence>
+
+            <xs:attribute name="Id" type="xs:string" use="required"/>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Name of the service.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Start" type="InstallUninstallType">
+                <xs:annotation><xs:documentation>
+                    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.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Stop" type="InstallUninstallType">
+                <xs:annotation><xs:documentation>
+                    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.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Remove" type="InstallUninstallType">
+                <xs:annotation><xs:documentation>
+                    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.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Wait" type="YesNoType">
+                <xs:annotation><xs:documentation>Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="RequiredPrivilege" type="xs:string">
+        <xs:annotation>
+            <xs:documentation>
+                Privilege required by service configured by ServiceConfig parent. Valid values are a <html:a href="http://msdn.microsoft.com/en-us/library/bb530716.aspx">privilege constant</html:a> or a
+                Formatted property that resolves to a privilege constant.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiServiceConfig" href="http://msdn.microsoft.com/library/aa371634.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+    </xs:element>
+
+    <xs:element name="ServiceConfig">
+        <xs:annotation>
+            <xs:documentation>
+                Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiServiceConfig" href="http://msdn.microsoft.com/library/aa371637.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="RequiredPrivilege">
+                    <xs:annotation><xs:documentation>List of privileges to apply to service.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
+                    specified.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DelayedAutoStart" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    This attribute specifies whether an auto-start service should delay its start until after all other auto-start
+                    services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that
+                    resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="FailureActionsWhen" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError"
+                    or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop").  If this attribute
+                    is not present the setting is not configured.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="PreShutdownDelay" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system
+                    shutdown.  If this attribute is not present the default value, 3 minutes, is used.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="OnInstall" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
+                    and OnUninstall.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="OnReinstall" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
+                    and OnUninstall.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="OnUninstall" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
+                    and OnReinstall.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ServiceName" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
+                    a ServiceInstall element.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ServiceSid" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property
+                    that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the
+                    setting is not configured.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Failure">
+        <xs:annotation><xs:documentation>Failure action for a ServiceConfigFailureActions element.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Action" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>
+                    Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property
+                    that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand").
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Delay" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>
+                    Specifies the time in milliseconds to wait before performing the value from the Action attribute.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ServiceConfigFailureActions">
+        <xs:annotation>
+            <xs:documentation>
+                Configures the failure actions for a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiServiceConfigFailureActions" href="http://msdn.microsoft.com/library/aa371637.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Failure">
+                    <xs:annotation><xs:documentation>Ordered list of failure actions to apply to service.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Unique identifier for this service configuration. This value will default to the ServiceName attribute if not
+                    specified.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Command" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    This attribute specifies command to execute when a "runCommand" failure action hit.  If an empty string is provided it clears
+                    the existing command. If this attribute is not present the setting is not changed.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="OnInstall" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall
+                    and OnUninstall.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="OnReinstall" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall
+                    and OnUninstall.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="OnUninstall" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall
+                    and OnReinstall.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RebootMessage" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this
+                    attribute is not present the setting is not changed.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ResetPeriod" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ServiceName" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under
+                    a ServiceInstall element.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Environment">
+        <xs:annotation>
+            <xs:documentation>
+                Environment variables added or removed for the parent component.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Environment" href="http://msdn.microsoft.com/library/aa368369.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Unique identifier for environment entry.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Name of the environment variable.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The value to set into the environment variable.
+                        If this attribute is not set, the environment variable is removed during installation if it exists on the machine.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Separator" type="xs:string">
+                <xs:annotation><xs:documentation>Optional attribute to change the separator used between values.  By default a semicolon is used.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Action">
+                <xs:annotation><xs:documentation>Specfies whether the environmental variable should be created, set or removed when the parent component is installed.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="create">
+                            <xs:annotation><xs:documentation>Creates the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists.</xs:documentation></xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="set">
+                            <xs:annotation><xs:documentation>Creates the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation.</xs:documentation></xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="remove">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Removes the environment variable during an installation.
+                                    The installer only removes an environment variable during an installation if the name and value
+                                    of the variable match the entries in the Name and Value attributes.
+                                    If you want to remove an environment variable, regardless of its value, do not set the Value attribute.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Part">
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="all">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    This value is the entire environmental variable.  This is the default.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="first">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    This value is prefixed.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="last">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    This value is appended.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Permanent" type="YesNoType">
+                <xs:annotation><xs:documentation>Specifies that the environment variable should not be removed on uninstall.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="System" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Specifies that the environment variable should be added to the system environment space.  The default
+                    is 'no' which indicates the environment variable is added to the user environment space.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Condition">
+        <xs:annotation>
+            <xs:documentation>
+                Conditions for components, controls, features, and products. The condition is specified in the inner text of the element.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Component" href="http://msdn.microsoft.com/library/aa368007.aspx"/>
+                <xse:msiRef table="ControlCondition" href="http://msdn.microsoft.com/library/aa368035.aspx"/>
+                <xse:msiRef table="Condition" href="http://msdn.microsoft.com/library/aa368014.aspx"/>
+                <xse:msiRef table="LaunchCondition" href="http://msdn.microsoft.com/library/aa369752.aspx"/>
+                <xse:howtoRef href="block_install_on_os.htm">How To: Block installation based on OS version</xse:howtoRef>
+                <xse:howtoRef href="check_the_version_number.htm">How To: Check the version number of a file during installation</xse:howtoRef>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation><xs:documentation>
+                        Under a Component element, the condition becomes the condition of the component.  Under a Control element, 
+                        the condition becomes a ControlCondition entry.  Under a Feature element, the condition becomes a Condition
+                        entry.  Under a Fragment or Product element, the condition becomes a LaunchCondition entry.
+                    </xs:documentation></xs:annotation>
+                    <xs:attribute name="Action">
+                        <xs:annotation><xs:documentation>
+                            Used only under Control elements and is required.  Allows specific actions to be applied to a control based
+                            on the result of this condition.
+                        </xs:documentation></xs:annotation>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:NMTOKEN">
+                                <xs:enumeration value="default">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Set the Control as the default. Only used under Control elements.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="enable">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Enable the Control. Only used under Control elements.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="disable">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Disable the Control. Only used under Control elements.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="hide">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Hide the Control. Only used under Control elements.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="show">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Display the Control. Only used under Control elements.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:attribute>
+                    <xs:attribute name="Level" type="xs:integer">
+                        <xs:annotation><xs:documentation>
+                            Used only under Feature elements and is required.  Allows modifying the level of a Feature based on the
+                            result of this condition.
+                        </xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Message" type="xs:string">
+                        <xs:annotation><xs:documentation>
+                            Used only under Fragment or Product elements and is required.  Set the value to the text to display when the
+                            condition fails and the installation must be terminated.
+                        </xs:documentation></xs:annotation>
+                    </xs:attribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="IsolateComponent">
+        <xs:annotation>
+            <xs:documentation>
+                Shared Component to be privately replicated in folder of parent Component
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="IsolateComponent" href="http://msdn.microsoft.com/library/aa369730.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Shared" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Shared Component for this application Component.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ReserveCost">
+        <xs:annotation>
+            <xs:documentation>
+                Disk cost to reserve in a folder for running locally and/or from source.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ReserveCost" href="http://msdn.microsoft.com/library/aa371226.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>A primary key that uniquely identifies this ReserveCost entry.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Directory" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory.
+                        If this attribute is not set, it will default to the directory of parent component.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RunFromSource" type="xs:integer" use="required">
+                <xs:annotation>
+                    <xs:documentation>The number of bytes of disk space to reserve if the component is installed to run from source.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RunLocal" type="xs:integer" use="required">
+                <xs:annotation>
+                    <xs:documentation>The number of bytes of disk space to reserve if the component is installed to run locally.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Component">
+        <xs:annotation>
+            <xs:documentation>Component for parent Directory</xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="ComponentRef"/>
+                <xse:seeAlso ref="Media"/>
+                <xse:msiRef table="Component" href="http://msdn.microsoft.com/library/aa368007.aspx"/>
+                <xse:msiRef table="Condition" href="http://msdn.microsoft.com/library/aa368014.aspx"/>
+                <xse:msiRef table="Directory" href="http://msdn.microsoft.com/library/aa368295.aspx"/>
+                <xse:howtoRef href="add_a_file.htm">How To: Add a file to your installer</xse:howtoRef>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="AppId"/>
+                <xs:element ref="Category"/>
+                <xs:element ref="Class"/>
+                <xs:element ref="Condition"/>
+                <xs:element ref="CopyFile"/>
+                <xs:element ref="CreateFolder"/>
+                <xs:element ref="Environment"/>
+                <xs:element ref="Extension"/>
+                <xs:element ref="File"/>
+                <xs:element ref="IniFile"/>
+                <xs:element ref="Interface"/>
+                <xs:element ref="IsolateComponent"/>
+                <xs:element ref="ODBCDataSource"/>
+                <xs:element ref="ODBCDriver"/>
+                <xs:element ref="ODBCTranslator"/>
+                <xs:element ref="ProgId"/>
+                <xs:element ref="Registry"/>
+                <xs:element ref="RegistryKey"/>
+                <xs:element ref="RegistryValue"/>
+                <xs:element ref="RemoveFile"/>
+                <xs:element ref="RemoveFolder"/>
+                <xs:element ref="RemoveRegistryKey"/>
+                <xs:element ref="RemoveRegistryValue"/>
+                <xs:element ref="ReserveCost"/>
+                <xs:element ref="ServiceControl"/>
+                <xs:element ref="ServiceConfig"/>
+                <xs:element ref="ServiceConfigFailureActions"/>
+                <xs:element ref="ServiceInstall"/>
+                <xs:element ref="Shortcut"/>
+                <xs:element ref="SymbolPath"/>
+                <xs:element ref="TypeLib"/>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation><xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        elements at this point in the schema.
+                    </xs:documentation></xs:annotation>
+                </xs:any>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        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'.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ComPlusFlags" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set this attribute to create a ComPlus entry.  The value should be the export flags used
+                        during the generation of the .msi file.  For more information see the COM+ documentation
+                        in the Platform SDK.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DisableRegistryReflection" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set this attribute to 'yes' in order to disable registry reflection on all existing and
+                        new registry keys affected by this component.
+                        When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key
+                        being accessed by the component.
+                        This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Directory" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Sets the Directory of the Component.  If this element is nested under a Directory element,
+                        this value defaults to the value of the parent Directory/@Id.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DiskId" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute provides a default DiskId attribute for all child File elements. Specifying
+                        the DiskId on a Component element will override any DiskId attributes set by parent Directory
+                        or DirectoryRef elements. See the File element's DiskId attribute for more information about
+                        the purpose of the DiskId.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Feature" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Identifies a feature to which this component belongs, as a shorthand for a child
+                        ComponentRef element of the Feature element. The value of this attribute should 
+                        correspond to the Id attribute of a Feature element authored elsewhere. Note that 
+                        a single component can belong to multiple features but this attribute allows you 
+                        to specify only a single feature.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Guid" type="ComponentGuid">
+                <xs:annotation>
+                    <xs:documentation>
+                        This value should be a guid that uniquely identifies this component's contents, language, platform, and version.
+                        If omitted, the default value is '*' which indicates that the linker should generate a stable guid.
+                        Generatable guids are supported only for components with a single file as the component's keypath 
+                        or no files and a registry value as the keypath.
+                        It's also possible to set the value to an empty string to specify an unmanaged component.
+                        Unmanaged components are a security vulnerability because the component cannot be removed or repaired
+                        by Windows Installer (it is essentially an unpatchable, permanent component).  Therefore, a guid should
+                        always be specified for any component which contains resources that may need to be patched in the future.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="KeyPath" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        If this attribute's value is set to 'yes', then the Directory of this Component is used
+                        as the KeyPath. To set a Registry 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.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Location">
+                <xs:annotation>
+                    <xs:documentation>
+                        Optional value that specifies the location that the component can be run from.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="local">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="source">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Enforces that the component can only be run from the source (it cannot be run from the user's computer).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="either">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Allows the component to run from source or locally.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="NeverOverwrite" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        If this attribute is set to 'yes', the installer does not install or reinstall the
+                        component if a key path file or a key path registry entry for the component already
+                        exists.  The application does register itself as a client of the component.  Use this
+                        flag only for components that are being registered by the Registry table.  Do not use
+                        this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and
+                        Verb tables.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Permanent" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        If this attribute is set to 'yes', the installer does not remove the component during
+                        an uninstall. The installer registers an extra system client for the component in
+                        the Windows Installer registry settings (which basically just means that at least one
+                        product is always referencing this component).  Note that this option differs from the
+                        behavior of not setting a guid because although the component is permanent, it is still
+                        patchable (because Windows Installer still tracks it), it's just not uninstallable.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Shared" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        If this attribute's value is set to 'yes', enables advanced patching semantics for
+                        Components that are shared across multiple Products.  Specifically, the Windows Installer
+                        will cache the shared files to improve patch uninstall.  This functionality is available
+                        in Windows Installer 4.5 and later.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SharedDllRefCount" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        If this attribute's value is set to 'yes', the installer increments the reference count
+                        in the shared DLL registry of the component's key file.  If this bit is not set, the
+                        installer increments the reference count only if the reference count already exists.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Transitive" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        If this attribute is set to 'yes', the installer reevaluates the value of the statement
+                        in the Condition upon a reinstall.  If the value was previously False and has changed to
+                        True, the installer installs the component.  If the value was previously True and has
+                        changed to False, the installer removes the component even if the component has other
+                        products as clients.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="UninstallWhenSuperseded" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        If this attribute is set to 'yes', the installer will uninstall the Component's files
+                        and registry keys when it is superseded by a patch.  This functionality is available in
+                        Windows Installer 4.5 and later.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Win64" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set this attribute to 'yes' to mark this as a 64-bit component. This attribute facilitates
+                        the installation of packages that include both 32-bit and 64-bit components.  If this bit
+                        is not set, the component is registered as a 32-bit component.  If this is a 64-bit
+                        component replacing a 32-bit component, set this bit and assign a new GUID in the Guid attribute.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ComponentGroup">
+        <xs:annotation>
+            <xs:documentation>
+                Groups together multiple components to be used in other locations.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="ComponentGroupRef"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Component"/>
+                <xs:element ref="ComponentGroupRef"/>
+                <xs:element ref="ComponentRef"/>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation><xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        elements at this point in the schema.
+                    </xs:documentation></xs:annotation>
+                </xs:any>
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Identifier for the ComponentGroup.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ComponentGroupRef">
+        <xs:annotation>
+            <xs:documentation>Create a reference to a ComponentGroup in another Fragment.</xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="ComponentGroup"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The identifier of the ComponentGroup to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Primary" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Set this attribute to 'yes' in order to make the parent feature of this component
+                    the primary feature for this component.  Components may belong to multiple features.
+                    By designating a feature as the primary feature of a component, you ensure that
+                    whenever a component is selected for install-on-demand (IOD), the primary feature
+                    will be the one to install it.  This attribute should only be set if a component
+                    actually nests under multiple features.  If a component nests under only one feature,
+                    that feature is the primary feature for the component.  You cannot set more than one
+                    feature as the primary feature of a given component.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+      <xs:element name="BinaryRef">
+        <xs:annotation>
+            <xs:documentation>Used only for PatchFamilies to include only a binary table entry in a patch.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The identifier of the Binary element to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+  
+      <xs:element name="IconRef">
+        <xs:annotation>
+            <xs:documentation>Used only for PatchFamilies to include only a icon table entry in a patch.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The identifier of the Icon element to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+  
+    <xs:element name="ComponentRef">
+        <xs:annotation>
+            <xs:documentation>Create a reference to a Feature element in another Fragment.</xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Component"/>
+                <xse:howtoRef href="add_a_file.htm">How To: Add a file to your installer</xse:howtoRef>               
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The identifier of the Component element to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Primary" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Set this attribute to 'yes' in order to make the parent feature of this component
+                    the primary feature for this component.  Components may belong to multiple features.
+                    By designating a feature as the primary feature of a component, you ensure that
+                    whenever a component is selected for install-on-demand (IOD), the primary feature
+                    will be the one to install it.  This attribute should only be set if a component
+                    actually nests under multiple features.  If a component nests under only one feature,
+                    that feature is the primary feature for the component.  You cannot set more than one
+                    feature as the primary feature of a given component.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Merge">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="MergeRef"/>
+                <xse:howtoRef href="install_vcredist.htm">How To: Install the Visual C++ Redistributable with your installer</xse:howtoRef>
+            </xs:appinfo>
+            <xs:documentation>Merge directive to bring in a merge module that will be redirected to the parent directory.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="ConfigurationData">
+                    <xs:annotation><xs:documentation>Data to use as input to a configurable merge module.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The unique identifier for the Merge element in the source code.  Referenced by the MergeRef/@Id.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DiskId" type="xs:string">
+                <xs:annotation><xs:documentation>The value of this attribute should correspond to the Id attribute of a
+                    Media element authored elsewhere.  By creating this connection between the merge module and Media
+                    element, you set the packaging options to the values specified in the Media
+                    element (values such as compression level, cab embedding, etc...).</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="FileCompression" type="YesNoType">
+                <xs:annotation><xs:documentation>Specifies if the files in the merge module should be compressed.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Language" type="LocalizableInteger" use="required">
+                <xs:annotation><xs:documentation>Specifies the decimal LCID or localization token for the language to merge the Module in as.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceFile" type="xs:string">
+                <xs:annotation><xs:documentation>Path to the source location of the merge module.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="src" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the SourceFile attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="SourceFile" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="MergeRef">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Merge"/>
+                <xse:howtoRef href="install_vcredist.htm">How To: Install the Visual C++ Redistributable with your installer</xse:howtoRef>                
+            </xs:appinfo>
+            <xs:documentation>Merge reference to connect a Merge Module to parent Feature</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The unique identifier for the Merge element to be referenced.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Primary" type="YesNoType">
+                <xs:annotation><xs:documentation>Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ConfigurationData">
+        <xs:annotation><xs:documentation>Data to use as input to a configurable merge module.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Name" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Key into the ModuleConfiguration table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Value to be passed to configurable merge module.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Directory">
+        <xs:annotation>
+            <xs:documentation>Directory layout for the product.  Also specifies the mappings between source and target directories.</xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="DirectoryRef"/>
+                <xse:msiRef table="Directory" href="http://msdn.microsoft.com/library/aa368295.aspx" />
+                <xse:howtoRef href="add_a_file.htm">How To: Add a file to your installer</xse:howtoRef>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Component"/>
+                <xs:element ref="Directory"/>
+                <xs:element ref="Merge"/>
+                <xs:element ref="SymbolPath"/>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation><xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        elements at this point in the schema.
+                    </xs:documentation></xs:annotation>
+                </xs:any>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>This value is the unique identifier of the directory entry.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ComponentGuidGenerationSeed" type="Guid">
+                <xs:annotation>
+                    <xs:documentation>
+                        The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*")
+                        is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder, etc).
+                        It is recommended that this attribute be avoided and that developers install their Components under standard 
+                        directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is
+                        important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until
+                        the directory name changes.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DiskId" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>
+                        Sets the default disk identifier for the files contained in this directory.
+                        This attribute's value may be overridden by a child Component, Directory,
+                        Merge or File element. See the File or Merge elements' DiskId attribute for
+                        more information.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="FileSource" type="xs:string">
+                <xs:annotation><xs:documentation>Used to set the file system source for this directory's child elements. For more information, see <html:a href="specifying_source_files.htm">Specifying source files</html:a>.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LongName" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the Name attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="Name" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LongSource" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the SourceName attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="SourceName" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The name of the directory.
+
+                        Do not specify this attribute (or the LongName attribute) if this directory represents
+                        the same directory as the parent (see the Windows Installer SDK's
+                        <html:a href='http://msdn2.microsoft.com/library/Aa368295.aspx' target='_blank'>Directory table</html:a>
+                        topic for more information about the "." operator).
+
+                        In prior versions of the WiX toolset, this attribute specified the short directory name.
+                        This attribute's value may now be either a short or long directory name.
+                        If a short directory name is specified, the ShortName attribute may not be specified.
+                        If a long directory name is specified, the LongName attribute may not be specified.
+                        Also, if this value is a long directory name, the ShortName attribute may be omitted to
+                        allow WiX to attempt to generate a unique short directory name.
+                        However, if this name collides with another directory or you wish to manually specify
+                        the short directory name, then the ShortName attribute may be specified.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShortName" type="ShortFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The short name of the directory in 8.3 format.
+                        This attribute should only be set if there is a conflict between generated short directory names
+                        or the user wants to manually specify the short directory name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShortSourceName" type="ShortFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The short name of the directory on the source media in 8.3 format.
+                        This attribute should only be set if there is a conflict between generated short directory names
+                        or the user wants to manually specify the short source directory name.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceName" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The name of the directory on the source media.
+                        If this attribute is not specified, Windows Installer will default to the Name attribute.
+
+                        In prior versions of the WiX toolset, this attribute specified the short source directory name.
+                        This attribute's value may now be either a short or long directory name.
+                        If a short directory name is specified, the ShortSourceName attribute may not be specified.
+                        If a long directory name is specified, the LongSource attribute may not be specified.
+                        Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to
+                        allow WiX to attempt to generate a unique short directory name.
+                        However, if this name collides with another directory or you wish to manually specify
+                        the short directory name, then the ShortSourceName attribute may be specified.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="src" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the FileSource attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="FileSource" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="DirectoryRef">
+        <xs:annotation>
+            <xs:documentation>Create a reference to a Directory element in another Fragment.</xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Directory"/>
+                <xse:howtoRef href="add_a_file.htm">How To: Add a file to your installer</xse:howtoRef>                
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Component"/>
+                <xs:element ref="Directory"/>
+                <xs:element ref="Merge"/>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation><xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        elements at this point in the schema.
+                    </xs:documentation></xs:annotation>
+                </xs:any>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The identifier of the Directory element to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="DiskId" type="xs:integer">
+                <xs:annotation>
+                    <xs:documentation>
+                        Sets the default disk identifier for the files contained in this directory.
+                        This attribute's value may be overridden by a child Component, Directory,
+                        Merge or File element. See the File or Merge elements' DiskId attribute for
+                        more information.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="FileSource" type="xs:string">
+                <xs:annotation><xs:documentation>Used to set the file system source for this DirectoryRef's child elements. For more information, see <html:a href="specifying_source_files.htm">Specifying source files</html:a>.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="src" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the FileSource attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="FileSource" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="UpgradeVersion">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="Upgrade" href="http://msdn.microsoft.com/library/aa372379.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:attribute name="Minimum" type="xs:string">
+                        <xs:annotation><xs:documentation>Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Maximum" type="xs:string">
+                        <xs:annotation><xs:documentation>Specifies the upper boundary of the range of product versions detected by FindRelatedProducts.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Language" type="xs:string">
+                        <xs:annotation><xs:documentation>Specifies the set of languages detected by FindRelatedProducts.  Enter a list of numeric language identifiers (LANGID) separated by commas (,).  Leave this value null to specify all languages.  Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="RemoveFeatures" type="xs:string">
+                        <xs:annotation><xs:documentation>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.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Property" type="xs:string" use="required">
+                        <xs:annotation><xs:documentation>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 <html:a href="http://msdn2.microsoft.com/library/aa372379.aspx" target="_blank">Upgrade table</html:a> states that the property specified in this field must be a public property and must be added to the <html:a href="http://msdn2.microsoft.com/library/aa371571.aspx" target="_blank">SecureCustomProperties</html:a> 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.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="MigrateFeatures" type="YesNoType">
+                        <xs:annotation><xs:documentation>Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="OnlyDetect" type="YesNoType">
+                        <xs:annotation><xs:documentation>Set to "yes" to detect products and applications but do not uninstall.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="IgnoreRemoveFailure" type="YesNoType">
+                        <xs:annotation><xs:documentation>Set to "yes" to continue installation upon failure to remove a product or application.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="IncludeMinimum" type="YesNoType">
+                        <xs:annotation><xs:documentation>Set to "no" to make the range of versions detected exclude the value specified in Minimum.  This attribute is "yes" by default.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="IncludeMaximum" type="YesNoType">
+                        <xs:annotation><xs:documentation>Set to "yes" to make the range of versions detected include the value specified in Maximum.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="ExcludeLanguages" type="YesNoType">
+                        <xs:annotation><xs:documentation>Set to "yes" to detect all languages, excluding the languages listed in the Language attribute.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:anyAttribute namespace="##other" processContents="lax">
+                        <xs:annotation><xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            attributes at this point in the schema.
+                        </xs:documentation></xs:annotation>
+                    </xs:anyAttribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Upgrade">
+        <xs:annotation>
+            <xs:documentation>
+                Upgrade info for a particular UpgradeCode
+          </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Upgrade" href="http://msdn.microsoft.com/library/aa372379.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="UpgradeVersion"/>
+                <xs:element ref="Property">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Nesting a Property element under an Upgrade element has been deprecated.
+                            Please nest Property elements in any of the other supported locations.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="Guid" use="required">
+                <xs:annotation><xs:documentation>This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Feature">
+        <xs:annotation>
+            <xs:documentation>
+                A feature for the Feature table.  Features are the smallest installable unit.  See msi.chm for more
+                detailed information on the myriad installation options for a feature.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="FeatureRef"/>
+                <xse:msiRef table="Feature" href="http://msdn.microsoft.com/library/aa368585.aspx"/>
+                <xse:howtoRef href="add_a_file.htm">How To: Add a file to your installer</xse:howtoRef>                
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Component"/>
+                <xs:element ref="ComponentGroupRef"/>
+                <xs:element ref="ComponentRef"/>
+                <xs:element ref="Condition"/>
+                <xs:element ref="Feature"/>
+                <xs:element ref="FeatureGroupRef"/>
+                <xs:element ref="FeatureRef"/>
+                <xs:element ref="MergeRef"/>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation><xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        elements at this point in the schema.
+                    </xs:documentation></xs:annotation>
+                </xs:any>
+            </xs:choice>
+
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Unique identifier of the feature.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Absent">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute determines if a user will have the option to set a feature to absent in the user interface.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="allow">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Allows the user interface to display an option to change the feature state to Absent.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="disallow">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Prevents the user interface from displaying an option to change the feature state
+                                    to Absent by setting the msidbFeatureAttributesUIDisallowAbsent attribute.  This will force the feature
+                                    to the installation state, whether or not the feature is visible in the UI.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="AllowAdvertise">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute determines the possible advertise states for this feature.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="no">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Prevents this feature from being advertised by setting the msidbFeatureAttributesDisallowAdvertise attribute.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="system">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Prevents advertising for this feature if the operating system shell does not support Windows Installer
+                                    descriptors by setting the msidbFeatureAttributesNoUnsupportedAdvertise attribute.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="yes">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Allows the feature to be advertised.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="ConfigurableDirectory" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Specify the Id of a Directory that can be configured by the user at installation time.  This identifier
+                    must be a public property and therefore completely uppercase.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Longer string of text describing the feature.  This localizable string is displayed by the
+                    Text Control of the Selection Dialog.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Display" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Determines the initial display of this feature in the feature tree.
+                        This attribute's value should be one of the following:
+                        <html:dl>
+                            <html:dt class="enumerationValue">
+                                <html:dfn>collapse</html:dfn>
+                            </html:dt>
+                            <html:dd>Initially shows the feature collapsed.  This is the default value.</html:dd>
+                            <html:dt class="enumerationValue">
+                                <html:dfn>expand</html:dfn>
+                            </html:dt>
+                            <html:dd>Initially shows the feature expanded.</html:dd>
+                            <html:dt class="enumerationValue">
+                                <html:dfn>hidden</html:dfn>
+                            </html:dt>
+                            <html:dd>Prevents the feature from displaying in the user interface.</html:dd>
+                            <html:dt class="enumerationValue">
+                                <html:dfn>&lt;an explicit integer value&gt;</html:dfn>
+                            </html:dt>
+                            <html:dd>
+                                For advanced users only, it is possible to directly set the integer value
+                                of the display value that will appear in the Feature row.
+                            </html:dd>
+                        </html:dl>
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="InstallDefault">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute determines the default install/run location of a feature.  This attribute cannot be specified
+                        if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature
+                        to follow the parent installation state and simultaneously favor a particular installation state just for this feature.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="followParent">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Forces the feature to follow the same installation state as its parent feature.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="local">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="source">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Level" type="xs:integer" use="required">
+                <xs:annotation><xs:documentation>
+                    Sets the install level of this feature.  A value of 0 will disable the feature.  Processing the
+                    Condition Table can modify the level value (this is set via the Condition child element).
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Title" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    Short string of text identifying the feature.  This string is listed as an item by the
+                    SelectionTree control of the Selection Dialog.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TypicalDefault">
+                <xs:annotation><xs:documentation>
+                    This attribute determines the default advertise state of the feature.
+                </xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="advertise">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute.
+                                    This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to
+                                    disallow the advertised state for this feature while at the same time favoring it.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="install">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Sets the feature to the default non-advertised installation option.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="FeatureGroup">
+        <xs:annotation>
+            <xs:documentation>
+                Groups together multiple components, features, and merges to be used in other locations.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="FeatureGroupRef"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Component"/>
+                <xs:element ref="ComponentGroupRef"/>
+                <xs:element ref="ComponentRef"/>
+                <xs:element ref="Feature"/>
+                <xs:element ref="FeatureGroupRef"/>
+                <xs:element ref="FeatureRef"/>
+                <xs:element ref="MergeRef"/>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            elements at this point in the schema.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:any>
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Identifier for the FeatureGroup.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation>
+                    <xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        attributes at this point in the schema.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="FeatureGroupRef">
+        <xs:annotation>
+            <xs:documentation>Create a reference to a FeatureGroup in another Fragment.</xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="FeatureGroup"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The identifier of the FeatureGroup to reference.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreParent" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Normally feature group references that end up nested under a parent element create a 
+                    connection to that parent. This behavior is undesirable when trying to simply reference
+                    to a FeatureGroup in a different Fragment.  Specify 'yes' to have this feature group
+                    reference not create a connection to its parent. The default is 'no'.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Primary" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set this attribute to 'yes' in order to make the parent feature of this group
+                        the primary feature for any components and merges contained in the group. 
+                        Features may belong to multiple features.  By designating a feature as the 
+                        primary feature of a component or merge, you ensure that whenever a component is 
+                        selected for install-on-demand (IOD), the primary feature will be the one to install 
+                        it.  This attribute should only be set if a component actually nests under multiple 
+                        features.  If a component nests under only one feature, that feature is the primary 
+                        feature for the component.  You cannot set more than one feature as the primary 
+                        feature of a given component.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation>
+                    <xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        attributes at this point in the schema.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="FeatureRef">
+        <xs:annotation>
+            <xs:documentation>Create a reference to a Feature element in another Fragment.</xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Feature"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Component"/>
+                <xs:element ref="ComponentGroupRef"/>
+                <xs:element ref="ComponentRef"/>
+                <xs:element ref="Feature"/>
+                <xs:element ref="FeatureRef"/>
+                <xs:element ref="FeatureGroup"/>
+                <xs:element ref="FeatureGroupRef"/>
+                <xs:element ref="MergeRef"/>
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation><xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        elements at this point in the schema.
+                    </xs:documentation></xs:annotation>
+                </xs:any>
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The identifier of the Feature element to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreParent" type="YesNoType">
+                <xs:annotation><xs:documentation>
+                    Normally feature references that are nested under a parent element create a connection to that
+                    parent. This behavior is undesirable when trying to simply reference a Feature in a different
+                    Fragment.  Specify 'yes' to have this feature reference not create a connection to its parent.
+                    The default is 'no'.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Media">
+        <xs:annotation>
+            <xs:documentation>Media element describes a disk that makes up the source media for the installation.</xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Media" href="http://msdn.microsoft.com/library/aa369801.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:element ref="DigitalSignature" minOccurs="0" />
+                    <xs:element ref="PatchBaseline" minOccurs="0" maxOccurs="unbounded"/>
+                    <xs:element ref="SymbolPath"/>
+                </xs:choice>
+            </xs:sequence>
+            <xs:attribute name="Id" type="xs:integer" use="required">
+                <xs:annotation><xs:documentation>Disk identifier for Media table. This number must be equal to or greater than 1.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Cabinet" type="xs:string">
+                <xs:annotation><xs:documentation>The name of the cabinet if some or all of the files stored on the media are in a cabinet file.  If no cabinets are used, this attribute must not be set.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CompressionLevel">
+                <xs:annotation>
+                    <xs:documentation>
+                        Indicates the compression level for the Media's cabinet.  This attribute can 
+                        only be used in conjunction with the Cabinet attribute.  The default is 'mszip'.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="high"/>
+                        <xs:enumeration value="low"/>
+                        <xs:enumeration value="medium"/>
+                        <xs:enumeration value="mszip"/>
+                        <xs:enumeration value="none"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="DiskPrompt" type="xs:string">
+                <xs:annotation><xs:documentation>The disk name, which is usually the visible text printed on the disk. This localizable text is used to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="EmbedCab" type="YesNoType">
+                <xs:annotation><xs:documentation>Instructs the binder to embed the cabinet in the product if 'yes'.  This attribute can only be specified in conjunction with the Cabinet attribute.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Layout" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute specifies the root directory for the uncompressed files that
+                        are a part of this Media element.  By default, the src will be the output
+                        directory for the final image.  The default value ensures the binder generates
+                        an installable image.  If a relative path is specified in the src attribute,
+                        the value will be appended to the image's output directory.  If an absolute
+                        path is provided, that path will be used without modification.  The latter two
+                        options are provided to ease the layout of an image onto multiple medias (CDs/DVDs).
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="src" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the Layout attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="Layout" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="VolumeLabel" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The label attributed to the volume. This is the volume label returned 
+                        by the GetVolumeInformation function. If the SourceDir property refers 
+                        to a removable (floppy or CD-ROM) volume, then this volume label is 
+                        used to verify that the proper disk is in the drive before attempting 
+                        to install files. The entry in this column must match the volume label 
+                        of the physical media. 
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Source" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Optional property that identifies the source of the embedded cabinet.
+                        If a cabinet is specified for a patch, this property should be defined
+                        and unique to each patch so that the embedded cabinet containing patched
+                        and new files can be located in the patch package. If the cabinet is not
+                        embedded - this is not typical - the cabinet can be found in the directory
+                        referenced in this column. If empty, the external cabinet must be located
+                        in the SourceDir directory.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="IgnoreModularization">
+        <xs:annotation>
+            <xs:documentation>
+                This element has been deprecated.
+                Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attributes instead.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Name" use="required" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The name of the item to ignore modularization for.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Type">
+                <xs:annotation>
+                    <xs:documentation>
+                        The type of the item to ignore modularization for.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="Action" />
+                        <xs:enumeration value="Property" />
+                        <xs:enumeration value="Directory" />
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="CustomAction">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Custom"/>
+                <xse:seeAlso ref="CustomActionRef"/>
+                <xse:msiRef table="CustomAction" href="http://msdn.microsoft.com/library/aa368062.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>
+                Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element
+                correspond to different custom action types. For more information about custom actions see the
+                <html:a href="http://msdn.microsoft.com/library/aa372048.aspx" target="_blank">
+                Custom Action Types</html:a> topic on MSDN.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation><xs:documentation>
+                        The text node is only valid if the Script attribute is specified.  In that case, the text node contains the script to embed.
+                    </xs:documentation></xs:annotation>
+
+                    <xs:attribute name="Id" type="xs:string" use="required">
+                        <xs:annotation><xs:documentation>
+                            The identifier of the custom action.
+                        </xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <!-- CustomAction Source specification, sets source Attribute bits -->
+                    <xs:attribute name="BinaryKey" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute is a reference to a Binary element with matching Id attribute.  That binary stream contains
+                                the custom action for use during install.  The custom action will not be installed into a target directory.  This attribute is
+                                typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand
+                                attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes 
+                                to specify a type 5 or 6 custom action.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="FileKey" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies a reference to a File element with matching Id attribute that
+                                will execute the custom action code in the file after the file is installed.  This 
+                                attribute is typically used with the ExeCommand attribute to specify a type 18 custom action
+                                that runs an installed executable, with the DllEntry attribute to specify an installed custom
+                                action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall 
+                                attributes to specify a type 21 or 22 custom action.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Property" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property
+                                to be used or updated on execution of this custom action. This attribute is 
+                                typically used with the Value attribute to create a type 51 custom action that parses 
+                                the text in Value and places it into the specified Property.  This attribute is also used with 
+                                the ExeCommand attribute to create a type 50 custom action that uses the value of the 
+                                given property to specify the path to the executable. Type 51 custom actions are often useful to
+                                pass values to a deferred custom action.
+                                See <html:a href="http://msdn.microsoft.com/library/aa370543.aspx" target="_blank">
+                                http://msdn.microsoft.com/library/aa370543.aspx</html:a>
+                                for more information.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Directory" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path. 
+                                This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34 
+                                custom action, or with the Value attribute to specify a formatted string to place in the specified Directory 
+                                table entry in a type 35 custom action.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <!-- CustomAction Target specification, sets target Attribute bits -->
+                    <xs:attribute name="DllEntry" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies the name of a function in a custom action to execute.
+                                This attribute is used with the BinaryKey attribute to create a type 1 custom 
+                                action, or with the FileKey attribute to create a type 17 custom action.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="ExeCommand" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies the command line parameters to supply to an externally 
+                                run executable. This attribute is typically used with the BinaryKey attribute for a type 2 custom action, 
+                                the FileKey attribute for a type 18 custom action, the Property attribute for a type 50 custom action,
+                                or the Directory attribute for a type 34 custom action that specify the executable to run. 
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="JScriptCall" type="xs:string">
+                        <xs:annotation><xs:documentation>
+                            This attribute specifies the name of the JScript function to execute in a script. The script must be
+                            provided in a Binary element identified by the BinaryKey attribute described above. In other words, this
+                            attribute must be specified in conjunction with the BinaryKey attribute.
+                        </xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="VBScriptCall" type="xs:string">
+                        <xs:annotation><xs:documentation>
+                            This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be
+                            provided in a Binary element identified by the BinaryKey attribute described above. In other words, this
+                            attribute must be specified in conjunction with the BinaryKey attribute.
+                        </xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Script">
+                        <xs:annotation><xs:documentation>
+                            Creates a type 37 or 38 custom action.  The text of the element should contain the script to be embedded in the package.
+                        </xs:documentation></xs:annotation>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:NMTOKEN">
+                                <xs:enumeration value="jscript"/>
+                                <xs:enumeration value="vbscript"/>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:attribute>
+                    <xs:attribute name="SuppressModularization" type="YesNoType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                Use to suppress modularization of this custom action name in merge modules.
+                                This should only be necessary for table-driven custom actions because the
+                                table name which they interact with cannot be modularized, so there can only
+                                be one instance of the table.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Value" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies a string value to use in the custom action. This attribute
+                                must be used with the Property attribute to set the property as part of a
+                                type 51 custom action or with the Directory attribute to set a directory path in that
+                                table in a type 35 custom action. The value can be a literal value or derived from a
+                                Property element using the <html:a href='http://msdn.microsoft.com/library/aa368609.aspx' target='_blank'>Formatted</html:a>
+                                syntax. 
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Error" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies an index in the MSI Error table to use as an error message for a 
+                                type 19 custom action that displays the error message and aborts a product's installation.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <!-- Other CustomAction type attributes -->
+                    <xs:attribute name="Return">
+                        <xs:annotation>
+                            <xs:documentation>
+                                Set this attribute to set the return behavior of the custom action.
+                            </xs:documentation>
+                        </xs:annotation>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:NMTOKEN">
+                                <xs:enumeration value="asyncNoWait">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Indicates that the custom action will run asyncronously and execution may continue after the installer terminates.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="asyncWait">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="check">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Indicates that the custom action will run synchronously and the return code will be checked for success.  This is the default.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="ignore">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Indicates that the custom action will run synchronously and the return code will not be checked.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:attribute>
+                    <xs:attribute name="Execute">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute indicates the scheduling of the custom action.
+                            </xs:documentation>
+                        </xs:annotation>
+                        <xs:simpleType>
+                            <xs:restriction base="xs:NMTOKEN">
+                                <xs:enumeration value="commit">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Indicates that the custom action will run after successful completion of the installation script (at the end of the installation).
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="deferred">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Indicates that the custom action runs in-script (possibly with elevated privileges).
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="firstSequence">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Indicates that the custom action will only run in the first sequence that runs it.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="immediate">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Indicates that the custom action will run during normal processing time with user privileges.  This is the default.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="oncePerProcess">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Indicates that the custom action will only run in the first sequence that runs it in the same process.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="rollback">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Indicates that a custom action will run in the rollback sequence when a failure
+                                            occurs during installation, usually to undo changes made by a deferred custom action.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                                <xs:enumeration value="secondSequence">
+                                    <xs:annotation>
+                                        <xs:documentation>
+                                            Indicates that a custom action should be run a second time if it was previously run in an earlier sequence.
+                                        </xs:documentation>
+                                    </xs:annotation>
+                                </xs:enumeration>
+                            </xs:restriction>
+                        </xs:simpleType>
+                    </xs:attribute>
+                    <xs:attribute name="Impersonate" type="YesNoType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies whether the Windows Installer, which executes as LocalSystem, 
+                                should impersonate the user context of the installing user when executing this custom action. 
+                                Typically the value should be 'yes', except when the custom action needs elevated privileges
+                                to apply changes to the machine.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="PatchUninstall" type="YesNoType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies that the Windows Installer, execute the custom action only when
+                                a patch is being uninstalled.  These custom actions should also be conditioned using the
+                                MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5)
+                                behavior.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Win64" type="YesNoType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                Specifies that a script custom action targets a 64-bit platform. Valid only when used with
+                                the Script, VBScriptCall, and JScriptCall attributes.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="TerminalServerAware" type="YesNoType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies controls whether the custom action will impersonate the 
+                                installing user during per-machine installs on Terminal Server machines.
+                                Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no',
+                                will run with no user impersonation on Terminal Server machines during 
+                                per-machine installations.  This attribute is only applicable when installing on the 
+                                Windows Server 2003 family.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="HideTarget" type="YesNoType">
+                        <xs:annotation><xs:documentation>Ensures the installer does not log the CustomActionData for the deferred custom action.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:anyAttribute namespace="##other" processContents="lax">
+                        <xs:annotation><xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            attributes at this point in the schema.
+                        </xs:documentation></xs:annotation>
+                    </xs:anyAttribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="CustomActionRef">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="CustomAction"/>
+            </xs:appinfo>
+            <xs:documentation>
+                This will cause the entire contents of the Fragment containing the referenced CustomAction to be 
+                included in the installer database.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The identifier of the CustomAction to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="SetDirectory">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Custom"/>
+                <xse:seeAlso ref="CustomActionRef"/>
+                <xse:seeAlso ref="InstallUISequence"/>
+                <xse:seeAlso ref="InstallExecuteSequence"/>
+                <xse:msiRef table="CustomAction" href="http://msdn.microsoft.com/library/aa368062.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>
+                Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
+                the InstallUISequence and InstallExecuteSequence.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation><xs:documentation>
+                        The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped.
+                    </xs:documentation></xs:annotation>
+
+                    <xs:attribute name="Id" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to
+                                the Value attribute.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Sequence" type="SequenceType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                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.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Value" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a
+                                Property element using the <html:a href='http://msdn.microsoft.com/library/aa368609.aspx' target='_blank'>Formatted</html:a>
+                                syntax.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:anyAttribute namespace="##other" processContents="lax">
+                        <xs:annotation><xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            attributes at this point in the schema.
+                        </xs:documentation></xs:annotation>
+                    </xs:anyAttribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="SetProperty">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Custom"/>
+                <xse:seeAlso ref="CustomActionRef"/>
+                <xse:seeAlso ref="InstallUISequence"/>
+                <xse:seeAlso ref="InstallExecuteSequence"/>
+                <xse:msiRef table="CustomAction" href="http://msdn.microsoft.com/library/aa368062.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>
+                Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in
+                the InstallUISequence and InstallExecuteSequence.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation><xs:documentation>
+                        The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped.
+                    </xs:documentation></xs:annotation>
+
+                    <xs:attribute name="After" type="xs:string">
+                        <xs:annotation><xs:documentation>The name of the standard or custom action after which this action should be performed. Mutually exclusive with the Before attribute. A Before or After attribute is required when setting a Property.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Before" type="xs:string">
+                        <xs:annotation><xs:documentation>The name of the standard or custom action before which this action should be performed. Mutually exclusive with the After attribute. A Before or After attribute is required when setting a Property.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Id" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies the Property to set to the Value.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Sequence" type="SequenceType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                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.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Value" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a
+                                Property element using the <html:a href='http://msdn.microsoft.com/library/aa368609.aspx' target='_blank'>Formatted</html:a>
+                                syntax.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:anyAttribute namespace="##other" processContents="lax">
+                        <xs:annotation><xs:documentation>
+                            Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                            attributes at this point in the schema.
+                        </xs:documentation></xs:annotation>
+                    </xs:anyAttribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="PatchFamilyRef">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="PatchFamily"/>
+            </xs:appinfo>
+            <xs:documentation>
+                This will cause the entire contents of the Fragment containing the referenced PatchFamily to be 
+                used in the process of creating a patch.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The identifier of the CustomAction to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <!-- - - - - - - - - - - Sequence Table Definitions - - - - - - - - - - - - - - -->
+    <xs:element name="ValidateProductID" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="ValidateProductID" href="http://msdn.microsoft.com/library/aa372475.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Sets the ProductID property to the full product identifier.  This action must be sequenced before the user interface wizard in the InstallUISequence table and before the RegisterUser action in the InstallExecuteSequence table.  If the product identifier has already been validated successfully, the ValidateProductID action does nothing.  The ValidateProductID action always returns a success, whether or not the product identifier is valid, so that the product identifier can be entered on the command line the first time the product is run.  The product identifier can be validated without having the user reenter this information by setting the PIDKEY property on the command line or by using a transform.  The display of the dialog box requesting the user to enter the product identifier can then be made conditional upon the presence of the ProductID property, which is set when the PIDKEY property is validated.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="CostInitialize" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="FileCost"/>
+                <xse:seeAlso ref="CostFinalize"/>
+                <xse:msiRef action="CostInitialize" href="http://msdn.microsoft.com/library/aa368048.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Initiates the internal installation costing process.  Any standard or custom actions that affect costing should be sequenced before the CostInitialize action.  Call the FileCost action immediately following the CostInitialize action.  Then call the CostFinalize action following the CostInitialize action to make all final cost calculations available to the installer through the Component table.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="FileCost" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="CostInitialize"/>
+                <xse:seeAlso ref="CostFinalize"/>
+                <xse:msiRef action="FileCost" href="http://msdn.microsoft.com/library/aa368589.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Initiates dynamic costing of standard installation actions.  Any standard or custom actions that affect costing should sequenced before the CostInitialize action.  Call the FileCost action immediately following the CostInitialize action.  Then call the CostFinalize action following the FileCost action to make all final cost calculations available to the installer through the Component table.  The CostInitialize action must be executed before the FileCost action.  The installer then determines the disk-space cost of every file in the File table, on a per-component basis, taking both volume clustering and the presence of existing files that may need to be overwritten into account.  All actions that consume or release disk space are also considered.  If an existing file is found, a file version check is performed to determine whether the new file actually needs to be installed or not.  If the existing file is of an equal or greater version number, the existing file is not overwritten and no disk-space cost is incurred.  In all cases, the installer uses the results of version number checking to set the installation state of each file.  The FileCost action initializes cost calculation with the installer.  Actual dynamic costing does not occur until the CostFinalize action is executed.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="IsolateComponents" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="IsolateComponent"/>
+                <xse:msiRef action="IsolateComponents" href="http://msdn.microsoft.com/library/aa369561.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe).  This isolates the application from other copies of the component that may be installed to a shared location on the computer.  The action refers to each record of the IsolatedComponent table and associates the files of the component listed in the Component_Shared field with the component listed in the Component_Application field.  The installer installs the files of Component_Shared into the same directory as Component_Application.  The installer generates a file in this directory, zero bytes in length, having the short filename name of the key file for Component_Application (typically this is the same file name as the .exe) appended with .local.  The IsolatedComponent action does not affect the installation of Component_Application.  Uninstalling Component_Application also removes the Component_Shared files and the .local file from the directory.  The IsolateComponents action can be used only in the InstallUISequence table and the InstallExecuteSequence table.  This action must come after the CostInitialize action and before the CostFinalize action.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="CostFinalize" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="CostInitialize"/>
+                <xse:seeAlso ref="FileCost"/>
+                <xse:msiRef action="CostFinalize" href="http://msdn.microsoft.com/library/aa368048.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.  Any standard or custom actions that affect costing should be sequenced before the CostInitialize action.  Call the FileCost action immediately following the CostInitialize action and then call the CostFinalize action to make all final cost calculations available to the installer through the Component table.  The CostFinalize action must be executed before starting any user interface sequence which allows the user to view or modify Feature table selections or directories.  The CostFinalize action queries the Condition table to determine which features are scheduled to be installed.  Costing is done for each component in the Component table.  The CostFinalize action also verifies that all the target directories are writable before allowing the installation to continue.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="SetODBCFolders" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="SetODBCFolders" href="http://msdn.microsoft.com/library/aa371691.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="MigrateFeatureStates" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="MigrateFeatureStates" href="http://msdn.microsoft.com/library/aa370034.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Used for upgrading or installing over an existing application.  Reads feature states from existing application and sets these feature states for the pending installation.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="ExecuteAction" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="ExecuteAction" href="http://msdn.microsoft.com/library/aa368565.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Initiates the execution sequence.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="InstallValidate" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="InstallValidate" href="http://msdn.microsoft.com/library/aa369546.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Verifies that all costed volumes have enough space for the installation.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="InstallInitialize" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="InstallFinalize"/>
+                <xse:msiRef action="InstallInitialize" href="http://msdn.microsoft.com/library/aa369535.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Marks the beginning of a sequence of actions that change the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="AllocateRegistrySpace" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="AllocateRegistrySpace" href="http://msdn.microsoft.com/library/aa367554.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Ensures the needed amount of space exists in the registry.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="ProcessComponents" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="ProcessComponents" href="http://msdn.microsoft.com/library/aa370853.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Registers and unregisters components, their key paths, and the component clients.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="UnpublishComponents" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="UnpublishComponents" href="http://msdn.microsoft.com/library/aa372106.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the unadvertisement of components listed in the PublishComponent table.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="MsiUnpublishAssemblies" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="MsiUnpublishAssemblies" href="http://msdn.microsoft.com/library/aa370500.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the unadvertisement of CLR and Win32 assemblies that are being removed.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="UnpublishFeatures" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="UnpublishFeatures" href="http://msdn.microsoft.com/library/aa372107.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Removes selection-state and feature-component mapping information from the registry.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="StopServices" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="StopServices" href="http://msdn.microsoft.com/library/aa372028.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Stops system services.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="DeleteServices" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="DeleteServices" href="http://msdn.microsoft.com/library/aa368270.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Stops a service and removes its registration from the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="UnregisterComPlus" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="UnregisterComPlus" href="http://msdn.microsoft.com/library/aa372109.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Removes COM+ applications from the registry.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="SelfUnregModules" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="SelfUnregModules" href="http://msdn.microsoft.com/library/aa371610.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="UnregisterTypeLibraries" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="UnregisterTypeLibraries" href="http://msdn.microsoft.com/library/aa372357.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Unregisters type libraries from the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RemoveODBC" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RemoveODBC" href="http://msdn.microsoft.com/library/aa371206.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Removes the data sources, translators, and drivers listed for removal during the installation.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="UnregisterFonts" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="UnregisterFonts" href="http://msdn.microsoft.com/library/aa372112.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Removes registration information about installed fonts from the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RemoveRegistryValues" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RemoveRegistryValues" href="http://msdn.microsoft.com/library/aa371207.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="UnregisterClassInfo" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="UnregisterClassInfo" href="http://msdn.microsoft.com/library/aa372108.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the removal of COM class information from the system registry.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="UnregisterExtensionInfo" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="UnregisterExtensionInfo" href="http://msdn.microsoft.com/library/aa372110.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the removal of extension-related information from the system registry.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="UnregisterProgIdInfo" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="UnregisterProgIdInfo" href="http://msdn.microsoft.com/library/aa372114.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the unregistration of OLE ProgId information with the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="UnregisterMIMEInfo" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="UnregisterMIMEInfo" href="http://msdn.microsoft.com/library/aa372113.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Unregisters MIME-related registry information from the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RemoveIniValues" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RemoveIniValues" href="http://msdn.microsoft.com/library/aa371205.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RemoveShortcuts" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RemoveShortcuts" href="http://msdn.microsoft.com/library/aa371209.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RemoveEnvironmentStrings" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RemoveEnvironmentStrings" href="http://msdn.microsoft.com/library/aa371196.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Modifies the values of environment variables.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RemoveDuplicateFiles" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RemoveDuplicateFiles" href="http://msdn.microsoft.com/library/aa371195.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Deletes files installed by the DuplicateFiles action.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RemoveFiles" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RemoveFiles" href="http://msdn.microsoft.com/library/aa371199.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Removes files previously installed by the InstallFiles action.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RemoveFolders" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RemoveFolders" href="http://msdn.microsoft.com/library/aa371202.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Removes any folders linked to components set to be removed or run from source.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="CreateFolders" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="CreateFolders" href="http://msdn.microsoft.com/library/aa368052.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Creates empty folders for components that are set to be installed.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="MoveFiles" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="MoveFile" href="http://msdn.microsoft.com/library/aa370055.aspx"/>
+                <xse:msiRef action="MoveFiles" href="http://msdn.microsoft.com/library/aa370054.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Locates existing files on the system and moves or copies those files to a new location.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="InstallAdminPackage" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="InstallAdminPackage" href="http://msdn.microsoft.com/library/aa369287.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Copies the product database to the administrative installation point.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="InstallFiles" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="InstallFiles" href="http://msdn.microsoft.com/library/aa369503.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Copies files specified in the File table from the source directory to the destination directory.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="DuplicateFiles" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="DuplicateFiles" href="http://msdn.microsoft.com/library/aa368334.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Duplicates files installed by the InstallFiles action.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="PatchFiles" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="PatchFiles" href="http://msdn.microsoft.com/library/aa370577.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Queries the Patch table to determine which patches are to be applied.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="BindImage" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="BindImage" href="http://msdn.microsoft.com/library/aa367828.aspx"/>
+                <xse:msiRef action="BindImage" href="http://msdn.microsoft.com/library/aa367827.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Binds each executable or DLL that must be bound to the DLLs imported by it.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="CreateShortcuts" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="CreateShortcuts" href="http://msdn.microsoft.com/library/aa368054.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the creation of shortcuts.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RegisterClassInfo" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RegisterClassInfo" href="http://msdn.microsoft.com/library/aa371154.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the registration of COM class information with the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RegisterExtensionInfo" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RegisterExtensionInfo" href="http://msdn.microsoft.com/library/aa371156.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the registration of extension related information with the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RegisterProgIdInfo" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RegisterProgIdInfo" href="http://msdn.microsoft.com/library/aa371164.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the registration of OLE ProgId information with the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RegisterMIMEInfo" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RegisterMIMEInfo" href="http://msdn.microsoft.com/library/aa371160.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Registers MIME-related registry information with the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="WriteRegistryValues" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="WriteRegistryValues" href="http://msdn.microsoft.com/library/aa372891.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Sets up an application's registry information.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="WriteIniValues" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="WriteIniValues" href="http://msdn.microsoft.com/library/aa372884.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Writes the .ini file information that the application needs written to its .ini files.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="WriteEnvironmentStrings" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="WriteEnvironmentStrings" href="http://msdn.microsoft.com/library/aa372883.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Modifies the values of environment variables.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RegisterFonts" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RegisterFonts" href="http://msdn.microsoft.com/library/aa371158.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Registers installed fonts with the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="InstallODBC" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="InstallODBC" href="http://msdn.microsoft.com/library/aa369538.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RegisterTypeLibraries" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RegisterTypeLibraries" href="http://msdn.microsoft.com/library/aa371165.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Registers type libraries with the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="SelfRegModules" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="SelfRegModules" href="http://msdn.microsoft.com/library/aa371607.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Processes all modules listed in the SelfReg table and registers all installed modules with the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RegisterComPlus" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RegisterComPlus" href="http://msdn.microsoft.com/library/aa371155.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Registers COM+ applications.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="InstallServices" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="InstallServices" href="http://msdn.microsoft.com/library/aa369540.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Registers a service for the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="StartServices" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="StartServices" href="http://msdn.microsoft.com/library/aa372026.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Starts system services.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RegisterUser" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RegisterUser" href="http://msdn.microsoft.com/library/aa371166.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Registers the user information with the installer to identify the user of a product.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RegisterProduct" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RegisterProduct" href="http://msdn.microsoft.com/library/aa371162.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Registers the product information with the installer.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="PublishComponents" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="PublishComponents" href="http://msdn.microsoft.com/library/aa370918.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the advertisement of the components from the PublishComponent table.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="MsiPublishAssemblies" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="MsiPublishAssemblies" href="http://msdn.microsoft.com/library/aa370359.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the advertisement of CLR and Win32 assemblies.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="PublishFeatures" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="PublishFeatures" href="http://msdn.microsoft.com/library/aa370923.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Writes each feature's state into the system registry.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="PublishProduct" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="PublishProduct" href="http://msdn.microsoft.com/library/aa370932.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Manages the advertisement of the product information with the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="InstallFinalize" type="ActionSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="InstallInitialize"/>
+                <xse:msiRef action="InstallFinalize" href="http://msdn.microsoft.com/library/aa369505.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Marks the end of a sequence of actions that change the system.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+
+    <xs:element name="AppSearch" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="ComponentSearch"/>
+                <xse:seeAlso ref="FileSearch"/>
+                <xse:seeAlso ref="IniFileSearch"/>
+                <xse:seeAlso ref="RegistrySearch"/>
+                <xse:msiRef table="AppSearch" href="http://msdn.microsoft.com/library/aa367579.aspx"/>
+                <xse:msiRef action="AppSearch" href="http://msdn.microsoft.com/library/aa367578.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Uses file signatures to search for existing versions of products.  The AppSearch action may use this information to determine where upgrades are to be installed.  The AppSearch action can also be used to set a property to the existing value of an registry or .ini file entry.  AppSearch should be authored into the InstallUISequence table and InstallExecuteSequence table.  The installer prevents The AppSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence.  The AppSearch action searches for file signatures using the CompLocator table first, the RegLocator table next, then the IniLocator table, and finally the DrLocator table.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="CCPSearch" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="RMCCPSearch"/>
+                <xse:seeAlso ref="ComplianceCheck"/>
+                <xse:msiRef action="CCPSearch" href="http://msdn.microsoft.com/library/aa367845.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.  The CCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table.  The installer prevents the CCPSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence.  The CCPSearch action must come before the RMCCPSearch action.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RMCCPSearch" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="CCPSearch"/>
+                <xse:seeAlso ref="ComplianceCheck"/>
+                <xse:msiRef action="RMCCPSearch" href="http://msdn.microsoft.com/library/aa371364.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.  The RMCCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table.  The installer prevents RMCCPSearch from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence.  The RMCCPSearch action requires the CCP_DRIVE property to be set to the root path on the removable volume that has the installation for any of the qualifying products.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="LaunchConditions" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Condition"/>
+                <xse:msiRef action="LaunchConditions" href="http://msdn.microsoft.com/library/aa369751.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.  If any of these conditional statements fail, an error message is displayed to the user and the installation is terminated.  The LaunchConditions action is optional.  This action is normally the first in the sequence, but the AppSearch Action may be sequenced before the LaunchConditions action.  If there are launch conditions that do not apply to all installation modes, the appropriate installation mode property should be used in a conditional expression in the appropriate sequence table.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="FindRelatedProducts" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Upgrade"/>
+                <xse:msiRef action="FindRelatedProducts" href="http://msdn.microsoft.com/library/aa368600.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system.  When FindRelatedProducts detects a correspondence between the upgrade information and an installed product, it appends the product code to the property specified in the ActionProperty column of the UpgradeTable.  The FindRelatedProducts action only runs the first time the product is installed.  The FindRelatedProducts action does not run during maintenance mode or uninstallation.  FindRelatedProducts should be authored into the InstallUISequence table and InstallExecuteSequence tables.  The installer prevents FindRelatedProducts from running in InstallExecuteSequence if the action has already run in InstallUISequence.  The FindRelatedProducts action must come before the MigrateFeatureStates action and the RemoveExistingProducts action.  The condition for this action may be specified in the element's inner text.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="InstallExecute" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="InstallExecute" href="http://msdn.microsoft.com/library/aa369502.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action.  Special actions don't have a built-in sequence number and thus must appear relative to another action.  The suggested way to do this is by using the Before or After attribute.  InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="InstallExecuteAgain" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="InstallExecuteAgain" href="http://msdn.microsoft.com/library/aa369497.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action.  Should only be used after InstallExecute.  Special actions don't have a built-in sequence number and thus must appear relative to another action.  The suggested way to do this is by using the Before or After attribute.  InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="DisableRollback" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="DisableRollback" href="http://msdn.microsoft.com/library/aa368308.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Disables rollback for the remainder of the installation.  Special actions don't have a built-in sequence number and thus must appear relative to another action.  The suggested way to do this is by using the Before or After attribute.  InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="RemoveExistingProducts" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="RemoveExistingProducts" href="http://msdn.microsoft.com/library/aa371197.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence.  Special actions don't have a built-in sequence number and thus must appear relative to another action.  The suggested way to do this is by using the Before or After attribute.  InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="ScheduleReboot" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="ScheduleReboot" href="http://msdn.microsoft.com/library/aa371527.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Prompts the user to restart the system at the end of installation.  Special actions don't have a built-in sequence number and thus must appear relative to another action.  The suggested way to do this is by using the Before or After attribute.  InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="ForceReboot" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="ForceReboot" href="http://msdn.microsoft.com/library/aa368607.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Prompts the user for a restart of the system during the installation.  Special actions don't have a built-in sequence number and thus must appear relative to another action.  The suggested way to do this is by using the Before or After attribute.  InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <xs:element name="ResolveSource" type="ActionModuleSequenceType">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef action="ResolveSource" href="http://msdn.microsoft.com/library/aa371232.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Determines the location of the source and sets the SourceDir property if the source has not been resolved yet.  Special actions don't have a built-in sequence number and thus must appear relative to another action.  The suggested way to do this is by using the Before or After attribute.  InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize.</xs:documentation>
+        </xs:annotation>
+    </xs:element>
+    <!-- CustomActions and Dialogs of course aren't built in and must be specified relative to another action -->
+    <xs:element name="Custom">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="CustomAction"/> 
+            </xs:appinfo>
+            <xs:documentation>Use to sequence a custom action.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation><xs:documentation>Text node specifies the condition of the action.</xs:documentation></xs:annotation>
+                    <xs:attribute name="Action" type="xs:string" use="required">
+                        <xs:annotation><xs:documentation>The action to which the Custom element applies.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="OnExit" type="ExitType">
+                        <xs:annotation><xs:documentation>Mutually exclusive with Before, After, and Sequence attributes</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Before" type="xs:string">
+                        <xs:annotation><xs:documentation>The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="After" type="xs:string">
+                        <xs:annotation><xs:documentation>The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Overridable" type="YesNoType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Sequence" type="xs:integer">
+                        <xs:annotation><xs:documentation>The sequence number for this action. Mutually exclusive with Before, After, and OnExit attributes</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+    <xs:element name="Show">
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:attribute name="Dialog" type="xs:string" use="required"/>
+                    <xs:attribute name="OnExit" type="ExitType">
+                        <xs:annotation><xs:documentation>mutually exclusive with Before, After, and Sequence attributes</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Before" type="xs:string"/>
+                    <xs:attribute name="After" type="xs:string"/>
+                    <xs:attribute name="Overridable" type="YesNoType">
+                        <xs:annotation>
+                            <xs:documentation>
+                                If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Sequence" type="xs:integer"/>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <!-- standard sequence table compositions -->
+
+    <xs:element name="InstallUISequence">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="InstallUISequence" href="http://msdn.microsoft.com/library/aa369543.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Use to sequence a custom action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="Show" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Displays a Dialog.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ScheduleReboot" minOccurs="0">
+                    <xs:annotation><xs:documentation>Prompts the user to restart the system at the end of installation. Not fixed sequence.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="LaunchConditions" minOccurs="0">
+                    <xs:annotation><xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="FindRelatedProducts" minOccurs="0">
+                    <xs:annotation><xs:documentation>Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="AppSearch" minOccurs="0">
+                    <xs:annotation><xs:documentation>Uses file signatures to search for existing versions of products.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CCPSearch" minOccurs="0">
+                    <xs:annotation><xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RMCCPSearch" minOccurs="0">
+                    <xs:annotation><xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ValidateProductID">
+                    <xs:annotation><xs:documentation>Sets the ProductID property to the full product identifier.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CostInitialize">
+                    <xs:annotation><xs:documentation>Initiates the internal installation costing process.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="FileCost">
+                    <xs:annotation><xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="IsolateComponents">
+                    <xs:annotation><xs:documentation>Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe).</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ResolveSource" minOccurs="0">
+                    <xs:annotation><xs:documentation>Determines the location of the source and sets the SourceDir property if the source has not been resolved yet.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CostFinalize">
+                    <xs:annotation><xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="MigrateFeatureStates">
+                    <xs:annotation><xs:documentation>Used for upgrading or installing over an existing application.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ExecuteAction" minOccurs="0">
+                    <xs:annotation><xs:documentation>Initiates the execution sequence.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:choice>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="InstallExecuteSequence">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="InstallExecuteSequence" href="http://msdn.microsoft.com/library/aa369500.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <!-- used only to supply default op for child action elements -->
+                <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Use to sequence a custom action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ScheduleReboot" minOccurs="0">
+                    <xs:annotation><xs:documentation>Prompts the user to restart the system at the end of installation. Not fixed sequence.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ForceReboot" minOccurs="0">
+                    <xs:annotation><xs:documentation>Prompts the user for a restart of the system during the installation. Not fixed sequence.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ResolveSource" minOccurs="0">
+                    <xs:annotation><xs:documentation>Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Not fixed sequence.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="LaunchConditions" minOccurs="0">
+                    <xs:annotation><xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="FindRelatedProducts" minOccurs="0">
+                    <xs:annotation><xs:documentation>Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="AppSearch" minOccurs="0">
+                    <xs:annotation><xs:documentation>Uses file signatures to search for existing versions of products.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CCPSearch">
+                    <xs:annotation><xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RMCCPSearch">
+                    <xs:annotation><xs:documentation>Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ValidateProductID">
+                    <xs:annotation><xs:documentation>Sets the ProductID property to the full product identifier.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CostInitialize">
+                    <xs:annotation><xs:documentation>Initiates the internal installation costing process.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="FileCost">
+                    <xs:annotation><xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="IsolateComponents">
+                    <xs:annotation><xs:documentation>Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe).</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CostFinalize">
+                    <xs:annotation><xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="SetODBCFolders">
+                    <xs:annotation><xs:documentation>Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="MigrateFeatureStates">
+                    <xs:annotation><xs:documentation>Used for upgrading or installing over an existing application.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallValidate">
+                    <xs:annotation><xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallInitialize">
+                    <xs:annotation><xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="AllocateRegistrySpace" minOccurs="0">
+                    <xs:annotation><xs:documentation>Ensures the needed amount of space exists in the registry.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ProcessComponents">
+                    <xs:annotation><xs:documentation>Registers and unregisters components, their key paths, and the component clients.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="UnpublishComponents" minOccurs="0">
+                    <xs:annotation><xs:documentation>Manages the unadvertisement of components listed in the PublishComponent table.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="UnpublishFeatures" minOccurs="0">
+                    <xs:annotation><xs:documentation>Removes selection-state and feature-component mapping information from the registry.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="StopServices">
+                    <xs:annotation><xs:documentation>Stops system services.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="DeleteServices">
+                    <xs:annotation><xs:documentation>Stops a service and removes its registration from the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="UnregisterComPlus">
+                    <xs:annotation><xs:documentation>Removes COM+ applications from the registry.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="SelfUnregModules" minOccurs="0">
+                    <xs:annotation><xs:documentation>Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="UnregisterTypeLibraries" minOccurs="0">
+                    <xs:annotation><xs:documentation>Unregisters type libraries from the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RemoveODBC">
+                    <xs:annotation><xs:documentation>Removes the data sources, translators, and drivers listed for removal during the installation.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="UnregisterFonts">
+                    <xs:annotation><xs:documentation>Removes registration information about installed fonts from the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RemoveRegistryValues" minOccurs="0">
+                    <xs:annotation><xs:documentation>Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="UnregisterClassInfo" minOccurs="0">
+                    <xs:annotation><xs:documentation>Manages the removal of COM class information from the system registry.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="UnregisterExtensionInfo">
+                    <xs:annotation><xs:documentation>Manages the removal of extension-related information from the system registry.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="UnregisterProgIdInfo" minOccurs="0">
+                    <xs:annotation><xs:documentation>Manages the unregistration of OLE ProgId information with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="UnregisterMIMEInfo">
+                    <xs:annotation><xs:documentation>Unregisters MIME-related registry information from the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RemoveIniValues">
+                    <xs:annotation><xs:documentation>Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RemoveShortcuts" minOccurs="0">
+                    <xs:annotation><xs:documentation>Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RemoveEnvironmentStrings">
+                    <xs:annotation><xs:documentation>Modifies the values of environment variables.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RemoveDuplicateFiles">
+                    <xs:annotation><xs:documentation>Deletes files installed by the DuplicateFiles action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RemoveFiles" minOccurs="0">
+                    <xs:annotation><xs:documentation>Removes files previously installed by the InstallFiles action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RemoveFolders" minOccurs="0">
+                    <xs:annotation><xs:documentation>Removes any folders linked to components set to be removed or run from source.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CreateFolders" minOccurs="0">
+                    <xs:annotation><xs:documentation>Creates empty folders for components that are set to be installed.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="MoveFiles">
+                    <xs:annotation><xs:documentation>Locates existing files on the system and moves or copies those files to a new location.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallFiles" minOccurs="0">
+                    <xs:annotation><xs:documentation>Copies files specified in the File table from the source directory to the destination directory.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="DuplicateFiles">
+                    <xs:annotation><xs:documentation>Duplicates files installed by the InstallFiles action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="PatchFiles">
+                    <xs:annotation><xs:documentation>Queries the Patch table to determine which patches are to be applied.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="BindImage" minOccurs="0">
+                    <xs:annotation><xs:documentation>Binds each executable or DLL that must be bound to the DLLs imported by it.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CreateShortcuts" minOccurs="0">
+                    <xs:annotation><xs:documentation>Manages the creation of shortcuts.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterClassInfo" minOccurs="0">
+                    <xs:annotation><xs:documentation>Manages the registration of COM class information with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterExtensionInfo">
+                    <xs:annotation><xs:documentation>Manages the registration of extension related information with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterProgIdInfo" minOccurs="0">
+                    <xs:annotation><xs:documentation>Manages the registration of OLE ProgId information with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterMIMEInfo">
+                    <xs:annotation><xs:documentation>Registers MIME-related registry information with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="WriteRegistryValues" minOccurs="0">
+                    <xs:annotation><xs:documentation>Sets up an application's registry information.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="WriteIniValues">
+                    <xs:annotation><xs:documentation>Writes the .ini file information that the application needs written to its .ini files.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="WriteEnvironmentStrings">
+                    <xs:annotation><xs:documentation>Modifies the values of environment variables.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterFonts">
+                    <xs:annotation><xs:documentation>Registers installed fonts with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallODBC">
+                    <xs:annotation><xs:documentation>Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterTypeLibraries" minOccurs="0">
+                    <xs:annotation><xs:documentation>Registers type libraries with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="SelfRegModules" minOccurs="0">
+                    <xs:annotation><xs:documentation>Processes all modules listed in the SelfReg table and registers all installed modules with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterComPlus">
+                    <xs:annotation><xs:documentation>Registers COM+ applications.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallServices">
+                    <xs:annotation><xs:documentation>Registers a service for the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="StartServices">
+                    <xs:annotation><xs:documentation>Starts system services.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterUser" minOccurs="0">
+                    <xs:annotation><xs:documentation>Registers the user information with the installer to identify the user of a product.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterProduct" minOccurs="0">
+                    <xs:annotation><xs:documentation>Registers the product information with the installer.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="PublishComponents" minOccurs="0">
+                    <xs:annotation><xs:documentation>Manages the advertisement of the components from the PublishComponent table.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="PublishFeatures" minOccurs="0">
+                    <xs:annotation><xs:documentation>Writes each feature's state into the system registry.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="PublishProduct" minOccurs="0">
+                    <xs:annotation><xs:documentation>Manages the advertisement of the product information with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallFinalize">
+                    <xs:annotation><xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RemoveExistingProducts">
+                    <xs:annotation><xs:documentation>Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="DisableRollback" minOccurs="0">
+                    <xs:annotation><xs:documentation>Disables rollback for the remainder of the installation.</xs:documentation></xs:annotation>
+                </xs:element>
+                <!-- InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize -->
+                <xs:element ref="InstallExecute" minOccurs="0">
+                    <xs:annotation><xs:documentation>Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallExecuteAgain" minOccurs="0">
+                    <xs:annotation><xs:documentation>Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <!-- Windows Installer 1.5 actions -->
+                <xs:element ref="MsiPublishAssemblies">
+                    <xs:annotation><xs:documentation>Manages the advertisement of CLR and Win32 assemblies.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="MsiUnpublishAssemblies">
+                    <xs:annotation><xs:documentation>Manages the unadvertisement of CLR and Win32 assemblies that are being removed.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:choice>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="AdminUISequence">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="AdminUISequence" href="http://msdn.microsoft.com/library/aa367544.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Use to sequence a custom action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="Show" minOccurs="0" maxOccurs="unbounded"/>
+                <xs:element ref="CostInitialize">
+                    <xs:annotation><xs:documentation>Initiates the internal installation costing process.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="FileCost">
+                    <xs:annotation><xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CostFinalize">
+                    <xs:annotation><xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ExecuteAction">
+                    <xs:annotation><xs:documentation>Initiates the execution sequence.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallValidate">
+                    <xs:annotation><xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallInitialize">
+                    <xs:annotation><xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallAdminPackage">
+                    <xs:annotation><xs:documentation>Copies the product database to the administrative installation point.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallFiles">
+                    <xs:annotation><xs:documentation>Copies files specified in the File table from the source directory to the destination directory.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallFinalize">
+                    <xs:annotation><xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="LaunchConditions">
+                    <xs:annotation><xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:choice>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="AdminExecuteSequence">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="AdminExecuteSequence" href="http://msdn.microsoft.com/library/aa367540.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Use to sequence a custom action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CostInitialize">
+                    <xs:annotation><xs:documentation>Initiates the internal installation costing process.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="FileCost">
+                    <xs:annotation><xs:documentation>Initiates dynamic costing of standard installation actions.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CostFinalize">
+                    <xs:annotation><xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallValidate">
+                    <xs:annotation><xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallInitialize">
+                    <xs:annotation><xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallAdminPackage">
+                    <xs:annotation><xs:documentation>Copies the product database to the administrative installation point.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallFiles">
+                    <xs:annotation><xs:documentation>Copies files specified in the File table from the source directory to the destination directory.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="PatchFiles">
+                    <xs:annotation><xs:documentation>Queries the Patch table to determine which patches are to be applied.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallFinalize">
+                    <xs:annotation><xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="LaunchConditions">
+                    <xs:annotation><xs:documentation>Queries the LaunchCondition table and evaluates each conditional statement recorded there.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ResolveSource" minOccurs="0">
+                    <xs:annotation><xs:documentation>Determines the location of the source and sets the SourceDir property if the source has not been resolved yet.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:choice>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="AdvertiseExecuteSequence">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="AdvtExecuteSequence" href="http://msdn.microsoft.com/library/aa367551.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="CostInitialize">
+                    <xs:annotation><xs:documentation>Initiates the internal installation costing process.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CostFinalize">
+                    <xs:annotation><xs:documentation>Ends the internal installation costing process begun by the CostInitialize action.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="Custom" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Use to sequence a custom action.  The only custom actions that are allowed in the AdvtExecuteSequence are type 19 (0x013) type 35 (0x023) and type 51 (0x033).</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallValidate">
+                    <xs:annotation><xs:documentation>Verifies that all costed volumes have enough space for the installation.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallInitialize">
+                    <xs:annotation><xs:documentation>Marks the beginning of a sequence of actions that change the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="CreateShortcuts">
+                    <xs:annotation><xs:documentation>Manages the creation of shortcuts.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterClassInfo">
+                    <xs:annotation><xs:documentation>Manages the registration of COM class information with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterExtensionInfo">
+                    <xs:annotation><xs:documentation>Manages the registration of extension related information with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterMIMEInfo">
+                    <xs:annotation><xs:documentation>Registers MIME-related registry information with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RegisterProgIdInfo">
+                    <xs:annotation><xs:documentation>Manages the registration of OLE ProgId information with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="PublishComponents">
+                    <xs:annotation><xs:documentation>Manages the advertisement of the components from the PublishComponent table.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="PublishFeatures">
+                    <xs:annotation><xs:documentation>Writes each feature's state into the system registry.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="PublishProduct">
+                    <xs:annotation><xs:documentation>Manages the advertisement of the product information with the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="InstallFinalize">
+                    <xs:annotation><xs:documentation>Marks the end of a sequence of actions that change the system.</xs:documentation></xs:annotation>
+                </xs:element>
+                <!-- Windows Installer 1.5 actions -->
+                <xs:element ref="MsiPublishAssemblies">
+                    <xs:annotation><xs:documentation>Manages the advertisement of CLR and Win32 assemblies.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:choice>
+        </xs:complexType>
+    </xs:element>
+    <!-- - - - - - - - - - - Binary tables - - - - - - - - - - - - - -->
+    <xs:element name="Binary">
+        <xs:annotation>
+            <xs:documentation>
+                Binary data used for CustomAction elements and UI controls.
+            </xs:documentation>
+        <xs:appinfo>
+                <xse:msiRef table="Binary" href="http://msdn.microsoft.com/library/aa367825.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:any namespace="##other" processContents="lax">
+                    <xs:annotation>
+                        <xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        elements at this point in the schema.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:any>
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The Id cannot by longer than 55 characters.  In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceFile" type="xs:string">
+                <xs:annotation><xs:documentation>Path to the binary file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="src" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the SourceFile attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="SourceFile" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SuppressModularization" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Use to suppress modularization of this Binary identifier in merge modules.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Icon">
+        <xs:annotation>
+            <xs:documentation>
+                Icon used for Shortcut, ProgId, or Class elements (but not UI controls)
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Icon" href="http://msdn.microsoft.com/library/aa369210.aspx"/>
+                <xse:howtoRef href="configure_arp_appearance.htm">How To: Set your installer's icon in Add/Remove Programs</xse:howtoRef>                
+                <xse:howtoRef href="create_start_menu_shortcut.htm">How To: Create a shortcut on the Start Menu</xse:howtoRef>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The Id cannot by longer than 55 characters.  In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceFile" type="xs:string">
+                <xs:annotation><xs:documentation>Path to the icon file.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="src" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute has been deprecated. Use the SourceFile attribute instead.
+                    </xs:documentation>
+                    <xs:appinfo>
+                        <xse:deprecated ref="SourceFile" />
+                    </xs:appinfo>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="EmbeddedChainer">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiEmbeddedChainer " href="http://msdn.microsoft.com/library/bb736316.aspx"/>
+                <xse:seeAlso ref="Binary" />
+                <xse:seeAlso ref="File" />
+                <xse:seeAlso ref="Property" />
+                <xse:seeAlso ref="EmbeddedChainerRef" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation>
+                        <xs:documentation>
+                            Element value is the condition.  CDATA may be used to when a condition contains many XML characters
+                            that must be escaped.  It is important to note that each EmbeddedChainer element must have a mutually exclusive condition
+                            to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer
+                            that executes is undeterministic.
+                        </xs:documentation>
+                    </xs:annotation>
+                    <xs:attribute name="Id" type="xs:string" use="required">
+                        <xs:annotation>
+                            <xs:documentation>Unique identifier for embedded chainer.</xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="CommandLine" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>Value to append to the transaction handle and passed to the chainer executable.</xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="BinarySource" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                Reference to the Binary element that contains the chainer executable. Mutually exclusive with
+                                the FileSource and PropertySource attributes.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="FileSource" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                Reference to the File element that is the chainer executable. Mutually exclusive with
+                                the BinarySource and PropertySource attributes.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="PropertySource" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with
+                                the BinarySource and FileSource attributes.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="EmbeddedChainerRef">
+        <xs:annotation>
+            <xs:documentation>
+                Reference to an EmbeddedChainer element.  This will force the entire referenced Fragment's contents
+                to be included in the installer database.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="EmbeddedChainer" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required" />
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation>
+                    <xs:documentation>
+                        Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                        attributes at this point in the schema.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <!-- - - - - - - - - - - UI Definitions - - - - - - - - - - - - - -->
+
+    <xs:element name="EmbeddedUI">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="MsiEmbeddedUI" href="http://msdn.microsoft.com/library/bb736317.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Element value is the condition. Use CDATA if message contains delimiter characters.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType mixed="true">
+            <xs:sequence>
+                <xs:element ref="EmbeddedUIResource" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation>
+                        <xs:documentation>Specifies extra files to be extracted for use by the embedded UI, such as language resources.</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+            </xs:sequence>
+            <xs:attribute name="Id" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        Unique identifier for embedded UI.If this attribute is not specified the Name attribute or the file name 
+                        portion of the SourceFile attribute will be used.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreFatalExit" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreError" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreWarning" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreUser" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_USER messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreInfo" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INFO messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreFilesInUse" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreResolveSource" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreOutOfDiskSpace" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreActionStart" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreActionData" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreProgress" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreCommonData" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreInitialize" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreTerminate" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreShowDialog" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreRMFilesInUse" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreInstallStart" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IgnoreInstallEnd" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="LongFileNameType">
+                <xs:annotation>
+                    <xs:documentation>
+                        The name for the embedded UI DLL when it is extracted from the Product and executed. (Windows Installer 
+                        does not support the typical short filename and long filename combination for embedded UI files as it 
+                        does for other kinds of files.) If this attribute is not specified the file name portion of the SourceFile 
+                        attribute will be used.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceFile" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        Path to the binary file that is the embedded UI. This must be a DLL that exports the following
+                        three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SupportBasicUI" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="EmbeddedUIResource">
+        <xs:annotation>
+            <xs:documentation>
+                Defines a resource for use by the embedded UI.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="EmbeddedUI"/>
+                <xse:msiRef table="MsiEmbeddedUI" href="http://msdn.microsoft.com/library/bb736317.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Identifier for the embedded UI resource.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Name" type="LongFileNameType" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        The name for the resource when it is extracted from the Product for use by the embedded UI DLL. (Windows 
+                        Installer does not support the typical short filename and long filename combination for embedded UI files 
+                        as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SourceFile" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Path to the binary file that is the embedded UI resource.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Error">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="Error" href="http://msdn.microsoft.com/library/aa368554.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation><xs:documentation>Element value is Message, use CDATA if message contains delimiter characters</xs:documentation></xs:annotation>
+                    <xs:attribute name="Id" type="xs:integer">
+                        <xs:annotation><xs:documentation>Number of the error for which a message is being provided. See MSI SDK for error definitions.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Publish">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="ControlEvent" href="http://msdn.microsoft.com/library/aa368037.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation><xs:documentation>The element value is the optional Condition expression.</xs:documentation></xs:annotation>
+                    <xs:attribute name="Control" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                The parent Control for this Publish element, should only be specified when this element is a child of the UI element.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Dialog" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element.
+                                This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Event" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                Set this attribute's value to one of the standard control events to trigger that event.
+                                Either this attribute or the Property attribute must be set, but not both at the same time.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Order" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute should only need to be set if this element is nested under a UI element in order to
+                                control the order in which this publish event will be started.
+                                If this element is nested under a Control element, the default value will be one greater than any
+                                previous Publish element's order (the first element's default value is 1).
+                                If this element is nested under a UI element, the default value is always 1 (it does not get a
+                                default value based on any previous Publish elements).
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Property" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                Set this attribute's value to a property name to set that property.
+                                Either this attribute or the Event attribute must be set, but not both at the same time.
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="Value" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                If the Property attribute is specified, set the value of this attribute to the new value for the property.
+                                To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}').
+                                Otherwise, this attribute's value should be the argument for the event specified in the Event attribute.
+                                If the event doesn't take an attribute, a common value to use is "0".
+                            </xs:documentation>
+                        </xs:annotation>
+                    </xs:attribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Subscribe">
+        <xs:annotation>
+            <xs:documentation>
+                Sets attributes for events in the EventMapping table
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="EventMapping" href="http://msdn.microsoft.com/library/aa368559.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Event" type="xs:string">
+                <xs:annotation><xs:documentation>must be one of the standard control events'</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Attribute" type="xs:string">
+                <xs:annotation><xs:documentation>if not present can only handle enable, disable, hide, unhide events</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Text">
+        <xs:annotation>
+            <xs:documentation>
+                An alternative to using the Text attribute when the value contains special XML characters like &lt;, &gt;, or &amp;.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:attribute name="SourceFile" type="xs:string">
+                        <xs:annotation><xs:documentation>Instructs the text to be imported from a file instead of the element value during the binding process.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                    <xs:attribute name="src" type="xs:string">
+                        <xs:annotation>
+                            <xs:documentation>
+                                This attribute has been deprecated. Use the SourceFile attribute instead.
+                            </xs:documentation>
+                            <xs:appinfo>
+                                <xse:deprecated ref="SourceFile" />
+                            </xs:appinfo>
+                        </xs:annotation>
+                    </xs:attribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Control">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="Control" href="http://msdn.microsoft.com/library/aa368044.aspx"/>
+                <xse:msiRef table="ComboBox" href="http://msdn.microsoft.com/library/aa367872.aspx"/>
+                <xse:msiRef table="Dialog" href="http://msdn.microsoft.com/library/aa368286.aspx"/>
+                <xse:msiRef table="ListBox" href="http://msdn.microsoft.com/library/aa369762.aspx"/>
+                <xse:msiRef table="ListView" href="http://msdn.microsoft.com/library/aa369764.aspx"/>
+                <xse:msiRef table="RadioButton" href="http://msdn.microsoft.com/library/aa370962.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Contains the controls that appear on each dialog.</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="Text" minOccurs="0">
+                    <xs:annotation><xs:documentation>alternative to Text attribute when CDATA is needed to escape XML delimiters</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ComboBox" minOccurs="0">
+                    <xs:annotation><xs:documentation>ComboBox table with ListItem children</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ListBox" minOccurs="0">
+                    <xs:annotation><xs:documentation>ListBox table with ListItem children</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ListView" minOccurs="0">
+                    <xs:annotation><xs:documentation>ListView table with ListItem children</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RadioButtonGroup" minOccurs="0">
+                    <xs:annotation><xs:documentation>RadioButton table with RadioButton children</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="Property" minOccurs="0">
+                    <xs:annotation><xs:documentation>Property table entry for the Property table column associated with this control</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="Binary" minOccurs="0">
+                    <xs:annotation><xs:documentation>Icon referenced in icon column of row</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:choice minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>child elements affecting operation of this control</xs:documentation></xs:annotation>
+                    <xs:element ref="Condition">
+                        <xs:annotation><xs:documentation>Condition to specify actions for this control based on the outcome of the condition.</xs:documentation></xs:annotation>
+                    </xs:element>
+                    <xs:element ref="Publish"/>
+                    <xs:element ref="Subscribe"/>
+                </xs:choice>
+            </xs:sequence>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Combined with the Dialog Id to make up the primary key of the Control table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Type" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="X" use="required" type="LocalizableInteger">
+                <xs:annotation><xs:documentation>Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Y" use="required" type="LocalizableInteger">
+                <xs:annotation><xs:documentation>Vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Width" use="required" type="LocalizableInteger">
+                <xs:annotation><xs:documentation>Width of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Height" use="required" type="LocalizableInteger">
+                <xs:annotation><xs:documentation>Height of the rectangular boundary of the control. This must be a non-negative number.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Property" type="xs:string">
+                <xs:annotation><xs:documentation>The name of a defined property to be linked to this control. This column is required for active controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Text" type="xs:string">
+                <xs:annotation><xs:documentation>A localizable string used to set the initial text contained in a control. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see <html:a href="http://msdn2.microsoft.com/library/aa368609.aspx" target="_blank">Formatted</html:a> for details.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Help" type="xs:string">
+                <xs:annotation><xs:documentation>This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ToolTip" type="xs:string">
+                <xs:annotation><xs:documentation>The string used for the Tooltip.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CheckBoxValue" type="xs:string">
+                <xs:annotation><xs:documentation>This attribute is only valid for CheckBox Controls. When set, the linked Property will be set to this value when the check box is checked.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CheckBoxPropertyRef" type="xs:string">
+                <xs:annotation><xs:documentation>This attribute is only valid for CheckBox controls. The value is the name of a Property that was already used as the Property for another CheckBox control. The Property attribute cannot be specified. The attribute exists to support multiple checkboxes on different dialogs being tied to the same property.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <!-- Control ordering - order of declaration in Dialog determines tab ordering -->
+            <xs:attribute name="TabSkip" type="YesNoType">
+                <xs:annotation><xs:documentation>Set this attribute to "yes" to cause this Control to be skipped in the tab sequence.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Default" type="YesNoType">
+                <xs:annotation><xs:documentation>Set this attribute to "yes" to cause this Control to be invoked by the return key.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Cancel" type="YesNoType">
+                <xs:annotation><xs:documentation>Set this attribute to "yes" to cause this Control to be invoked by the escape key.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <!-- common Control attributes -->
+            <xs:attribute name="Hidden" type="YesNoType">
+                <xs:annotation><xs:documentation>Set this attribute to "yes" to cause the Control to be hidden.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Disabled" type="YesNoType">
+                <xs:annotation><xs:documentation>Set this attribute to "yes" to cause the Control to be disabled.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Sunken" type="YesNoType">
+                <xs:annotation><xs:documentation>Set this attribute to "yes" to cause the Control to be sunken.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Indirect" type="YesNoType">
+                <xs:annotation><xs:documentation>Specifies whether the value displayed or changed by this control is referenced indirectly. If this bit is set, the control displays or changes the value of the property that has the identifier listed in the Property column of the Control table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Integer" type="YesNoType">
+                <xs:annotation><xs:documentation>Set this attribute to "yes" to cause the linked Property value for the Control to be treated as an integer. Otherwise, the Property will be treated as a string.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RightToLeft" type="YesNoType">
+                <xs:annotation><xs:documentation>Set this attribute to "yes" to cause the Control to display from right to left.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RightAligned" type="YesNoType">
+                <xs:annotation><xs:documentation>Set this attribute to "yes" to cause the Control to be right aligned.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LeftScroll" type="YesNoType">
+                <xs:annotation><xs:documentation>Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <!-- attributes applied to specific Controls -->
+            <xs:attribute name="Transparent" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Text Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="NoPrefix" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Text Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="NoWrap" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Text Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="FormatSize" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Text Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="UserLanguage" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Text Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Multiline" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Edit Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Password" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Edit Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ProgressBlocks" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for ProgressBar Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Removable" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Fixed" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Remote" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CDROM" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RAMDisk" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Floppy" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for Volume and Directory Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ShowRollbackCost" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for VolumeCostList Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Sorted" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for ListBox, ListView, and ComboBox Controls. Set 
+                the value of this attribute to "yes" to have entries appear in the order specified under the Control.
+                If the attribute value is "no" or absent the entries in the control will appear in alphabetical order.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ComboList" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for ComboBox Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Image" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="IconSize">
+                <xs:annotation><xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="16"/>
+                        <xs:enumeration value="32"/>
+                        <xs:enumeration value="48"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="FixedSize" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for RadioButton, PushButton, and Icon Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Icon" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for RadioButton and PushButton Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Bitmap" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for RadioButton and PushButton Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="PushLike" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for RadioButton and Checkbox Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="HasBorder" type="YesNoType">
+                <xs:annotation><xs:documentation>This attribute is only valid for RadioButton Controls.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ElevationShield" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        This attribute is only valid for PushButton controls.
+                        Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control.
+                        If this attribute's value is "yes" and the installation is not yet running with elevated privileges,
+                        the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon).
+                        If this attribute's value is "yes" and the installation is already running with elevated privileges,
+                        the pushbutton control is created using the other icon attributes.
+                        Otherwise, the pushbutton control is created using the other icon attributes.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Billboard">
+        <xs:annotation>
+            <xs:documentation>
+                Billboard to display during install of a Feature
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Billboard" href="http://msdn.microsoft.com/library/aa367823.aspx"/>
+                <xse:msiRef table="BBControl" href="http://msdn.microsoft.com/library/aa367818.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="Control" minOccurs='0' maxOccurs='unbounded'>
+                    <xs:annotation><xs:documentation>Only controls of static type such as: Text, Bitmap, Icon, or custom control can be placed on a billboard.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:sequence>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Unique identifier for the Billboard.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Feature" type="xs:string">
+                <xs:annotation><xs:documentation>Feature whose state determines if the Billboard is shown.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="BillboardAction">
+        <xs:annotation>
+            <xs:documentation>
+                Billboard action during which child Billboards are displayed
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Billboard" href="http://msdn.microsoft.com/library/aa367823.aspx"/>
+                <xse:msiRef table="BBControl" href="http://msdn.microsoft.com/library/aa367818.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="Billboard" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Order of Billboard elements determines order of display</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:sequence>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Action name that determines when the Billboard should be shown.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Dialog">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="Control" href="http://msdn.microsoft.com/library/aa368044.aspx"/>
+                <xse:msiRef table="ComboBox" href="http://msdn.microsoft.com/library/aa367872.aspx"/>
+                <xse:msiRef table="Dialog" href="http://msdn.microsoft.com/library/aa368286.aspx"/>
+                <xse:msiRef table="ListBox" href="http://msdn.microsoft.com/library/aa369762.aspx"/>
+                <xse:msiRef table="ListView" href="http://msdn.microsoft.com/library/aa369764.aspx"/>
+                <xse:msiRef table="RadioButton" href="http://msdn.microsoft.com/library/aa370962.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>
+                Defines a dialog box in the Dialog Table.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="Control" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Control elements belonging to this dialog.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:sequence>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Unique identifier for the dialog.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="X" type="xs:integer">
+                <xs:annotation><xs:documentation>Horizontal placement of the dialog box as a percentage of screen width. The default value is 50.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Y" type="xs:integer">
+                <xs:annotation><xs:documentation>Vertical placement of the dialog box as a percentage of screen height. The default value is 50.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Width" use="required" type="xs:integer">
+                <xs:annotation><xs:documentation>The width of the dialog box in dialog units.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Height" use="required" type="xs:integer">
+                <xs:annotation><xs:documentation>The height of the dialog box in dialog units.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Title" type="xs:string">
+                <xs:annotation><xs:documentation>The title of the dialog box.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <!-- 'Attributes' column integer value generated from XML attributes below -->
+            <xs:attribute name="Hidden" type="YesNoType">
+                <xs:annotation><xs:documentation>Used to hide the dialog.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Modeless" type="YesNoType">
+                <xs:annotation><xs:documentation>Used to set the dialog as modeless.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="NoMinimize" type="YesNoType">
+                <xs:annotation><xs:documentation>Used to specify if the dialog can be minimized.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="SystemModal" type="YesNoType">
+                <xs:annotation><xs:documentation>Used to set the dialog as system modal.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="KeepModeless" type="YesNoType">
+                <xs:annotation><xs:documentation>Keep modeless dialogs alive when this dialog is created through DoAction.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="TrackDiskSpace" type="YesNoType">
+                <xs:annotation><xs:documentation>Have the dialog periodically call the installer to check if available disk space has changed.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="CustomPalette" type="YesNoType">
+                <xs:annotation><xs:documentation>Used to specify if pictures in the dialog box are rendered with a custom palette.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RightToLeft" type="YesNoType">
+                <xs:annotation><xs:documentation>Used to specify if the text in the dialog should be displayed in right to left reading order.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="RightAligned" type="YesNoType">
+                <xs:annotation><xs:documentation>Align text on the right.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="LeftScroll" type="YesNoType">
+                <xs:annotation><xs:documentation>Used to align the scroll bar on the left.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ErrorDialog" type="YesNoType">
+                <xs:annotation><xs:documentation>Specifies this dialog as an error dialog.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="DialogRef">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="Dialog"/>
+            </xs:appinfo>
+            <xs:documentation>
+                Reference to a Dialog.  This will cause the entire referenced section's contents
+                to be included in the installer database.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>The identifier of the Dialog to reference.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ProgressText">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="ActionText" href="http://msdn.microsoft.com/library/aa367516.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation><xs:documentation>Element value is progress message text for action</xs:documentation></xs:annotation>
+                    <xs:attribute name="Action" type="xs:string" use="required"/>
+                    <xs:attribute name="Template" type="xs:string">
+                        <xs:annotation><xs:documentation>used to format ActionData messages from action processing</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="TextStyle">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:msiRef table="TextStyle" href="http://msdn.microsoft.com/library/aa372074.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required"/>
+            <xs:attribute name="FaceName" use="required" type="xs:string"/>
+            <xs:attribute name="Size" use="required" type="xs:string"/>
+            <xs:attribute name="Red" type="xs:integer">
+                <xs:annotation><xs:documentation>0 to 255</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Green" type="xs:integer">
+                <xs:annotation><xs:documentation>0 to 255</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Blue" type="xs:integer">
+                <xs:annotation><xs:documentation>0 to 255</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Bold" type="YesNoType"/>
+            <xs:attribute name="Italic" type="YesNoType"/>
+            <xs:attribute name="Underline" type="YesNoType"/>
+            <xs:attribute name="Strike" type="YesNoType"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ListItem">
+        <xs:annotation>
+            <xs:documentation>
+                The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ComboBox" href="http://msdn.microsoft.com/library/aa367872.aspx"/>
+                <xse:msiRef table="ListBox" href="http://msdn.microsoft.com/library/aa369762.aspx"/>
+                <xse:msiRef table="ListView" href="http://msdn.microsoft.com/library/aa369764.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Value" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Text" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The localizable, visible text to be assigned to the item.
+                        If not specified, this will default to the value of the Value attribute.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Icon" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>
+                        The identifier of the Binary (not Icon) element containing the icon to associate with this item.
+                        This value is only valid when nested under a ListView element.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ListBox">
+        <xs:annotation>
+            <xs:documentation>
+                Set of items for a particular ListBox control tied to an install Property
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="Control" href="http://msdn.microsoft.com/library/aa368044.aspx"/>
+                <xse:msiRef table="Dialog" href="http://msdn.microsoft.com/library/aa368286.aspx"/>
+                <xse:msiRef table="ListView" href="http://msdn.microsoft.com/library/aa369764.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="ListItem" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>entry for ListBox table</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:sequence>
+            <xs:attribute name="Property" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Property tied to this group</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ComboBox">
+        <xs:annotation>
+            <xs:documentation>
+                Set of items for a particular ComboBox control tied to an install Property
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ComboBox" href="http://msdn.microsoft.com/library/aa367872.aspx"/>
+                <xse:msiRef table="Control" href="http://msdn.microsoft.com/library/aa368044.aspx"/>
+                <xse:msiRef table="Dialog" href="http://msdn.microsoft.com/library/aa368286.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="ListItem" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>entry for ComboBox table</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:sequence>
+            <xs:attribute name="Property" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Property tied to this group</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="ListView">
+        <xs:annotation>
+            <xs:documentation>
+                Set of items for a particular ListView control tied to an install Property
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="ListView" href="http://msdn.microsoft.com/library/aa369764.aspx"/>
+                <xse:msiRef table="Control" href="http://msdn.microsoft.com/library/aa368044.aspx"/>
+                <xse:msiRef table="Dialog" href="http://msdn.microsoft.com/library/aa368286.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="ListItem" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>entry for ListView table</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:sequence>
+            <xs:attribute name="Property" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Property tied to this group</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="RadioButton">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:seeAlso ref="RadioButtonGroup"/>
+                <xse:msiRef table="RadioButton" href="http://msdn.microsoft.com/library/aa370962.aspx"/>
+                <xse:msiRef table="Control" href="http://msdn.microsoft.com/library/aa368044.aspx"/>
+                <xse:msiRef table="Dialog" href="http://msdn.microsoft.com/library/aa368286.aspx"/>
+            </xs:appinfo>
+            <xs:documentation>Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup).</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Bitmap" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    This attribute defines the bitmap displayed with the radio button.  The value of the attribute creates a reference
+                    to a Binary element that represents the bitmap.  This attribute is mutually exclusive with the Icon and Text 
+                    attributes.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Height" use="required" type="LocalizableInteger"/>
+            <xs:attribute name="Help" type="xs:string"/>
+            <xs:attribute name="Icon" type="xs:string">
+                <xs:annotation><xs:documentation>
+                    This attribute defines the icon displayed with the radio button.  The value of the attribute creates a reference
+                    to a Binary element that represents the icon.  This attribute is mutually exclusive with the Bitmap and Text 
+                    attributes.
+                </xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Text" type="xs:string">
+                <xs:annotation><xs:documentation>Text displayed with the radio button.  This attribute is mutually exclusive with the Bitmap and Icon attributes.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ToolTip" type="xs:string"/>
+            <xs:attribute name="Value" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Value assigned to the associated control Property when this radio button is selected.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Width" use="required" type="LocalizableInteger"/>
+            <xs:attribute name="X" use="required" type="LocalizableInteger"/>
+            <xs:attribute name="Y" use="required" type="LocalizableInteger"/>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="RadioButtonGroup">
+        <xs:annotation>
+            <xs:documentation>
+                Set of radio buttons tied to the specified Property
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="RadioButton" href="http://msdn.microsoft.com/library/aa370962.aspx"/>
+                <xse:msiRef table="Control" href="http://msdn.microsoft.com/library/aa368044.aspx"/>
+                <xse:msiRef table="Dialog" href="http://msdn.microsoft.com/library/aa368286.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="RadioButton" maxOccurs="unbounded"/>
+            </xs:sequence>
+            <xs:attribute name="Property" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>Property tied to this group.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="UIText">
+        <xs:annotation>
+            <xs:documentation>
+                Text associated with certain controls
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:msiRef table="UIText" href="http://msdn.microsoft.com/library/aa372101.aspx"/>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation><xs:documentation>Element value is text, may use CDATA if needed to escape XML delimiters</xs:documentation></xs:annotation>
+                    <xs:attribute name="Id" use="required" type="xs:string"/>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="UIRef">
+        <xs:annotation>
+            <xs:documentation>
+                Reference to a UI element.  This will force the entire referenced Fragment's contents
+                to be included in the installer database.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="UI" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required" />
+            <xs:anyAttribute namespace="##other" processContents="lax">
+                <xs:annotation><xs:documentation>
+                    Extensibility point in the WiX XML Schema.  Schema extensions can register additional
+                    attributes at this point in the schema.
+                </xs:documentation></xs:annotation>
+            </xs:anyAttribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="UI">
+        <xs:annotation>
+            <xs:documentation>
+                Enclosing element to compartmentalize UI specifications.
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:seeAlso ref="UIRef" />
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="EmbeddedUI">
+                    <xs:annotation><xs:documentation>Embedded UI definition with EmbeddedResource children.</xs:documentation>
+                    </xs:annotation>
+                </xs:element>
+                <xs:element ref="Error">
+                    <xs:annotation><xs:documentation>Error text associated with install error</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ProgressText">
+                    <xs:annotation><xs:documentation>ActionText entry associated with an action</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="BillboardAction">
+                    <xs:annotation><xs:documentation>Billboard table item with child Controls</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ComboBox">
+                    <xs:annotation><xs:documentation>ComboBox table with ListItem children</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ListBox">
+                    <xs:annotation><xs:documentation>ListBox table with ListItem children</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="ListView">
+                    <xs:annotation><xs:documentation>ListView table with ListItem children</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="RadioButtonGroup">
+                    <xs:annotation><xs:documentation>RadioButton table with RadioButton children</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="TextStyle">
+                    <xs:annotation><xs:documentation>TextStyle entry for use in control text</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="UIText">
+                    <xs:annotation><xs:documentation>values for UIText property, not installer Property</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="Dialog">
+                    <xs:annotation><xs:documentation>Dialog specification, called from Sequence</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="DialogRef">
+                    <xs:annotation><xs:documentation>Reference to a Dialog specification.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="Publish"/>
+                <!-- elements with identical behavior as under Product key, solely to allow grouping with other UI elements -->
+                <xs:element ref="PropertyRef"/>
+                <xs:element ref="Property"/>
+                <xs:element ref="Binary"/>
+                <xs:sequence>
+                    <xs:element ref="AdminUISequence" minOccurs="0"/>
+                    <xs:element ref="InstallUISequence" minOccurs="0"/>
+                </xs:sequence>
+                <xs:element ref="UIRef"/>
+            </xs:choice>
+            <xs:attribute name="Id" type="xs:string" />
+        </xs:complexType>
+    </xs:element>
+
+    <!-- custom table elements -->
+
+    <xs:element name="CustomTable">
+        <xs:annotation><xs:documentation>Defines a custom table for use from a custom action.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="Column" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Column definition for the custom table.</xs:documentation></xs:annotation>
+                </xs:element>
+                <xs:element ref="Row" minOccurs="0" maxOccurs="unbounded">
+                    <xs:annotation><xs:documentation>Row definition for the custom table.</xs:documentation></xs:annotation>
+                </xs:element>
+            </xs:sequence>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Identifier for the custom table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Column">
+        <xs:annotation><xs:documentation>Column definition for a Custom Table</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation><xs:documentation>Identifier for the column.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="PrimaryKey" type="YesNoType">
+                <xs:annotation><xs:documentation>Whether this column is a primary key.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Type" use="required">
+                <xs:annotation><xs:documentation>The type of this column.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="binary">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Column contains a path to a file that will be inserted into the column as a binary object.
+                                    If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="int">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set).
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="string">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Column contains a non-localizable string value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Width" type="xs:integer">
+                <xs:annotation><xs:documentation>Width of this column.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Nullable" type="YesNoType">
+                <xs:annotation><xs:documentation>Whether this column can be left null.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Localizable" type="YesNoType">
+                <xs:annotation><xs:documentation>Whether this column can be localized.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MinValue" type="xs:integer">
+                <xs:annotation><xs:documentation>Minimum value for a numeric value, date or version in this column.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="MaxValue" type="xs:integer">
+                <xs:annotation><xs:documentation>Maximum value for a numeric value, date or version in this column.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="KeyTable" type="xs:string">
+                <xs:annotation><xs:documentation>Table in which this column is an external key. Can be semicolon delimited.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="KeyColumn" type="xs:integer">
+                <xs:annotation><xs:documentation>Column in the table in KeyTable attribute.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Category">
+                <xs:annotation>
+                    <xs:documentation>
+                        Category of this column.
+                        This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'.
+                    </xs:documentation>
+                </xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="Text"/>
+                        <xs:enumeration value="UpperCase"/>
+                        <xs:enumeration value="LowerCase"/>
+                        <xs:enumeration value="Integer"/>
+                        <xs:enumeration value="DoubleInteger"/>
+                        <xs:enumeration value="TimeDate"/>
+                        <xs:enumeration value="Identifier"/>
+                        <xs:enumeration value="Property"/>
+                        <xs:enumeration value="Filename"/>
+                        <xs:enumeration value="WildCardFilename"/>
+                        <xs:enumeration value="Path"/>
+                        <xs:enumeration value="Paths"/>
+                        <xs:enumeration value="AnyPath"/>
+                        <xs:enumeration value="DefaultDir"/>
+                        <xs:enumeration value="RegPath"/>
+                        <xs:enumeration value="Formatted"/>
+                        <xs:enumeration value="FormattedSddl"/>
+                        <xs:enumeration value="Template"/>
+                        <xs:enumeration value="Condition"/>
+                        <xs:enumeration value="Guid"/>
+                        <xs:enumeration value="Version"/>
+                        <xs:enumeration value="Language"/>
+                        <xs:enumeration value="Binary"/>
+                        <xs:enumeration value="CustomSource"/>
+                        <xs:enumeration value="Cabinet"/>
+                        <xs:enumeration value="Shortcut"/>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+            <xs:attribute name="Set" type="xs:string">
+                <xs:annotation><xs:documentation>Semicolon delimited list of permissible values.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Description" type="xs:string">
+                <xs:annotation><xs:documentation>Description of this column.</xs:documentation></xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Modularize">
+                <xs:annotation><xs:documentation>How this column should be modularized, if at all.</xs:documentation></xs:annotation>
+                <xs:simpleType>
+                    <xs:restriction base="xs:NMTOKEN">
+                        <xs:enumeration value="None">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Column should not be modularized.  This is the default value.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="Column">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Column should be modularized.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="Condition">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Column is a condition and should be modularized.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="Icon">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    When the column is an primary or foreign key to the Icon table it should be modularized special.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="Property">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Any Properties in the column should be modularized.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                        <xs:enumeration value="SemicolonDelimited">
+                            <xs:annotation>
+                                <xs:documentation>
+                                    Semi-colon list of keys, all of which need to be modularized.
+                                </xs:documentation>
+                            </xs:annotation>
+                        </xs:enumeration>
+                    </xs:restriction>
+                </xs:simpleType>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Row">
+        <xs:annotation><xs:documentation>Row data for a Custom Table</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:sequence>
+                <xs:element ref="Data" maxOccurs="unbounded"/>
+            </xs:sequence>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Data">
+        <xs:annotation><xs:documentation>Used for a Custom Table. Specifies the data for the parent Row and specified Column.</xs:documentation></xs:annotation>
+        <xs:complexType>
+            <xs:simpleContent>
+                <xs:extension base="xs:string">
+                    <xs:annotation><xs:documentation>A data value</xs:documentation></xs:annotation>
+                    <xs:attribute name="Column" use="required" type="xs:string">
+                        <xs:annotation><xs:documentation>Specifies in which column to insert this data.</xs:documentation></xs:annotation>
+                    </xs:attribute>
+                </xs:extension>
+            </xs:simpleContent>
+        </xs:complexType>
+    </xs:element>
+    
+    <!-- EnsureTable element, for preserving empty tables -->
+
+    <xs:element name="EnsureTable">
+        <xs:annotation>
+            <xs:documentation>
+                Use this element to ensure that a table appears in the installer database, even if its empty.  
+            </xs:documentation>
+            <xs:appinfo>
+                <xse:remarks>
+                    This element is particularly useful for two problems that may occur while merging merge modules:
+                    <html:ol>
+                        <html:li>
+                            The first likely problem is that in order to properly merge you need to have certain
+                            tables present prior to merging.  Using this element is one way to ensure those tables
+                            are present prior to the merging.
+                        </html:li>
+                        <html:li>
+                            The other common problem is that a merge module has incorrect validation information
+                            about some tables.  By ensuring these tables prior to merging, you can avoid this
+                            problem because the correct validation information will go into the installer database
+                            before the merge module has a chance to set it incorrectly.
+                        </html:li>
+                    </html:ol>
+                </xse:remarks>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" use="required" type="xs:string">
+                <xs:annotation><xs:documentation>The name of the table.</xs:documentation></xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="WixVariable">
+        <xs:annotation>
+            <xs:documentation>
+                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; it's a WiX-only concept.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The name of the variable.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Overridable" type="YesNoType">
+                <xs:annotation>
+                    <xs:documentation>
+                        Set this value to 'yes' in order to make the variable's value overridable either by
+                        another WixVariable entry or via the command-line option -d&lt;name&gt;=&lt;value&gt;
+                        for light.exe.  If the same variable is declared overridable in multiple places it
+                        will cause an error (since WiX won't know which value is correct).  The default value
+                        is 'no'.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Value" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        The value of the variable.  The value cannot be an empty string because that would
+                        make it possible to accidentally set a column to null.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="InstanceTransforms">
+        <xs:annotation>
+            <xs:documentation>
+                Use this element to contain definitions for instance transforms.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:choice minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="Instance"/>
+            </xs:choice>
+            <xs:attribute name="Property" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The Id of the Property who's value should change for each instance.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="Instance">
+        <xs:annotation>
+            <xs:documentation>
+                Defines an instance transform for your product.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>
+                        The identity of the instance transform. This value will define the name by which the instance
+                        should be referred to on the command line. In addition, the value of the this attribute will
+                        determine what the value of the property specified in Property attribute on InstanceTransforms
+                        will change to for each instance.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ProductCode" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>The ProductCode for this instance.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="ProductName" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>The ProductName for this instance.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+  <xs:element name="MajorUpgrade">
+    <xs:annotation>
+      <xs:documentation>
+                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.
+            </xs:documentation>
+      <xs:appinfo>
+        <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" />
+      </xs:appinfo>
+    </xs:annotation>
+    <xs:complexType>
+        <xs:attribute name="AllowDowngrades" type="YesNoType">
+            <xs:annotation>
+                <xs:documentation>
+                    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.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="AllowSameVersionUpgrades" type="YesNoType">
+            <xs:annotation>
+                <xs:documentation>
+                    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.
+                </xs:documentation>
+            </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="Disallow" type="YesNoType">
+              <xs:annotation>
+                  <xs:documentation>
+                      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.
+                  </xs:documentation>
+              </xs:annotation>
+          </xs:attribute>
+      <xs:attribute name="DowngradeErrorMessage" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+                        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).
+          </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="DisallowUpgradeErrorMessage" type="xs:string">
+          <xs:annotation>
+              <xs:documentation>
+                  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.
+              </xs:documentation>
+          </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="MigrateFeatures" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>
+                        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.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="IgnoreRemoveFailure" type="YesNoType">
+        <xs:annotation>
+          <xs:documentation>
+                        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.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="RemoveFeatures" type="xs:string">
+        <xs:annotation>
+          <xs:documentation>
+                        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.
+                    </xs:documentation>
+        </xs:annotation>
+      </xs:attribute>
+      <xs:attribute name="Schedule" default="afterInstallValidate">
+        <xs:annotation>
+          <xs:documentation>
+                        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 <html:a href="http://msdn.microsoft.com/en-us/library/aa371197.aspx" target="_blank">RemoveExistingProducts</html:a>.
+                    </xs:documentation>
+        </xs:annotation>
+        <xs:simpleType>
+          <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="afterInstallValidate">
+              <xs:annotation>
+                <xs:documentation>
+                                    (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.
+                                </xs:documentation>
+              </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="afterInstallInitialize">
+              <xs:annotation>
+                <xs:documentation>
+                                    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.
+                                </xs:documentation>
+              </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="afterInstallExecute">
+              <xs:annotation>
+                <xs:documentation>
+                                    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
+                                    <html:a href="http://www.joyofsetup.com/2008/12/30/paying-for-upgrades/" target="_blank">
+                                        Bob Arnson's blog post "Paying for Upgrades"
+                                    </html:a> 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.
+                                </xs:documentation>
+              </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="afterInstallExecuteAgain">
+              <xs:annotation>
+                <xs:documentation>
+                                    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.
+                                </xs:documentation>
+              </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="afterInstallFinalize">
+              <xs:annotation>
+                <xs:documentation>
+                                    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.
+                                </xs:documentation>
+              </xs:annotation>
+            </xs:enumeration>
+          </xs:restriction>
+        </xs:simpleType>
+      </xs:attribute>
+    </xs:complexType>
+  </xs:element>
+    <!-- - - - - - - - - - - Complex Type Definitions  - - - - - - - - - - - -->
+
+    <xs:complexType name="ActionModuleSequenceType">
+        <xs:simpleContent>
+            <xs:extension base="xs:string">
+                <xs:annotation><xs:documentation>Text node specifies the condition of the action.</xs:documentation></xs:annotation>
+                <xs:attribute name="After" type="xs:string">
+                    <xs:annotation><xs:documentation>The name of an action that this action should come after.</xs:documentation></xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="Before" type="xs:string">
+                    <xs:annotation><xs:documentation>The name of an action that this action should come before.</xs:documentation></xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="Overridable" type="YesNoType">
+                    <xs:annotation>
+                        <xs:documentation>
+                            If "yes", the sequencing of this action may be overridden by sequencing elsewhere.
+                        </xs:documentation>
+                    </xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="Sequence" type="xs:integer">
+                    <xs:annotation><xs:documentation>A value used to indicate the position of this action in a sequence.</xs:documentation></xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="Suppress" type="YesNoType">
+                    <xs:annotation><xs:documentation>If yes, this action will not occur.</xs:documentation></xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:simpleContent>
+    </xs:complexType>
+
+    <xs:complexType name="ActionSequenceType">
+        <xs:simpleContent>
+            <xs:extension base="xs:string">
+                <xs:attribute name="Sequence" type="xs:integer">
+                    <xs:annotation><xs:documentation>A value used to indicate the position of this action in a sequence.</xs:documentation></xs:annotation>
+                </xs:attribute>
+                <xs:attribute name="Suppress" type="YesNoType">
+                    <xs:annotation><xs:documentation>If yes, this action will not occur.</xs:documentation></xs:annotation>
+                </xs:attribute>
+            </xs:extension>
+        </xs:simpleContent>
+    </xs:complexType>
+
+    <!-- - - - - - - - - - - Simple Type Definitions - - - - - - - - - - - - -->
+
+    <xs:simpleType name="Guid">
+        <xs:annotation><xs:documentation>Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". Also allows "PUT-GUID-HERE" for use in examples.</xs:documentation></xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="AutogenGuid">
+        <xs:annotation><xs:documentation>Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}". A GUID can be auto-generated by setting the value to "*". Also allows "PUT-GUID-HERE" for use in examples.</xs:documentation></xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|[{(]?\?{8}\-\?{4}\-\?{4}\-\?{4}\-\?{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="ComponentGuid">
+        <xs:annotation><xs:documentation>Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF" or "{01234567-89AB-CDEF-0123-456789ABCDEF}", but also allows "PUT-GUID-HERE" for use in examples.  It's also possible to have an empty value "".</xs:documentation></xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="[{(]?[0-9A-Fa-f]{8}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{4}\-?[0-9A-Fa-f]{12}[})]?|PUT\-GUID\-(?:\d+\-)?HERE|([!$])(\(var|\(loc|\(wix)\.[_A-Za-z][0-9A-Za-z_.]*\)|\*|^$"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="LocalizableInteger">
+        <xs:annotation><xs:documentation>Values of this type must be an integer or the value can be a localization variable with the format !(loc.Variable) where "Variable" is the name of the variable.</xs:documentation></xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="[0-9][0-9]*|([!$])\((?:loc|bind)\.[_A-Za-z][0-9A-Za-z_.]+\)"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="ShortFileNameType">
+        <xs:annotation><xs:documentation>Values of this type will look like: "FileName.ext".  Only one period is allowed.  The following characters are not allowed: \ ? | > : / * " + , ; = [ ] less-than, or whitespace.  The name cannot be longer than 8 characters and the extension cannot exceed 3 characters.  The value could also be a localization variable with the format !(loc.VARIABLE).</xs:documentation></xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="[^\\\?|&gt;&lt;:/\*&quot;\+,;=\[\]\. ]{1,8}(\.[^\\\?|&gt;&lt;:/\*&quot;\+,;=\[\]\. ]{0,3})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="LongFileNameType">
+        <xs:annotation><xs:documentation>Values of this type will look like: "Long File Name.extension".  Legal long names contain no more than 260 characters and must contain at least one non-period character.  The following characters are not allowed: \ ? | > : / * " or less-than.  The name must be shorter than 260 characters.  The value could also be a localization variable with the format !(loc.VARIABLE).</xs:documentation></xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="[^\\\?|&gt;&lt;:/\*&quot;]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)"/>
+        </xs:restriction>
+    </xs:simpleType>
+    
+    <xs:simpleType name="VersionType">
+        <xs:annotation><xs:documentation>Values of this type will look like: "x.x.x.x" where x is an integer from 0 to 65534.</xs:documentation></xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="(\d{1,5}\.){3}\d{1,5}"/>
+        </xs:restriction>
+    </xs:simpleType>
+    
+    <xs:simpleType name="WildCardShortFileNameType">
+        <xs:annotation><xs:documentation>Values of this type will look like: "File?.*".  Only one period is allowed.  The following characters are not allowed: \ | > : / " + , ; = [ ] less-than, or whitespace.  The name cannot be longer than 8 characters and the extension cannot exceed 3 characters.  The value could also be a localization variable with the format !(loc.VARIABLE).</xs:documentation></xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="[^\\\|&gt;&lt;:/&quot;\+,;=\[\]\. ]{1,16}(\.[^\\\|&gt;&lt;:/&quot;\+,;=\[\]\. ]{0,6})?|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="WildCardLongFileNameType">
+        <xs:annotation><xs:documentation>Values of this type will look like: "Long File N?me.extension*".  Legal long names contain no more than 260 characters and must contain at least one non-period character.  The following characters are not allowed: \ | > : / " or less-than.  The name must be shorter than 260 characters.  The value could also be a localization variable with the format !(loc.VARIABLE).</xs:documentation></xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="[^\\\|&gt;&lt;:/&quot;]{1,259}|([!$])\(loc\.[_A-Za-z][0-9A-Za-z_.]*\)"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="HexType">
+        <xs:annotation><xs:documentation>This type supports any hexadecimal number.  Both upper and lower case is acceptable for letters appearing in the number.  This type also includes the empty string: "".</xs:documentation></xs:annotation>
+        <xs:restriction base="xs:string">
+            <xs:pattern value="[0-9A-Fa-f]*"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="YesNoType">
+        <xs:annotation><xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation></xs:annotation>
+        <xs:restriction base='xs:NMTOKEN'>
+            <xs:enumeration value="no"/>
+            <xs:enumeration value="yes"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="YesNoDefaultType">
+        <xs:annotation><xs:documentation>Values of this type will either be "default", "yes", or "no".</xs:documentation></xs:annotation>
+        <xs:restriction base='xs:NMTOKEN'>
+            <xs:enumeration value="default"/>
+            <xs:enumeration value="no"/>
+            <xs:enumeration value="yes"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="RegistryRootType">
+        <xs:annotation>
+            <xs:documentation>Values of this type represent possible registry roots.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="HKMU">
+                <xs:annotation>
+                    <xs:documentation>
+                        A per-user installation will make the operation occur under HKEY_CURRENT_USER.
+                        A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="HKCR">
+                <xs:annotation>
+                    <xs:documentation>
+                        Operation occurs under HKEY_CLASSES_ROOT.  When using Windows 2000 or later, the installer writes or removes the value
+                        from the HKCU\Software\Classes hive during per-user installations.  When using Windows 2000 or later operating systems,
+                        the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="HKCU">
+                <xs:annotation>
+                    <xs:documentation>
+                        Operation occurs under HKEY_CURRENT_USER.  It is recommended to set the KeyPath='yes' attribute when setting this value for writing values
+                        in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="HKLM">
+                <xs:annotation>
+                    <xs:documentation>
+                        Operation occurs under HKEY_LOCAL_MACHINE.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="HKU">
+                <xs:annotation>
+                    <xs:documentation>
+                        Operation occurs under HKEY_USERS.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="ExitType">
+        <xs:annotation>
+            <xs:documentation>TODO: What does this type mean?</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="success"/>
+            <xs:enumeration value="cancel"/>
+            <xs:enumeration value="error"/>
+            <xs:enumeration value="suspend"/>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="InstallUninstallType">
+        <xs:annotation>
+            <xs:documentation>Specifies whether an action occur on install, uninstall or both.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="install">
+                <xs:annotation>
+                    <xs:documentation>
+                        The action should happen during install (msiInstallStateLocal or msiInstallStateSource).
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="uninstall">
+                <xs:annotation>
+                    <xs:documentation>
+                        The action should happen during uninstall (msiInstallStateAbsent).
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="both">
+                <xs:annotation>
+                    <xs:documentation>
+                        The action should happen during both install and uninstall.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+        </xs:restriction>
+    </xs:simpleType>
+
+    <xs:simpleType name="SequenceType">
+        <xs:annotation>
+            <xs:documentation>
+                Controls which sequences the item assignment is sequenced in.
+            </xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="both">
+                <xs:annotation>
+                    <xs:documentation>
+                        Schedules the assignment in the InstallUISequence and the InstallExecuteSequence.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="execute">
+                <xs:annotation>
+                    <xs:documentation>
+                        Schedules the assignment only in the the InstallExecuteSequence.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+            <xs:enumeration value="ui">
+                <xs:annotation>
+                    <xs:documentation>
+                        Schedules the assignment only in the the InstallUISequence.
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:enumeration>
+        </xs:restriction>
+    </xs:simpleType>
+
+</xs:schema>
diff --git a/doc/wixloc.xsd b/doc/wixloc.xsd
new file mode 100644
index 0000000..6cb1529
--- /dev/null
+++ b/doc/wixloc.xsd
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+          xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
+         xmlns:html="http://www.w3.org/1999/xhtml"
+    targetNamespace="http://schemas.microsoft.com/wix/2006/localization"
+              xmlns="http://schemas.microsoft.com/wix/2006/localization">
+    <xs:annotation>
+        <xs:documentation>
+            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.
+
+            Schema for describing Windows Installer Xml Localization files (.wxl).
+        </xs:documentation>
+    </xs:annotation>
+
+    <xs:element name="WixLocalization">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:remarks>
+                    <html:p>You can specify any valid Windows code by integer like 1252, or by web name like Windows-1252 or iso-8859-1. See <a href="/html/codepage.htm">Code Pages</a> for more information.</html:p>
+                </xse:remarks>
+                <xse:howtoRef href="build_a_localized_version.htm">How To: Build a localized version of your installer</xse:howtoRef>
+                <xse:howtoRef href="make_installer_localizable.htm">How To: Make your installer localizable</xse:howtoRef>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType>
+            <xs:sequence minOccurs="0" maxOccurs="unbounded">
+                <xs:element ref="String" />
+            </xs:sequence>
+            <xs:attribute name="Codepage" type="xs:string">
+                <xs:annotation>
+                    <xs:documentation>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.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Culture" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Culture of the localization strings.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:element name="String">
+        <xs:annotation>
+            <xs:appinfo>
+                <xse:howtoRef href="build_a_localized_version.htm">How To: Build a localized version of your installer</xse:howtoRef>
+                <xse:howtoRef href="make_installer_localizable.htm">How To: Make your installer localizable</xse:howtoRef>
+            </xs:appinfo>
+        </xs:annotation>
+        <xs:complexType mixed="true">
+            <xs:attribute name="Id" type="xs:string" use="required">
+                <xs:annotation>
+                    <xs:documentation>Identity of the resource.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Overridable" type="LocalizationYesNoType">
+                <xs:annotation>
+                    <xs:documentation>Determines if the localized string may be overridden.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+            <xs:attribute name="Localizable" type="LocalizationYesNoType">
+                <xs:annotation>
+                    <xs:documentation>Indicates whether the string is localizable text or a non-localizable string that must be unique per locale. No WiX tools are affected by the value of this attribute; it used as documentation for localizers to ignore things like GUIDs or identifiers that look like text.</xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
+        </xs:complexType>
+    </xs:element>
+
+    <xs:simpleType name="LocalizationYesNoType">
+        <xs:restriction base="xs:NMTOKEN">
+            <xs:enumeration value="no" />
+            <xs:enumeration value="yes" />
+        </xs:restriction>
+    </xs:simpleType>
+</xs:schema>
diff --git a/heat.exe b/heat.exe
new file mode 100755
index 0000000..749d393
--- /dev/null
+++ b/heat.exe
Binary files differ
diff --git a/heat.exe.config b/heat.exe.config
new file mode 100644
index 0000000..5d5aa30
--- /dev/null
+++ b/heat.exe.config
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <appSettings>
+        <add key="extensions" value="WixIIsExtension;WixUtilExtension;WixVSExtension"/>
+    </appSettings>
+    <startup useLegacyV2RuntimeActivationPolicy="true">
+        <supportedRuntime version="v4.0" />
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/insignia.exe b/insignia.exe
new file mode 100755
index 0000000..f9e3a31
--- /dev/null
+++ b/insignia.exe
Binary files differ
diff --git a/insignia.exe.config b/insignia.exe.config
new file mode 100644
index 0000000..bed32a7
--- /dev/null
+++ b/insignia.exe.config
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <startup useLegacyV2RuntimeActivationPolicy="true">
+        <supportedRuntime version="v4.0" />
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/light.exe b/light.exe
new file mode 100755
index 0000000..dfb7866
--- /dev/null
+++ b/light.exe
Binary files differ
diff --git a/light.exe.config b/light.exe.config
new file mode 100644
index 0000000..bed32a7
--- /dev/null
+++ b/light.exe.config
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <startup useLegacyV2RuntimeActivationPolicy="true">
+        <supportedRuntime version="v4.0" />
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/lit.exe b/lit.exe
new file mode 100755
index 0000000..1000d48
--- /dev/null
+++ b/lit.exe
Binary files differ
diff --git a/lit.exe.config b/lit.exe.config
new file mode 100644
index 0000000..bed32a7
--- /dev/null
+++ b/lit.exe.config
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <startup useLegacyV2RuntimeActivationPolicy="true">
+        <supportedRuntime version="v4.0" />
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/lux.exe b/lux.exe
new file mode 100755
index 0000000..1966b5c
--- /dev/null
+++ b/lux.exe
Binary files differ
diff --git a/lux.exe.config b/lux.exe.config
new file mode 100644
index 0000000..a6f6211
--- /dev/null
+++ b/lux.exe.config
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <appSettings>
+        <add key="extensions" value="WixDifxAppExtension;WixDirectXExtension;WixFirewallExtension;WixGamingExtension;WixIIsExtension;WixLuxExtension;WixNetFxExtension;WixSqlExtension;WixUIExtension;WixUtilExtension;WixVSExtension" />
+    </appSettings>
+    <startup>
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/lux.targets b/lux.targets
new file mode 100644
index 0000000..e1c0ff5
--- /dev/null
+++ b/lux.targets
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+****************************************************************************************************
+lux.targets
+****************************************************************************************************
+-->
+
+<Project
+  xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
+  ToolsVersion="3.5">
+
+  <UsingTask TaskName="GenerateTestConsumer" AssemblyFile="$(LuxTasksPath)" />
+  <UsingTask TaskName="Nit" AssemblyFile="$(LuxTasksPath)" />
+  
+  <PropertyGroup>
+    <BuildTestPackageDependsOn>Compile;_ScanForUnitTests;_GenerateTestConsumer;Link</BuildTestPackageDependsOn>
+    <TestDependsOn>$(BuildTestPackageDependsOn)</TestDependsOn>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <GeneratedTestConsumer Include="$(OutputName)_test.wxs" />
+  </ItemGroup>
+
+  <Target
+    Name="_ScanForUnitTests">
+
+    <!--
+    So the Link target can do proper up-to-date checking, we need to give it the right list of 
+    .wixobj inputs, which we get by scanning for unit tests and not generating a test consumer.
+    -->
+    
+    <GenerateTestConsumer
+      InputFiles="@(CompileObjOutput);@(WixObject);@(WixLibProjects);@(_ResolvedWixLibraryPaths)"
+      Extensions="@(_ResolvedWixExtensionPaths)">
+        <Output TaskParameter="InputFragments" ItemName="FilesThatAreFragments" />
+    </GenerateTestConsumer>
+    
+    <ItemGroup>
+      <CompileObjOutput
+        Remove="@(CompileObjOutput)" />
+      <CompileObjOutput
+        Include="
+          @(GeneratedTestConsumer -> '$(IntermediateOutputPath)%(Filename)$(IntermediateExt)');
+          @(FilesThatAreFragments);
+        " />
+    </ItemGroup>
+
+    <PropertyGroup>
+      <TargetName>$(OutputName)_test</TargetName>
+      <SuppressIces>ICE71;$(SuppressIces)</SuppressIces>
+      <SuppressValidation>true</SuppressValidation>
+    </PropertyGroup>
+
+  </Target>
+
+  <Target
+    Name="_GenerateTestConsumer"
+    Inputs="@(Compile);
+            @(Content);
+            @(_ResolvedWixExtensionPaths);
+            @(_ResolvedProjectReferencePaths);
+            $(MSBuildAllProjects)"
+    Outputs="@(GeneratedTestConsumer -> '$(IntermediateOutputPath)%(Filename)$(IntermediateExt)')">
+
+    <GenerateTestConsumer
+      InputFiles="@(CompileObjOutput);@(WixObject);@(WixLibProjects);@(_ResolvedWixLibraryPaths)"
+      Extensions="@(_ResolvedWixExtensionPaths)"
+      OutputFile="@(GeneratedTestConsumer)">
+        <Output TaskParameter="InputFragments" ItemName="FilesThatAreFragments" />
+    </GenerateTestConsumer>
+
+    <Candle
+      SourceFiles="@(GeneratedTestConsumer)"
+      AdditionalOptions="$(CompilerAdditionalOptions)"
+      DefineConstants="$(DefineConstants);$(SolutionDefineConstants);$(ProjectDefineConstants);$(ProjectReferenceDefineConstants)"
+      ExtensionDirectory="$(WixExtDir)"
+      Extensions="@(_ResolvedWixExtensionPaths)"
+      FipsCompliant="$(FipsCompliant)"
+      IncludeSearchPaths="$(IncludeSearchPaths)"
+      InstallerPlatform="$(InstallerPlatform)"
+      NoLogo="$(CompilerNoLogo)"
+      OutputFile="$(IntermediateOutputPath)"
+      Pedantic="$(Pedantic)"
+      ReferencePaths="$(ReferencePaths)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      ShowSourceTrace="$(ShowSourceTrace)"
+      SuppressAllWarnings="$(CompilerSuppressAllWarnings)"
+      SuppressSchemaValidation="$(CompilerSuppressSchemaValidation)"
+      SuppressSpecificWarnings="$(CompilerSuppressSpecificWarnings)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(CompilerTreatWarningsAsErrors)"
+      TreatSpecificWarningsAsErrors="$(CompilerTreatSpecificWarningsAsErrors)"
+      VerboseOutput="$(CompilerVerboseOutput)" />
+  </Target>
+
+  <Target
+    Name="BuildTestPackage"
+    Inputs="@(CompileObjOutput);
+      @(WixObject);
+      @(_ResolvedProjectReferencePaths);
+      @(_ResolvedWixLibraryPaths);
+      @(_ResolvedWixExtensionPaths);
+      $(MSBuildAllProjects)"
+    Outputs="$(TargetPath)"
+    DependsOnTargets="$(BuildTestPackageDependsOn)" />
+
+  <Target
+    Name="Test"
+    DependsOnTargets="$(BuildTestPackageDependsOn)">
+
+    <Nit 
+      TestPackages="$(TargetPath)" 
+      ToolPath="$(WixToolPath)" />
+  </Target>
+</Project>
diff --git a/melt.exe b/melt.exe
new file mode 100755
index 0000000..8ad0b3d
--- /dev/null
+++ b/melt.exe
Binary files differ
diff --git a/melt.exe.config b/melt.exe.config
new file mode 100644
index 0000000..807cf2c
--- /dev/null
+++ b/melt.exe.config
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <appSettings>
+    </appSettings>
+    <startup useLegacyV2RuntimeActivationPolicy="true">
+        <supportedRuntime version="v4.0" />
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/mergemod.cub b/mergemod.cub
new file mode 100644
index 0000000..2042a99
--- /dev/null
+++ b/mergemod.cub
Binary files differ
diff --git a/mergemod.dll b/mergemod.dll
new file mode 100755
index 0000000..cc53b1c
--- /dev/null
+++ b/mergemod.dll
Binary files differ
diff --git a/mspatchc.dll b/mspatchc.dll
new file mode 100755
index 0000000..4720f1a
--- /dev/null
+++ b/mspatchc.dll
Binary files differ
diff --git a/nit.exe b/nit.exe
new file mode 100755
index 0000000..231f967
--- /dev/null
+++ b/nit.exe
Binary files differ
diff --git a/nit.exe.config b/nit.exe.config
new file mode 100644
index 0000000..cae9da7
--- /dev/null
+++ b/nit.exe.config
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <startup>
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/pyro.exe b/pyro.exe
new file mode 100755
index 0000000..6f26266
--- /dev/null
+++ b/pyro.exe
Binary files differ
diff --git a/pyro.exe.config b/pyro.exe.config
new file mode 100644
index 0000000..bed32a7
--- /dev/null
+++ b/pyro.exe.config
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <startup useLegacyV2RuntimeActivationPolicy="true">
+        <supportedRuntime version="v4.0" />
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/sconce2005.dll b/sconce2005.dll
new file mode 100755
index 0000000..e1c4eb6
--- /dev/null
+++ b/sconce2005.dll
Binary files differ
diff --git a/sconce2008.dll b/sconce2008.dll
new file mode 100755
index 0000000..3be814b
--- /dev/null
+++ b/sconce2008.dll
Binary files differ
diff --git a/sconce2010.dll b/sconce2010.dll
new file mode 100755
index 0000000..468fbde
--- /dev/null
+++ b/sconce2010.dll
Binary files differ
diff --git a/sdk/DocCompiler.exe b/sdk/DocCompiler.exe
new file mode 100755
index 0000000..32d6eaa
--- /dev/null
+++ b/sdk/DocCompiler.exe
Binary files differ
diff --git a/sdk/MakeSfxCA.exe b/sdk/MakeSfxCA.exe
new file mode 100755
index 0000000..3eb6dbb
--- /dev/null
+++ b/sdk/MakeSfxCA.exe
Binary files differ
diff --git a/sdk/MakeSfxCA.exe.config b/sdk/MakeSfxCA.exe.config
new file mode 100644
index 0000000..bed32a7
--- /dev/null
+++ b/sdk/MakeSfxCA.exe.config
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <startup useLegacyV2RuntimeActivationPolicy="true">
+        <supportedRuntime version="v4.0" />
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/sdk/Microsoft.Deployment.Compression.Cab.dll b/sdk/Microsoft.Deployment.Compression.Cab.dll
new file mode 100755
index 0000000..a4a4e31
--- /dev/null
+++ b/sdk/Microsoft.Deployment.Compression.Cab.dll
Binary files differ
diff --git a/sdk/Microsoft.Deployment.Compression.Cab.xml b/sdk/Microsoft.Deployment.Compression.Cab.xml
new file mode 100644
index 0000000..2fbcdb2
--- /dev/null
+++ b/sdk/Microsoft.Deployment.Compression.Cab.xml
@@ -0,0 +1,465 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Deployment.Compression.Cab</name>
+    </assembly>
+    <members>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabWorker.Dispose(System.Boolean)">
+            <summary>
+            Disposes of resources allocated by the cabinet engine.
+            </summary>
+            <param name="disposing">If true, the method has been called directly or indirectly by a user's code,
+            so managed and unmanaged resources will be disposed. If false, the method has been called by the 
+            runtime from inside the finalizer, and only unmanaged resources will be disposed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabPacker.Dispose(System.Boolean)">
+            <summary>
+            Disposes of resources allocated by the cabinet engine.
+            </summary>
+            <param name="disposing">If true, the method has been called directly or indirectly by a user's code,
+            so managed and unmanaged resources will be disposed. If false, the method has been called by the 
+            runtime from inside the finalizer, and only unmanaged resources will be disposed.</param>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.CabEngine">
+            <summary>
+            Engine capable of packing and unpacking archives in the cabinet format.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.#ctor">
+            <summary>
+            Creates a new instance of the cabinet engine.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.Dispose(System.Boolean)">
+            <summary>
+            Disposes of resources allocated by the cabinet engine.
+            </summary>
+            <param name="disposing">If true, the method has been called directly
+            or indirectly by a user's code, so managed and unmanaged resources
+            will be disposed. If false, the method has been called by the runtime
+            from inside the finalizer, and only unmanaged resources will be
+            disposed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.Pack(Microsoft.Deployment.Compression.IPackStreamContext,System.Collections.Generic.IEnumerable{System.String},System.Int64)">
+            <summary>
+            Creates a cabinet or chain of cabinets.
+            </summary>
+            <param name="streamContext">A context interface to handle opening
+            and closing of cabinet and file streams.</param>
+            <param name="files">The paths of the files in the archive (not
+            external file paths).</param>
+            <param name="maxArchiveSize">The maximum number of bytes for one
+            cabinet before the contents are chained to the next cabinet, or zero
+            for unlimited cabinet size.</param>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The cabinet could not be
+            created.</exception>
+            <remarks>
+            The stream context implementation may provide a mapping from the
+            file paths within the cabinet to the external file paths.
+            <para>Smaller folder sizes can make it more efficient to extract
+            individual files out of large cabinet packages.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.IsArchive(System.IO.Stream)">
+            <summary>
+            Checks whether a Stream begins with a header that indicates
+            it is a valid cabinet file.
+            </summary>
+            <param name="stream">Stream for reading the cabinet file.</param>
+            <returns>True if the stream is a valid cabinet file
+            (with no offset); false otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.GetFileInfo(Microsoft.Deployment.Compression.IUnpackStreamContext,System.Predicate{System.String})">
+            <summary>
+            Gets information about files in a cabinet or cabinet chain.
+            </summary>
+            <param name="streamContext">A context interface to handle opening
+            and closing of cabinet and file streams.</param>
+            <param name="fileFilter">A predicate that can determine
+            which files to process, optional.</param>
+            <returns>Information about files in the cabinet stream.</returns>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The cabinet provided
+            by the stream context is not valid.</exception>
+            <remarks>
+            The <paramref name="fileFilter"/> predicate takes an internal file
+            path and returns true to include the file or false to exclude it.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabEngine.Unpack(Microsoft.Deployment.Compression.IUnpackStreamContext,System.Predicate{System.String})">
+            <summary>
+            Extracts files from a cabinet or cabinet chain.
+            </summary>
+            <param name="streamContext">A context interface to handle opening
+            and closing of cabinet and file streams.</param>
+            <param name="fileFilter">An optional predicate that can determine
+            which files to process.</param>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The cabinet provided
+            by the stream context is not valid.</exception>
+            <remarks>
+            The <paramref name="fileFilter"/> predicate takes an internal file
+            path and returns true to include the file or false to exclude it.
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.CabException">
+            <summary>
+            Exception class for cabinet operations.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabException.#ctor(System.String,System.Exception)">
+            <summary>
+            Creates a new CabException with a specified error message and a reference to the
+            inner exception that is the cause of this exception.
+            </summary>
+            <param name="message">The message that describes the error.</param>
+            <param name="innerException">The exception that is the cause of the current exception. If the
+            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+            is raised in a catch block that handles the inner exception.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabException.#ctor(System.String)">
+            <summary>
+            Creates a new CabException with a specified error message.
+            </summary>
+            <param name="message">The message that describes the error.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabException.#ctor">
+            <summary>
+            Creates a new CabException.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the CabException class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Sets the SerializationInfo with information about the exception.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Cab.CabException.Error">
+            <summary>
+            Gets the FCI or FDI cabinet engine error number.
+            </summary>
+            <value>A cabinet engine error number, or 0 if the exception was
+            not related to a cabinet engine error number.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Cab.CabException.ErrorCode">
+            <summary>
+            Gets the Win32 error code.
+            </summary>
+            <value>A Win32 error code, or 0 if the exception was
+            not related to a Win32 error.</value>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabUnpacker.Dispose(System.Boolean)">
+            <summary>
+            Disposes of resources allocated by the cabinet engine.
+            </summary>
+            <param name="disposing">If true, the method has been called directly or indirectly by a user's code,
+            so managed and unmanaged resources will be disposed. If false, the method has been called by the 
+            runtime from inside the finalizer, and only unmanaged resources will be disposed.</param>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.CabFileInfo">
+            <summary>
+            Object representing a compressed file within a cabinet package; provides operations for getting
+            the file properties and extracting the file.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabFileInfo.#ctor(Microsoft.Deployment.Compression.Cab.CabInfo,System.String)">
+            <summary>
+            Creates a new CabinetFileInfo object representing a file within a cabinet in a specified path.
+            </summary>
+            <param name="cabinetInfo">An object representing the cabinet containing the file.</param>
+            <param name="filePath">The path to the file within the cabinet. Usually, this is a simple file
+            name, but if the cabinet contains a directory structure this may include the directory.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabFileInfo.#ctor(System.String,System.Int32,System.Int32,System.IO.FileAttributes,System.DateTime,System.Int64)">
+            <summary>
+            Creates a new CabinetFileInfo object with all parameters specified,
+            used internally when reading the metadata out of a cab.
+            </summary>
+            <param name="filePath">The internal path and name of the file in the cab.</param>
+            <param name="cabFolder">The folder number containing the file.</param>
+            <param name="cabNumber">The cabinet number where the file starts.</param>
+            <param name="attributes">The stored attributes of the file.</param>
+            <param name="lastWriteTime">The stored last write time of the file.</param>
+            <param name="length">The uncompressed size of the file.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabFileInfo.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the CabinetFileInfo class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabFileInfo.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Sets the SerializationInfo with information about the archive.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data.</param>
+            <param name="context">The StreamingContext that contains contextual information
+            about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabFileInfo.Refresh(Microsoft.Deployment.Compression.ArchiveFileInfo)">
+            <summary>
+            Refreshes the information in this object with new data retrieved
+            from an archive.
+            </summary>
+            <param name="newFileInfo">Fresh instance for the same file just
+            read from the archive.</param>
+            <remarks>
+            This implementation refreshes the <see cref="P:Microsoft.Deployment.Compression.Cab.CabFileInfo.CabinetFolderNumber"/>.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Cab.CabFileInfo.Cabinet">
+            <summary>
+            Gets or sets the cabinet that contains this file.
+            </summary>
+            <value>
+            The CabinetInfo instance that retrieved this file information -- this
+            may be null if the CabinetFileInfo object was returned directly from a
+            stream.
+            </value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Cab.CabFileInfo.CabinetName">
+            <summary>
+            Gets the full path of the cabinet that contains this file.
+            </summary>
+            <value>The full path of the cabinet that contains this file.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Cab.CabFileInfo.CabinetFolderNumber">
+            <summary>
+            Gets the number of the folder containing this file.
+            </summary>
+            <value>The number of the cabinet folder containing this file.</value>
+            <remarks>A single folder or the first folder of a cabinet
+            (or chain of cabinets) is numbered 0.</remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.CabInfo">
+            <summary>
+            Object representing a cabinet file on disk; provides access to
+            file-based operations on the cabinet file.
+            </summary>
+            <remarks>
+            Generally, the methods on this class are much easier to use than the
+            stream-based interfaces provided by the <see cref="T:Microsoft.Deployment.Compression.Cab.CabEngine"/> class.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabInfo.#ctor(System.String)">
+            <summary>
+            Creates a new CabinetInfo object representing a cabinet file in a specified path.
+            </summary>
+            <param name="path">The path to the cabinet file. When creating a cabinet file, this file does not
+            necessarily exist yet.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabInfo.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the CabinetInfo class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabInfo.CreateCompressionEngine">
+            <summary>
+            Creates a compression engine that does the low-level work for
+            this object.
+            </summary>
+            <returns>A new <see cref="T:Microsoft.Deployment.Compression.Cab.CabEngine"/> instance.</returns>
+            <remarks>
+            Each instance will be <see cref="M:Microsoft.Deployment.Compression.CompressionEngine.Dispose"/>d
+            immediately after use.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabInfo.GetFiles">
+            <summary>
+            Gets information about the files contained in the archive.
+            </summary>
+            <returns>A list of <see cref="T:Microsoft.Deployment.Compression.Cab.CabFileInfo"/> objects, each
+            containing information about a file in the archive.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.CabInfo.GetFiles(System.String)">
+            <summary>
+            Gets information about the certain files contained in the archive file.
+            </summary>
+            <param name="searchPattern">The search string, such as
+            "*.txt".</param>
+            <returns>A list of <see cref="T:Microsoft.Deployment.Compression.Cab.CabFileInfo"/> objects, each containing
+            information about a file in the archive.</returns>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.HandleManager`1">
+            <summary>
+            Generic class for managing allocations of integer handles
+            for objects of a certain type.
+            </summary>
+            <typeparam name="T">The type of objects the handles refer to.</typeparam>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Cab.HandleManager`1.handles">
+            <summary>
+            Auto-resizing list of objects for which handles have been allocated.
+            Each handle is just an index into this list. When a handle is freed,
+            the list item at that index is set to null.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.HandleManager`1.#ctor">
+            <summary>
+            Creates a new HandleManager instance.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.HandleManager`1.AllocHandle(`0)">
+            <summary>
+            Allocates a new handle for an object.
+            </summary>
+            <param name="obj">Object that the handle will refer to.</param>
+            <returns>New handle that can be later used to retrieve the object.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.HandleManager`1.FreeHandle(System.Int32)">
+            <summary>
+            Frees a handle that was previously allocated. Afterward the handle
+            will be invalid and the object it referred to can no longer retrieved.
+            </summary>
+            <param name="handle">Handle to be freed.</param>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Cab.HandleManager`1.Item(System.Int32)">
+            <summary>
+            Gets the object of a handle, or null if the handle is invalid.
+            </summary>
+            <param name="handle">The integer handle previously allocated
+            for the desired object.</param>
+            <returns>The object for which the handle was allocated.</returns>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods">
+            <summary>
+            Native DllImport methods and related structures and constants used for
+            cabinet creation and extraction via cabinet.dll.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI">
+            <summary>
+            A direct import of constants, enums, structures, delegates, and functions from fci.h.
+            Refer to comments in fci.h for documentation.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.ERROR">
+            <summary>
+            Error codes that can be returned by FCI.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.TCOMP">
+            <summary>
+            FCI compression algorithm types and parameters.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.STATUS">
+            <summary>
+            Reason for FCI status callback.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.CCAB">
+            <summary>
+            Cabinet information structure used for FCI initialization and GetNextCabinet callback.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.Handle">
+            <summary>
+            Ensures that the FCI handle is safely released.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.Handle.#ctor">
+            <summary>
+            Creates a new unintialized handle. The handle will be initialized
+            when it is marshalled back from native code.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.Handle.ReleaseHandle">
+            <summary>
+            Releases the handle by calling FDIDestroy().
+            </summary>
+            <returns>True if the release succeeded.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Cab.NativeMethods.FCI.Handle.IsInvalid">
+            <summary>
+            Checks if the handle is invalid. An FCI handle is invalid when it is zero.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI">
+            <summary>
+            A direct import of constants, enums, structures, delegates, and functions from fdi.h.
+            Refer to comments in fdi.h for documentation.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.ERROR">
+            <summary>
+            Error codes that can be returned by FDI.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.NOTIFICATIONTYPE">
+            <summary>
+            Type of notification message for the FDI Notify callback.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.CABINFO">
+            <summary>
+            Cabinet information structure filled in by FDI IsCabinet.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.NOTIFICATION">
+            <summary>
+            Cabinet notification details passed to the FDI Notify callback.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.Handle">
+            <summary>
+            Ensures that the FDI handle is safely released.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.Handle.#ctor">
+            <summary>
+            Creates a new unintialized handle. The handle will be initialized
+            when it is marshalled back from native code.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.Handle.ReleaseHandle">
+            <summary>
+            Releases the handle by calling FDIDestroy().
+            </summary>
+            <returns>True if the release succeeded.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Cab.NativeMethods.FDI.Handle.IsInvalid">
+            <summary>
+            Checks if the handle is invalid. An FDI handle is invalid when it is zero.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Cab.NativeMethods.ERF">
+            <summary>
+            Error info structure for FCI and FDI.
+            </summary>
+            <remarks>Before being passed to FCI or FDI, this structure is
+            pinned in memory via a GCHandle. The pinning is necessary
+            to be able to read the results, since the ERF structure doesn't
+            get marshalled back out after an error.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Cab.NativeMethods.ERF.Clear">
+            <summary>
+            Clears the error information.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Cab.NativeMethods.ERF.Oper">
+            <summary>
+            Gets or sets the cabinet error code.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Cab.NativeMethods.ERF.Type">
+            <summary>
+            Gets or sets the Win32 error code.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Cab.NativeMethods.ERF.Error">
+            <summary>
+            GCHandle doesn't like the bool type, so use an int underneath.
+            </summary>
+        </member>
+    </members>
+</doc>
diff --git a/sdk/Microsoft.Deployment.Compression.Zip.dll b/sdk/Microsoft.Deployment.Compression.Zip.dll
new file mode 100755
index 0000000..98f3c44
--- /dev/null
+++ b/sdk/Microsoft.Deployment.Compression.Zip.dll
Binary files differ
diff --git a/sdk/Microsoft.Deployment.Compression.Zip.xml b/sdk/Microsoft.Deployment.Compression.Zip.xml
new file mode 100644
index 0000000..214d229
--- /dev/null
+++ b/sdk/Microsoft.Deployment.Compression.Zip.xml
@@ -0,0 +1,514 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Deployment.Compression.Zip</name>
+    </assembly>
+    <members>
+        <member name="T:Microsoft.Deployment.Compression.Zip.ConcatStream">
+            <summary>
+            Used to trick a DeflateStream into reading from or writing to
+            a series of (chunked) streams instead of a single steream.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Zip.CrcStream">
+            <summary>
+            Wraps a source stream and calcaluates a CRC over all bytes that are read or written.
+            </summary>
+            <remarks>
+            The CRC algorithm matches that used in the standard ZIP file format.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.#ctor(System.IO.Stream)">
+            <summary>
+            Creates a new CrcStream instance from a source stream.
+            </summary>
+            <param name="source">Underlying stream where bytes will be read from or written to.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Seek(System.Int64,System.IO.SeekOrigin)">
+            <summary>
+            Sets the position within the source stream.
+            </summary>
+            <param name="offset">A byte offset relative to the origin parameter.</param>
+            <param name="origin">A value of type SeekOrigin indicating
+            the reference point used to obtain the new position.</param>
+            <returns>The new position within the source stream.</returns>
+            <remarks>
+            Note the CRC is only calculated over bytes that are actually read or
+            written, so any bytes skipped by seeking will not contribute to the CRC.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.SetLength(System.Int64)">
+            <summary>
+            Sets the length of the source stream.
+            </summary>
+            <param name="value">The desired length of the
+            stream in bytes.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Read(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Reads a sequence of bytes from the source stream and advances
+            the position within the stream by the number of bytes read.
+            </summary>
+            <param name="buffer">An array of bytes. When this method returns, the buffer
+            contains the specified byte array with the values between offset and
+            (offset + count - 1) replaced by the bytes read from the current source.</param>
+            <param name="offset">The zero-based byte offset in buffer at which to begin
+            storing the data read from the current stream.</param>
+            <param name="count">The maximum number of bytes to be read from the current stream.</param>
+            <returns>The total number of bytes read into the buffer. This can be less
+            than the number of bytes requested if that many bytes are not currently available,
+            or zero (0) if the end of the stream has been reached.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Write(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Writes a sequence of bytes to the source stream and advances the
+            current position within this stream by the number of bytes written.
+            </summary>
+            <param name="buffer">An array of bytes. This method copies count
+            bytes from buffer to the current stream.</param>
+            <param name="offset">The zero-based byte offset in buffer at which
+            to begin copying bytes to the current stream.</param>
+            <param name="count">The number of bytes to be written to the
+            current stream.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Flush">
+            <summary>
+            Flushes the source stream.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Close">
+            <summary>
+            Closes the underlying stream.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.UpdateCrc(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Updates the CRC with a range of bytes that were read or written.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.MakeCrcTable">
+            <summary>
+            Computes a table that speeds up calculation of the CRC.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.CrcStream.Reflect(System.UInt32,System.Int32)">
+            <summary>
+            Reflects the ordering of certain number of bits. For exmample when reflecting
+            one byte, bit one is swapped with bit eight, bit two with bit seven, etc.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.Crc">
+            <summary>
+            Gets the current CRC over all bytes that have been read or written
+            since this instance was created.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.Source">
+            <summary>
+            Gets the underlying stream that this stream reads from or writes to.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.CanRead">
+            <summary>
+            Gets a value indicating whether the source stream supports reading.
+            </summary>
+            <value>true if the stream supports reading; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.CanWrite">
+            <summary>
+            Gets a value indicating whether the source stream supports writing.
+            </summary>
+            <value>true if the stream supports writing; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.CanSeek">
+            <summary>
+            Gets a value indicating whether the source stream supports seeking.
+            </summary>
+            <value>true if the stream supports seeking; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.Length">
+            <summary>
+            Gets the length of the source stream.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Zip.CrcStream.Position">
+            <summary>
+            Gets or sets the position of the source stream.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod">
+            <summary>
+            Identifies the compression method or &quot;algorithm&quot;
+            used for a single file within a zip archive.
+            </summary>
+            <remarks>
+            Proprietary zip implementations may define additional compression
+            methods outside of those included here.
+            </remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Store">
+            <summary>
+            The file is stored (no compression)
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Shrink">
+            <summary>
+            The file is Shrunk
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Reduce1">
+            <summary>
+            The file is Reduced with compression factor 1
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Reduce2">
+            <summary>
+            The file is Reduced with compression factor 2
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Reduce3">
+            <summary>
+            The file is Reduced with compression factor 3
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Reduce4">
+            <summary>
+            The file is Reduced with compression factor 4
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Implode">
+            <summary>
+            The file is Imploded
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Deflate">
+            <summary>
+            The file is Deflated;
+            the most common and widely-compatible form of zip compression.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Deflate64">
+            <summary>
+            The file is Deflated using the enhanced Deflate64 method.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.BZip2">
+            <summary>
+            The file is compressed using the BZIP2 algorithm.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Lzma">
+            <summary>
+            The file is compressed using the LZMA algorithm.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.Zip.ZipCompressionMethod.Ppmd">
+            <summary>
+            The file is compressed using the PPMd algorithm.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Zip.ZipException">
+            <summary>
+            Exception class for zip operations.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipException.#ctor(System.String,System.Exception)">
+            <summary>
+            Creates a new ZipException with a specified error message and a reference to the
+            inner exception that is the cause of this exception.
+            </summary>
+            <param name="message">The message that describes the error.</param>
+            <param name="innerException">The exception that is the cause of the current exception. If the
+            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+            is raised in a catch block that handles the inner exception.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipException.#ctor(System.String)">
+            <summary>
+            Creates a new ZipException with a specified error message.
+            </summary>
+            <param name="message">The message that describes the error.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipException.#ctor">
+            <summary>
+            Creates a new ZipException.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the ZipException class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Sets the SerializationInfo with information about the exception.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Zip.ZipEngine">
+            <summary>
+            Engine capable of packing and unpacking archives in the zip format.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.RegisterCompressionStreamCreator(Microsoft.Deployment.Compression.Zip.ZipCompressionMethod,System.IO.Compression.CompressionMode,System.Converter{System.IO.Stream,System.IO.Stream})">
+            <summary>
+            Registers a delegate that can create a warpper stream for
+            compressing or uncompressing the data of a source stream.
+            </summary>
+            <param name="compressionMethod">Compression method being registered.</param>
+            <param name="compressionMode">Indicates registration for ether
+            compress or decompress mode.</param>
+            <param name="creator">Delegate being registered.</param>
+            <remarks>
+            For compression, the delegate accepts a stream that writes to the archive
+            and returns a wrapper stream that compresses bytes as they are written.
+            For decompression, the delegate accepts a stream that reads from the archive
+            and returns a wrapper stream that decompresses bytes as they are read.
+            This wrapper stream model follows the design used by
+            System.IO.Compression.DeflateStream, and indeed that class is used
+            to implement the Deflate compression method by default.
+            <para>To unregister a delegate, call this method again and pass
+            null for the delegate parameter.</para>
+            </remarks>
+            <example>
+            When the ZipEngine class is initialized, the Deflate compression method
+            is automatically registered like this:
+            <code>
+                   ZipEngine.RegisterCompressionStreamCreator(
+                       ZipCompressionMethod.Deflate,
+                       CompressionMode.Compress,
+                       delegate(Stream stream) {
+                           return new DeflateStream(stream, CompressionMode.Compress, true);
+                       });
+                   ZipEngine.RegisterCompressionStreamCreator(
+                       ZipCompressionMethod.Deflate,
+                       CompressionMode.Decompress,
+                       delegate(Stream stream) {
+                           return new DeflateStream(stream, CompressionMode.Decompress, true);
+                       });
+            </code></example>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.#ctor">
+            <summary>
+            Creates a new instance of the zip engine.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.IsArchive(System.IO.Stream)">
+            <summary>
+            Checks whether a Stream begins with a header that indicates
+            it is a valid archive file.
+            </summary>
+            <param name="stream">Stream for reading the archive file.</param>
+            <returns>True if the stream is a valid zip archive
+            (with no offset); false otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.FindArchiveOffset(System.IO.Stream)">
+            <summary>
+            Gets the offset of an archive that is positioned 0 or more bytes
+            from the start of the Stream.
+            </summary>
+            <param name="stream">A stream for reading the archive.</param>
+            <returns>The offset in bytes of the archive,
+            or -1 if no archive is found in the Stream.</returns>
+            <remarks>The archive must begin on a 4-byte boundary.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.GetFileInfo(Microsoft.Deployment.Compression.IUnpackStreamContext,System.Predicate{System.String})">
+            <summary>
+            Gets information about files in a zip archive or archive chain.
+            </summary>
+            <param name="streamContext">A context interface to handle opening
+            and closing of archive and file streams.</param>
+            <param name="fileFilter">A predicate that can determine
+            which files to process, optional.</param>
+            <returns>Information about files in the archive stream.</returns>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The archive provided
+            by the stream context is not valid.</exception>
+            <remarks>
+            The <paramref name="fileFilter"/> predicate takes an internal file
+            path and returns true to include the file or false to exclude it.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.GetCentralDirectory(Microsoft.Deployment.Compression.IUnpackStreamContext)">
+            <summary>
+            Reads all the file headers from the central directory in the main archive.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.GetEOCD(Microsoft.Deployment.Compression.IUnpackStreamContext,System.IO.Stream)">
+            <summary>
+            Locates and reads the end of central directory record near the
+            end of the archive.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.Pack(Microsoft.Deployment.Compression.IPackStreamContext,System.Collections.Generic.IEnumerable{System.String},System.Int64)">
+            <summary>
+            Creates a zip archive or chain of zip archives.
+            </summary>
+            <param name="streamContext">A context interface to handle opening
+            and closing of archive and file streams.</param>
+            <param name="files">An array of file lists.  Each list is
+            compressed into one stream in the archive.</param>
+            <param name="maxArchiveSize">The maximum number of bytes for one archive
+            before the contents are chained to the next archive, or zero for unlimited
+            archive size.</param>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The archive could not be
+            created.</exception>
+            <remarks>
+            The stream context implementation may provide a mapping from the file
+            paths within the archive to the external file paths.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.CheckArchiveWriteStream(Microsoft.Deployment.Compression.IPackStreamContext,System.Int64,System.Int64,System.IO.Stream@)">
+            <summary>
+            Moves to the next archive in the sequence if necessary.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.PackOneFile(Microsoft.Deployment.Compression.IPackStreamContext,System.String,System.Int64,System.Boolean,System.IO.Stream@)">
+            <summary>
+            Adds one file to a zip archive in the process of being created.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.PackFileBytes(Microsoft.Deployment.Compression.IPackStreamContext,System.IO.Stream,System.Int64,System.Converter{System.IO.Stream,System.IO.Stream},System.IO.Stream@,System.UInt32@)">
+            <summary>
+            Writes compressed bytes of one file to the archive,
+            keeping track of the CRC and number of bytes written.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.Unpack(Microsoft.Deployment.Compression.IUnpackStreamContext,System.Predicate{System.String})">
+            <summary>
+            Extracts files from a zip archive or archive chain.
+            </summary>
+            <param name="streamContext">A context interface to handle opening
+            and closing of archive and file streams.</param>
+            <param name="fileFilter">An optional predicate that can determine
+            which files to process.</param>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The archive provided
+            by the stream context is not valid.</exception>
+            <remarks>
+            The <paramref name="fileFilter"/> predicate takes an internal file
+            path and returns true to include the file or false to exclude it.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.UnpackOneFile(Microsoft.Deployment.Compression.IUnpackStreamContext,Microsoft.Deployment.Compression.Zip.ZipFileHeader,System.IO.Stream@)">
+            <summary>
+            Unpacks a single file from an archive or archive chain.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipEngine.UnpackFileBytes(Microsoft.Deployment.Compression.IUnpackStreamContext,System.String,System.Int64,System.Int64,System.UInt32,System.IO.Stream,System.Converter{System.IO.Stream,System.IO.Stream},System.IO.Stream@)">
+            <summary>
+            Decompresses bytes for one file from an archive or archive chain,
+            checking the crc at the end.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Zip.ZipEngine.ArchiveComment">
+            <summary>
+            Gets the comment from the last-examined archive,
+            or sets the comment to be added to any created archives.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Zip.ZipFileInfo">
+            <summary>
+            Object representing a compressed file within a zip package; provides operations for getting
+            the file properties and extracting the file.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipFileInfo.#ctor(Microsoft.Deployment.Compression.Zip.ZipInfo,System.String)">
+            <summary>
+            Creates a new ZipFileInfo object representing a file within a zip in a specified path.
+            </summary>
+            <param name="zipInfo">An object representing the zip archive containing the file.</param>
+            <param name="filePath">The path to the file within the zip archive. Usually, this is a simple file
+            name, but if the zip archive contains a directory structure this may include the directory.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipFileInfo.#ctor(System.String,System.Int32,System.IO.FileAttributes,System.DateTime,System.Int64,System.Int64,Microsoft.Deployment.Compression.Zip.ZipCompressionMethod)">
+            <summary>
+            Creates a new ZipFileInfo object with all parameters specified,
+            used internally when reading the metadata out of a zip archive.
+            </summary>
+            <param name="filePath">The internal path and name of the file in the zip archive.</param>
+            <param name="zipNumber">The zip archive number where the file starts.</param>
+            <param name="attributes">The stored attributes of the file.</param>
+            <param name="lastWriteTime">The stored last write time of the file.</param>
+            <param name="length">The uncompressed size of the file.</param>
+            <param name="compressedLength">The compressed size of the file.</param>
+            <param name="compressionMethod">Compression algorithm used for this file.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipFileInfo.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the ZipFileInfo class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipFileInfo.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Sets the SerializationInfo with information about the archive.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data.</param>
+            <param name="context">The StreamingContext that contains contextual information
+            about the source or destination.</param>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Zip.ZipFileInfo.CompressedLength">
+            <summary>
+            Gets the compressed size of the file in bytes.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.Zip.ZipFileInfo.CompressionMethod">
+            <summary>
+            Gets the method used to compress this file.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.Zip.ZipInfo">
+            <summary>
+            Object representing a zip file on disk; provides access to
+            file-based operations on the zip file.
+            </summary>
+            <remarks>
+            Generally, the methods on this class are much easier to use than the
+            stream-based interfaces provided by the <see cref="T:Microsoft.Deployment.Compression.Zip.ZipEngine"/> class.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipInfo.#ctor(System.String)">
+            <summary>
+            Creates a new CabinetInfo object representing a zip file in a specified path.
+            </summary>
+            <param name="path">The path to the zip file. When creating a zip file, this file does not
+            necessarily exist yet.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipInfo.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the CabinetInfo class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipInfo.CreateCompressionEngine">
+            <summary>
+            Creates a compression engine that does the low-level work for
+            this object.
+            </summary>
+            <returns>A new <see cref="T:Microsoft.Deployment.Compression.Zip.ZipEngine"/> instance.</returns>
+            <remarks>
+            Each instance will be <see cref="M:Microsoft.Deployment.Compression.CompressionEngine.Dispose"/>d
+            immediately after use.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipInfo.GetFiles">
+            <summary>
+            Gets information about the files contained in the archive.
+            </summary>
+            <returns>A list of <see cref="T:Microsoft.Deployment.Compression.Zip.ZipFileInfo"/> objects, each
+            containing information about a file in the archive.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.Zip.ZipInfo.GetFiles(System.String)">
+            <summary>
+            Gets information about the certain files contained in the archive file.
+            </summary>
+            <param name="searchPattern">The search string, such as
+            "*.txt".</param>
+            <returns>A list of <see cref="T:Microsoft.Deployment.Compression.Zip.ZipFileInfo"/> objects, each containing
+            information about a file in the archive.</returns>
+        </member>
+    </members>
+</doc>
diff --git a/sdk/Microsoft.Deployment.Compression.dll b/sdk/Microsoft.Deployment.Compression.dll
new file mode 100755
index 0000000..2eb5e3c
--- /dev/null
+++ b/sdk/Microsoft.Deployment.Compression.dll
Binary files differ
diff --git a/sdk/Microsoft.Deployment.Compression.xml b/sdk/Microsoft.Deployment.Compression.xml
new file mode 100644
index 0000000..259a9a5
--- /dev/null
+++ b/sdk/Microsoft.Deployment.Compression.xml
@@ -0,0 +1,1936 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Deployment.Compression</name>
+    </assembly>
+    <members>
+        <member name="T:Microsoft.Deployment.Compression.ArchiveException">
+            <summary>
+            Base exception class for compression operations. Compression libraries should
+            derive subclass exceptions with more specific error information relevent to the
+            file format.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveException.#ctor(System.String,System.Exception)">
+            <summary>
+            Creates a new ArchiveException with a specified error message and a reference to the
+            inner exception that is the cause of this exception.
+            </summary>
+            <param name="message">The message that describes the error.</param>
+            <param name="innerException">The exception that is the cause of the current exception. If the
+            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+            is raised in a catch block that handles the inner exception.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveException.#ctor(System.String)">
+            <summary>
+            Creates a new ArchiveException with a specified error message.
+            </summary>
+            <param name="message">The message that describes the error.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveException.#ctor">
+            <summary>
+            Creates a new ArchiveException.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the ArchiveException class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.ArchiveFileInfo">
+            <summary>
+            Abstract object representing a compressed file within an archive;
+            provides operations for getting the file properties and unpacking
+            the file.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.#ctor(Microsoft.Deployment.Compression.ArchiveInfo,System.String)">
+            <summary>
+            Creates a new ArchiveFileInfo object representing a file within
+            an archive in a specified path.
+            </summary>
+            <param name="archiveInfo">An object representing the archive
+            containing the file.</param>
+            <param name="filePath">The path to the file within the archive.
+            Usually, this is a simple file name, but if the archive contains
+            a directory structure this may include the directory.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.#ctor(System.String,System.Int32,System.IO.FileAttributes,System.DateTime,System.Int64)">
+            <summary>
+            Creates a new ArchiveFileInfo object with all parameters specified;
+            used by subclasses when reading the metadata out of an archive.
+            </summary>
+            <param name="filePath">The internal path and name of the file in
+            the archive.</param>
+            <param name="archiveNumber">The archive number where the file
+            starts.</param>
+            <param name="attributes">The stored attributes of the file.</param>
+            <param name="lastWriteTime">The stored last write time of the
+            file.</param>
+            <param name="length">The uncompressed size of the file.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the ArchiveFileInfo class with
+            serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized
+            object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual
+            information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Sets the SerializationInfo with information about the archive.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized
+            object data.</param>
+            <param name="context">The StreamingContext that contains contextual
+            information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.ToString">
+            <summary>
+            Gets the full path to the file.
+            </summary>
+            <returns>The same as <see cref="P:Microsoft.Deployment.Compression.ArchiveFileInfo.FullName"/></returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.Delete">
+            <summary>
+            Deletes the file. NOT SUPPORTED.
+            </summary>
+            <exception cref="T:System.NotSupportedException">Files cannot be deleted
+            from an existing archive.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.Refresh">
+            <summary>
+            Refreshes the attributes and other cached information about the file,
+            by re-reading the information from the archive.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.CopyTo(System.String)">
+            <summary>
+            Extracts the file.
+            </summary>
+            <param name="destFileName">The destination path where the file
+            will be extracted.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.CopyTo(System.String,System.Boolean)">
+            <summary>
+            Extracts the file, optionally overwriting any existing file.
+            </summary>
+            <param name="destFileName">The destination path where the file
+            will be extracted.</param>
+            <param name="overwrite">If true, <paramref name="destFileName"/>
+            will be overwritten if it exists.</param>
+            <exception cref="T:System.IO.IOException"><paramref name="overwrite"/> is false
+            and <paramref name="destFileName"/> exists.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.OpenRead">
+            <summary>
+            Opens the archive file for reading without actually extracting the
+            file to disk.
+            </summary>
+            <returns>
+            A stream for reading directly from the packed file. Like any stream
+            this should be closed/disposed as soon as it is no longer needed.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.OpenText">
+            <summary>
+            Opens the archive file reading text with UTF-8 encoding without
+            actually extracting the file to disk.
+            </summary>
+            <returns>
+            A reader for reading text directly from the packed file. Like any reader
+            this should be closed/disposed as soon as it is no longer needed.
+            </returns>
+            <remarks>
+            To open an archived text file with different encoding, use the
+            <see cref="M:Microsoft.Deployment.Compression.ArchiveFileInfo.OpenRead"/> method and pass the returned stream to one of
+            the <see cref="T:System.IO.StreamReader"/> constructor overloads.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileInfo.Refresh(Microsoft.Deployment.Compression.ArchiveFileInfo)">
+            <summary>
+            Refreshes the information in this object with new data retrieved
+            from an archive.
+            </summary>
+            <param name="newFileInfo">Fresh instance for the same file just
+            read from the archive.</param>
+            <remarks>
+            Subclasses may override this method to refresh sublcass fields.
+            However they should always call the base implementation first.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileInfo.Name">
+            <summary>
+            Gets the name of the file.
+            </summary>
+            <value>The name of the file, not including any path.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileInfo.Path">
+            <summary>
+            Gets the internal path of the file in the archive.
+            </summary>
+            <value>The internal path of the file in the archive, not including
+            the file name.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileInfo.FullName">
+            <summary>
+            Gets the full path to the file.
+            </summary>
+            <value>The full path to the file, including the full path to the
+            archive, the internal path in the archive, and the file name.</value>
+            <remarks>
+            For example, the path <c>"C:\archive.cab\file.txt"</c> refers to
+            a file "file.txt" inside the archive "archive.cab".
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileInfo.Archive">
+            <summary>
+            Gets or sets the archive that contains this file.
+            </summary>
+            <value>
+            The ArchiveInfo instance that retrieved this file information -- this
+            may be null if the ArchiveFileInfo object was returned directly from
+            a stream.
+            </value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileInfo.ArchiveName">
+            <summary>
+            Gets the full path of the archive that contains this file.
+            </summary>
+            <value>The full path of the archive that contains this file.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileInfo.ArchiveNumber">
+            <summary>
+            Gets the number of the archive where this file starts.
+            </summary>
+            <value>The number of the archive where this file starts.</value>
+            <remarks>A single archive or the first archive in a chain is
+            numbered 0.</remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileInfo.Exists">
+            <summary>
+            Checks if the file exists within the archive.
+            </summary>
+            <value>True if the file exists, false otherwise.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileInfo.Length">
+            <summary>
+            Gets the uncompressed size of the file.
+            </summary>
+            <value>The uncompressed size of the file in bytes.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileInfo.Attributes">
+            <summary>
+            Gets the attributes of the file.
+            </summary>
+            <value>The attributes of the file as stored in the archive.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileInfo.LastWriteTime">
+            <summary>
+            Gets the last modification time of the file.
+            </summary>
+            <value>The last modification time of the file as stored in the
+            archive.</value>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.ArchiveInfo">
+            <summary>
+            Abstract object representing a compressed archive on disk;
+            provides access to file-based operations on the archive.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.#ctor(System.String)">
+            <summary>
+            Creates a new ArchiveInfo object representing an archive in a
+            specified path.
+            </summary>
+            <param name="path">The path to the archive. When creating an archive,
+            this file does not necessarily exist yet.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the ArchiveInfo class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object
+            data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual
+            information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.ToString">
+            <summary>
+            Gets the full path of the archive.
+            </summary>
+            <returns>The full path of the archive.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.Delete">
+            <summary>
+            Deletes the archive.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.CopyTo(System.String)">
+            <summary>
+            Copies an existing archive to another location.
+            </summary>
+            <param name="destFileName">The destination file path.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.CopyTo(System.String,System.Boolean)">
+            <summary>
+            Copies an existing archive to another location, optionally
+            overwriting the destination file.
+            </summary>
+            <param name="destFileName">The destination file path.</param>
+            <param name="overwrite">If true, the destination file will be
+            overwritten if it exists.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.MoveTo(System.String)">
+            <summary>
+            Moves an existing archive to another location.
+            </summary>
+            <param name="destFileName">The destination file path.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.IsValid">
+            <summary>
+            Checks if the archive contains a valid archive header.
+            </summary>
+            <returns>True if the file is a valid archive; false otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.GetFiles">
+            <summary>
+            Gets information about the files contained in the archive.
+            </summary>
+            <returns>A list of <see cref="T:Microsoft.Deployment.Compression.ArchiveFileInfo"/> objects, each
+            containing information about a file in the archive.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.GetFiles(System.String)">
+            <summary>
+            Gets information about the certain files contained in the archive file.
+            </summary>
+            <param name="searchPattern">The search string, such as
+            "*.txt".</param>
+            <returns>A list of <see cref="T:Microsoft.Deployment.Compression.ArchiveFileInfo"/> objects, each containing
+            information about a file in the archive.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.Unpack(System.String)">
+            <summary>
+            Extracts all files from an archive to a destination directory.
+            </summary>
+            <param name="destDirectory">Directory where the files are to be
+            extracted.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.Unpack(System.String,System.EventHandler{Microsoft.Deployment.Compression.ArchiveProgressEventArgs})">
+            <summary>
+            Extracts all files from an archive to a destination directory,
+            optionally extracting only newer files.
+            </summary>
+            <param name="destDirectory">Directory where the files are to be
+            extracted.</param>
+            <param name="progressHandler">Handler for receiving progress
+            information; this may be null if progress is not desired.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.UnpackFile(System.String,System.String)">
+            <summary>
+            Extracts a single file from the archive.
+            </summary>
+            <param name="fileName">The name of the file in the archive. Also
+            includes the internal path of the file, if any. File name matching
+            is case-insensitive.</param>
+            <param name="destFileName">The path where the file is to be
+            extracted on disk.</param>
+            <remarks>If <paramref name="destFileName"/> already exists,
+            it will be overwritten.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.UnpackFiles(System.Collections.Generic.IList{System.String},System.String,System.Collections.Generic.IList{System.String})">
+            <summary>
+            Extracts multiple files from the archive.
+            </summary>
+            <param name="fileNames">The names of the files in the archive.
+            Each name includes the internal path of the file, if any. File name
+            matching is case-insensitive.</param>
+            <param name="destDirectory">This parameter may be null, but if
+            specified it is the root directory for any relative paths in
+            <paramref name="destFileNames"/>.</param>
+            <param name="destFileNames">The paths where the files are to be
+            extracted on disk. If this parameter is null, the files will be
+            extracted with the names from the archive.</param>
+            <remarks>
+            If any extracted files already exist on disk, they will be overwritten.
+            <p>The <paramref name="destDirectory"/> and
+            <paramref name="destFileNames"/> parameters cannot both be null.</p>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.UnpackFiles(System.Collections.Generic.IList{System.String},System.String,System.Collections.Generic.IList{System.String},System.EventHandler{Microsoft.Deployment.Compression.ArchiveProgressEventArgs})">
+            <summary>
+            Extracts multiple files from the archive, optionally extracting
+            only newer files.
+            </summary>
+            <param name="fileNames">The names of the files in the archive.
+            Each name includes the internal path of the file, if any. File name
+            matching is case-insensitive.</param>
+            <param name="destDirectory">This parameter may be null, but if
+            specified it is the root directory for any relative paths in
+            <paramref name="destFileNames"/>.</param>
+            <param name="destFileNames">The paths where the files are to be
+            extracted on disk. If this parameter is null, the files will be
+            extracted with the names from the archive.</param>
+            <param name="progressHandler">Handler for receiving progress information;
+            this may be null if progress is not desired.</param>
+            <remarks>
+            If any extracted files already exist on disk, they will be overwritten.
+            <p>The <paramref name="destDirectory"/> and
+            <paramref name="destFileNames"/> parameters cannot both be null.</p>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.UnpackFileSet(System.Collections.Generic.IDictionary{System.String,System.String},System.String)">
+            <summary>
+            Extracts multiple files from the archive.
+            </summary>
+            <param name="fileNames">A mapping from internal file paths to
+            external file paths. Case-senstivity when matching internal paths
+            depends on the IDictionary implementation.</param>
+            <param name="destDirectory">This parameter may be null, but if
+            specified it is the root directory for any relative external paths
+            in <paramref name="fileNameMap"/>.</param>
+            <remarks>
+            If any extracted files already exist on disk, they will be overwritten.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.UnpackFileSet(System.Collections.Generic.IDictionary{System.String,System.String},System.String,System.EventHandler{Microsoft.Deployment.Compression.ArchiveProgressEventArgs})">
+            <summary>
+            Extracts multiple files from the archive.
+            </summary>
+            <param name="fileNames">A mapping from internal file paths to
+            external file paths. Case-senstivity when matching internal
+            paths depends on the IDictionary implementation.</param>
+            <param name="destDirectory">This parameter may be null, but if
+            specified it is the root directory for any relative external
+            paths in <paramref name="fileNameMap"/>.</param>
+            <param name="progressHandler">Handler for receiving progress
+            information; this may be null if progress is not desired.</param>
+            <remarks>
+            If any extracted files already exist on disk, they will be overwritten.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.OpenRead(System.String)">
+            <summary>
+            Opens a file inside the archive for reading without actually
+            extracting the file to disk.
+            </summary>
+            <param name="fileName">The name of the file in the archive. Also
+            includes the internal path of the file, if any. File name matching
+            is case-insensitive.</param>
+            <returns>
+            A stream for reading directly from the packed file. Like any stream
+            this should be closed/disposed as soon as it is no longer needed.
+            </returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.OpenText(System.String)">
+            <summary>
+            Opens a file inside the archive for reading text with UTF-8 encoding
+            without actually extracting the file to disk.
+            </summary>
+            <param name="fileName">The name of the file in the archive. Also
+            includes the internal path of the file, if any. File name matching
+            is case-insensitive.</param>
+            <returns>
+            A reader for reading text directly from the packed file. Like any reader
+            this should be closed/disposed as soon as it is no longer needed.
+            </returns>
+            <remarks>
+            To open an archived text file with different encoding, use the
+            <see cref="M:Microsoft.Deployment.Compression.ArchiveInfo.OpenRead(System.String)"/> method and pass the returned stream to one of
+            the <see cref="T:System.IO.StreamReader"/> constructor overloads.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.Pack(System.String)">
+            <summary>
+            Compresses all files in a directory into the archive.
+            Does not include subdirectories.
+            </summary>
+            <param name="sourceDirectory">The directory containing the
+            files to be included.</param>
+            <remarks>
+            Uses maximum compression level.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.Pack(System.String,System.Boolean,Microsoft.Deployment.Compression.CompressionLevel,System.EventHandler{Microsoft.Deployment.Compression.ArchiveProgressEventArgs})">
+            <summary>
+            Compresses all files in a directory into the archive, optionally
+            including subdirectories.
+            </summary>
+            <param name="sourceDirectory">This parameter may be null, but
+            if specified it is the root directory
+            for any relative paths in <paramref name="sourceFileNames"/>.</param>
+            <param name="includeSubdirectories">If true, recursively include
+            files in subdirectories.</param>
+            <param name="compLevel">The compression level used when creating
+            the archive.</param>
+            <param name="progressHandler">Handler for receiving progress information;
+            this may be null if progress is not desired.</param>
+            <remarks>
+            The files are stored in the archive using their relative file paths in
+            the directory tree, if supported by the archive file format.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.PackFiles(System.String,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String})">
+            <summary>
+            Compresses files into the archive, specifying the names used to
+            store the files in the archive.
+            </summary>
+            <param name="sourceDirectory">This parameter may be null, but
+            if specified it is the root directory
+            for any relative paths in <paramref name="sourceFileNames"/>.</param>
+            <param name="sourceFileNames">The list of files to be included in
+            the archive.</param>
+            <param name="fileNames">The names of the files as they are stored
+            in the archive. Each name
+            includes the internal path of the file, if any. This parameter may
+            be null, in which case the files are stored in the archive with their
+            source file names and no path information.</param>
+            <remarks>
+            Uses maximum compression level.
+            <p>Duplicate items in the <paramref name="fileNames"/> array will cause
+            an <see cref="T:Microsoft.Deployment.Compression.ArchiveException"/>.</p>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.PackFiles(System.String,System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String},Microsoft.Deployment.Compression.CompressionLevel,System.EventHandler{Microsoft.Deployment.Compression.ArchiveProgressEventArgs})">
+            <summary>
+            Compresses files into the archive, specifying the names used to
+            store the files in the archive.
+            </summary>
+            <param name="sourceDirectory">This parameter may be null, but if
+            specified it is the root directory
+            for any relative paths in <paramref name="sourceFileNames"/>.</param>
+            <param name="sourceFileNames">The list of files to be included in
+            the archive.</param>
+            <param name="fileNames">The names of the files as they are stored in
+            the archive. Each name includes the internal path of the file, if any.
+            This parameter may be null, in which case the files are stored in the
+            archive with their source file names and no path information.</param>
+            <param name="compLevel">The compression level used when creating the
+            archive.</param>
+            <param name="progressHandler">Handler for receiving progress information;
+            this may be null if progress is not desired.</param>
+            <remarks>
+            Duplicate items in the <paramref name="fileNames"/> array will cause
+            an <see cref="T:Microsoft.Deployment.Compression.ArchiveException"/>.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.PackFileSet(System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
+            <summary>
+            Compresses files into the archive, specifying the names used
+            to store the files in the archive.
+            </summary>
+            <param name="sourceDirectory">This parameter may be null, but if
+            specified it is the root directory
+            for any relative paths in <paramref name="fileNames"/>.</param>
+            <param name="fileNames">A mapping from internal file paths to
+            external file paths.</param>
+            <remarks>
+            Uses maximum compression level.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.PackFileSet(System.String,System.Collections.Generic.IDictionary{System.String,System.String},Microsoft.Deployment.Compression.CompressionLevel,System.EventHandler{Microsoft.Deployment.Compression.ArchiveProgressEventArgs})">
+            <summary>
+            Compresses files into the archive, specifying the names used to
+            store the files in the archive.
+            </summary>
+            <param name="sourceDirectory">This parameter may be null, but if
+            specified it is the root directory
+            for any relative paths in <paramref name="fileNames"/>.</param>
+            <param name="fileNames">A mapping from internal file paths to
+            external file paths.</param>
+            <param name="compLevel">The compression level used when creating
+            the archive.</param>
+            <param name="progressHandler">Handler for receiving progress information;
+            this may be null if progress is not desired.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.GetRelativeFilePathsInDirectoryTree(System.String,System.Boolean)">
+            <summary>
+            Given a directory, gets the relative paths of all files in the
+            directory, optionally including all subdirectories.
+            </summary>
+            <param name="dir">The directory to search.</param>
+            <param name="includeSubdirectories">True to include subdirectories
+            in the search.</param>
+            <returns>A list of file paths relative to the directory.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.GetFile(System.String)">
+            <summary>
+            Retrieves information about one file from this archive.
+            </summary>
+            <param name="path">Path of the file in the archive.</param>
+            <returns>File information, or null if the file was not found
+            in the archive.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.CreateCompressionEngine">
+            <summary>
+            Creates a compression engine that does the low-level work for
+            this object.
+            </summary>
+            <returns>A new compression engine instance that matches the specific
+            subclass of archive.</returns>
+            <remarks>
+            Each instance will be <see cref="M:Microsoft.Deployment.Compression.CompressionEngine.Dispose"/>d
+            immediately after use.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.CreateStringDictionary(System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String})">
+            <summary>
+            Creates a case-insensitive dictionary mapping from one list of
+            strings to the other.
+            </summary>
+            <param name="keys">List of keys.</param>
+            <param name="values">List of values that are mapped 1-to-1 to
+            the keys.</param>
+            <returns>A filled dictionary of the strings.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.RecursiveGetRelativeFilePathsInDirectoryTree(System.String,System.String,System.Boolean,System.Collections.Generic.IList{System.String})">
+            <summary>
+            Recursive-descent helper function for
+            GetRelativeFilePathsInDirectoryTree.
+            </summary>
+            <param name="dir">The root directory of the search.</param>
+            <param name="relativeDir">The relative directory to be
+            processed now.</param>
+            <param name="includeSubdirectories">True to descend into
+            subdirectories.</param>
+            <param name="fileList">List of files found so far.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveInfo.InternalGetFiles(System.Predicate{System.String})">
+            <summary>
+            Uses a CompressionEngine to get ArchiveFileInfo objects from this
+            archive, and then associates them with this ArchiveInfo instance.
+            </summary>
+            <param name="fileFilter">Optional predicate that can determine
+            which files to process.</param>
+            <returns>A list of <see cref="T:Microsoft.Deployment.Compression.ArchiveFileInfo"/> objects, each
+            containing information about a file in the archive.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveInfo.Directory">
+            <summary>
+            Gets the directory that contains the archive.
+            </summary>
+            <value>A DirectoryInfo object representing the parent directory of the
+            archive.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveInfo.DirectoryName">
+            <summary>
+            Gets the full path of the directory that contains the archive.
+            </summary>
+            <value>The full path of the directory that contains the archive.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveInfo.Length">
+            <summary>
+            Gets the size of the archive.
+            </summary>
+            <value>The size of the archive in bytes.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveInfo.Name">
+            <summary>
+            Gets the file name of the archive.
+            </summary>
+            <value>The file name of the archive, not including any path.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveInfo.Exists">
+            <summary>
+            Checks if the archive exists.
+            </summary>
+            <value>True if the archive exists; else false.</value>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.ArchiveProgressEventArgs">
+            <summary>
+            Contains the data reported in an archive progress event.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.#ctor(Microsoft.Deployment.Compression.ArchiveProgressType,System.String,System.Int32,System.Int32,System.Int64,System.Int64,System.String,System.Int32,System.Int32,System.Int64,System.Int64,System.Int64,System.Int64)">
+            <summary>
+            Creates a new ArchiveProgressEventArgs object from specified event parameters.
+            </summary>
+            <param name="progressType">type of status message</param>
+            <param name="currentFileName">name of the file being processed</param>
+            <param name="currentFileNumber">number of the current file being processed</param>
+            <param name="totalFiles">total number of files to be processed</param>
+            <param name="currentFileBytesProcessed">number of bytes processed so far when compressing or extracting a file</param>
+            <param name="currentFileTotalBytes">total number of bytes in the current file</param>
+            <param name="currentArchiveName">name of the current Archive</param>
+            <param name="currentArchiveNumber">current Archive number, when processing a chained set of Archives</param>
+            <param name="totalArchives">total number of Archives in a chained set</param>
+            <param name="currentArchiveBytesProcessed">number of compressed bytes processed so far during an extraction</param>
+            <param name="currentArchiveTotalBytes">total number of compressed bytes to be processed during an extraction</param>
+            <param name="fileBytesProcessed">number of uncompressed file bytes processed so far</param>
+            <param name="totalFileBytes">total number of uncompressed file bytes to be processed</param>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.ProgressType">
+            <summary>
+            Gets the type of status message.
+            </summary>
+            <value>A <see cref="T:Microsoft.Deployment.Compression.ArchiveProgressType"/> value indicating what type of progress event occurred.</value>
+            <remarks>
+            The handler may choose to ignore some types of progress events.
+            For example, if the handler will only list each file as it is
+            compressed/extracted, it can ignore events that
+            are not of type <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.FinishFile"/>.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.CurrentFileName">
+            <summary>
+            Gets the name of the file being processed. (The name of the file within the Archive; not the external
+            file path.) Also includes the internal path of the file, if any.  Valid for
+            <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.StartFile"/>, <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.PartialFile"/>,
+            and <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.FinishFile"/> messages.
+            </summary>
+            <value>The name of the file currently being processed, or null if processing
+            is currently at the stream or archive level.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.CurrentFileNumber">
+            <summary>
+            Gets the number of the current file being processed. The first file is number 0, and the last file
+            is <see cref="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.TotalFiles"/>-1. Valid for <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.StartFile"/>,
+            <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.PartialFile"/>, and <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.FinishFile"/> messages.
+            </summary>
+            <value>The number of the file currently being processed, or the most recent
+            file processed if processing is currently at the stream or archive level.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.TotalFiles">
+            <summary>
+            Gets the total number of files to be processed.  Valid for all message types.
+            </summary>
+            <value>The total number of files to be processed that are known so far.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.CurrentFileBytesProcessed">
+            <summary>
+            Gets the number of bytes processed so far when compressing or extracting a file.  Valid for
+            <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.StartFile"/>, <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.PartialFile"/>,
+            and <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.FinishFile"/> messages.
+            </summary>
+            <value>The number of uncompressed bytes processed so far for the current file,
+            or 0 if processing is currently at the stream or archive level.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.CurrentFileTotalBytes">
+            <summary>
+            Gets the total number of bytes in the current file.  Valid for <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.StartFile"/>,
+            <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.PartialFile"/>, and <see cref="F:Microsoft.Deployment.Compression.ArchiveProgressType.FinishFile"/> messages.
+            </summary>
+            <value>The uncompressed size of the current file being processed,
+            or 0 if processing is currently at the stream or archive level.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.CurrentArchiveName">
+            <summary>
+            Gets the name of the current archive.  Not necessarily the name of the archive on disk.
+            Valid for all message types.
+            </summary>
+            <value>The name of the current archive, or an empty string if no name was specified.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.CurrentArchiveNumber">
+            <summary>
+            Gets the current archive number, when processing a chained set of archives. Valid for all message types.
+            </summary>
+            <value>The number of the current archive.</value>
+            <remarks>The first archive is number 0, and the last archive is
+            <see cref="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.TotalArchives"/>-1.</remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.TotalArchives">
+            <summary>
+            Gets the total number of known archives in a chained set. Valid for all message types.
+            </summary>
+            <value>The total number of known archives in a chained set.</value>
+            <remarks>
+            When using the compression option to auto-split into multiple archives based on data size,
+            this value will not be accurate until the end.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.CurrentArchiveBytesProcessed">
+            <summary>
+            Gets the number of compressed bytes processed so far during extraction
+            of the current archive. Valid for all extraction messages.
+            </summary>
+            <value>The number of compressed bytes processed so far during extraction
+            of the current archive.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.CurrentArchiveTotalBytes">
+            <summary>
+            Gets the total number of compressed bytes to be processed during extraction
+            of the current archive. Valid for all extraction messages.
+            </summary>
+            <value>The total number of compressed bytes to be processed during extraction
+            of the current archive.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.FileBytesProcessed">
+            <summary>
+            Gets the number of uncompressed bytes processed so far among all files. Valid for all message types.  
+            </summary>
+            <value>The number of uncompressed file bytes processed so far among all files.</value>
+            <remarks>
+            When compared to <see cref="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.TotalFileBytes"/>, this can be used as a measure of overall progress.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveProgressEventArgs.TotalFileBytes">
+            <summary>
+            Gets the total number of uncompressed file bytes to be processed.  Valid for all message types.
+            </summary>
+            <value>The total number of uncompressed bytes to be processed among all files.</value>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.ArchiveProgressType">
+            <summary>
+            The type of progress event.
+            </summary>
+            <remarks>
+            <p>PACKING EXAMPLE: The following sequence of events might be received when
+            extracting a simple archive file with 2 files.</p>
+            <list type="table">
+            <listheader><term>Message Type</term><description>Description</description></listheader>
+            <item><term>StartArchive</term> <description>Begin extracting archive</description></item>
+            <item><term>StartFile</term>    <description>Begin extracting first file</description></item>
+            <item><term>PartialFile</term>  <description>Extracting first file</description></item>
+            <item><term>PartialFile</term>  <description>Extracting first file</description></item>
+            <item><term>FinishFile</term>   <description>Finished extracting first file</description></item>
+            <item><term>StartFile</term>    <description>Begin extracting second file</description></item>
+            <item><term>PartialFile</term>  <description>Extracting second file</description></item>
+            <item><term>FinishFile</term>   <description>Finished extracting second file</description></item>
+            <item><term>FinishArchive</term><description>Finished extracting archive</description></item>
+            </list>
+            <p></p>
+            <p>UNPACKING EXAMPLE:  Packing 3 files into 2 archive chunks, where the second file is
+            continued to the second archive chunk.</p>
+            <list type="table">
+            <listheader><term>Message Type</term><description>Description</description></listheader>
+            <item><term>StartFile</term>     <description>Begin compressing first file</description></item>
+            <item><term>FinishFile</term>    <description>Finished compressing first file</description></item>
+            <item><term>StartFile</term>     <description>Begin compressing second file</description></item>
+            <item><term>PartialFile</term>   <description>Compressing second file</description></item>
+            <item><term>PartialFile</term>   <description>Compressing second file</description></item>
+            <item><term>FinishFile</term>    <description>Finished compressing second file</description></item>
+            <item><term>StartArchive</term>  <description>Begin writing first archive</description></item>
+            <item><term>PartialArchive</term><description>Writing first archive</description></item>
+            <item><term>FinishArchive</term> <description>Finished writing first archive</description></item>
+            <item><term>StartFile</term>     <description>Begin compressing third file</description></item>
+            <item><term>PartialFile</term>   <description>Compressing third file</description></item>
+            <item><term>FinishFile</term>    <description>Finished compressing third file</description></item>
+            <item><term>StartArchive</term>  <description>Begin writing second archive</description></item>
+            <item><term>PartialArchive</term><description>Writing second archive</description></item>
+            <item><term>FinishArchive</term> <description>Finished writing second archive</description></item>
+            </list>
+            </remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.ArchiveProgressType.StartFile">
+            <summary>Status message before beginning the packing or unpacking an individual file.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.ArchiveProgressType.PartialFile">
+            <summary>Status message (possibly reported multiple times) during the process of packing or unpacking a file.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.ArchiveProgressType.FinishFile">
+            <summary>Status message after completion of the packing or unpacking an individual file.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.ArchiveProgressType.StartArchive">
+            <summary>Status message before beginning the packing or unpacking an archive.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.ArchiveProgressType.PartialArchive">
+            <summary>Status message (possibly reported multiple times) during the process of packing or unpacking an archiv.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.ArchiveProgressType.FinishArchive">
+            <summary>Status message after completion of the packing or unpacking of an archive.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.ArchiveFileStreamContext">
+            <summary>
+            Provides a basic implementation of the archive pack and unpack stream context
+            interfaces, based on a list of archive files, a default directory, and an
+            optional mapping from internal to external file paths.
+            </summary>
+            <remarks>
+            This class can also handle creating or extracting chained archive packages.
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.IPackStreamContext">
+            <summary>
+            This interface provides the methods necessary for the
+            <see cref="T:Microsoft.Deployment.Compression.CompressionEngine"/> to open and close streams for archives
+            and files. The implementor of this interface can use any kind of logic
+            to determine what kind of streams to open and where.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.IPackStreamContext.GetArchiveName(System.Int32)">
+            <summary>
+            Gets the name of the archive with a specified number.
+            </summary>
+            <param name="archiveNumber">The 0-based index of the archive
+            within the chain.</param>
+            <returns>The name of the requested archive. May be an empty string
+            for non-chained archives, but may never be null.</returns>
+            <remarks>The archive name is the name stored within the archive, used for
+            identification of the archive especially among archive chains. That
+            name is often, but not necessarily the same as the filename of the
+            archive package.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.IPackStreamContext.OpenArchiveWriteStream(System.Int32,System.String,System.Boolean,Microsoft.Deployment.Compression.CompressionEngine)">
+            <summary>
+            Opens a stream for writing an archive package.
+            </summary>
+            <param name="archiveNumber">The 0-based index of the archive within
+            the chain.</param>
+            <param name="archiveName">The name of the archive that was returned
+            by <see cref="M:Microsoft.Deployment.Compression.IPackStreamContext.GetArchiveName(System.Int32)"/>.</param>
+            <param name="truncate">True if the stream should be truncated when
+            opened (if it already exists); false if an existing stream is being
+            re-opened for writing additional data.</param>
+            <param name="compressionEngine">Instance of the compression engine
+            doing the operations.</param>
+            <returns>A writable Stream where the compressed archive bytes will be
+            written, or null to cancel the archive creation.</returns>
+            <remarks>
+            If this method returns null, the archive engine will throw a
+            FileNotFoundException.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.IPackStreamContext.CloseArchiveWriteStream(System.Int32,System.String,System.IO.Stream)">
+            <summary>
+            Closes a stream where an archive package was written.
+            </summary>
+            <param name="archiveNumber">The 0-based index of the archive within
+            the chain.</param>
+            <param name="archiveName">The name of the archive that was previously
+            returned by
+            <see cref="M:Microsoft.Deployment.Compression.IPackStreamContext.GetArchiveName(System.Int32)"/>.</param>
+            <param name="stream">A stream that was previously returned by
+            <see cref="M:Microsoft.Deployment.Compression.IPackStreamContext.OpenArchiveWriteStream(System.Int32,System.String,System.Boolean,Microsoft.Deployment.Compression.CompressionEngine)"/> and is now ready to be closed.</param>
+            <remarks>
+            If there is another archive package in the chain, then after this stream
+            is closed a new stream will be opened.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.IPackStreamContext.OpenFileReadStream(System.String,System.IO.FileAttributes@,System.DateTime@)">
+            <summary>
+            Opens a stream to read a file that is to be included in an archive.
+            </summary>
+            <param name="path">The path of the file within the archive. This is often,
+            but not necessarily, the same as the relative path of the file outside
+            the archive.</param>
+            <param name="attributes">Returned attributes of the opened file, to be
+            stored in the archive.</param>
+            <param name="lastWriteTime">Returned last-modified time of the opened file,
+            to be stored in the archive.</param>
+            <returns>A readable Stream where the file bytes will be read from before
+            they are compressed, or null to skip inclusion of the file and continue to
+            the next file.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.IPackStreamContext.CloseFileReadStream(System.String,System.IO.Stream)">
+            <summary>
+            Closes a stream that has been used to read a file.
+            </summary>
+            <param name="path">The path of the file within the archive; the same as
+            the path provided
+            when the stream was opened.</param>
+            <param name="stream">A stream that was previously returned by
+            <see cref="M:Microsoft.Deployment.Compression.IPackStreamContext.OpenFileReadStream(System.String,System.IO.FileAttributes@,System.DateTime@)"/> and is now ready to be closed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.IPackStreamContext.GetOption(System.String,System.Object[])">
+            <summary>
+            Gets extended parameter information specific to the compression
+            format being used.
+            </summary>
+            <param name="optionName">Name of the option being requested.</param>
+            <param name="parameters">Parameters for the option; for per-file options,
+            the first parameter is typically the internal file path.</param>
+            <returns>Option value, or null to use the default behavior.</returns>
+            <remarks>
+            This method provides a way to set uncommon options during packaging, or a
+            way to handle aspects of compression formats not supported by the base library.
+            <para>For example, this may be used by the zip compression library to
+            specify different compression methods/levels on a per-file basis.</para>
+            <para>The available option names, parameters, and expected return values
+            should be documented by each compression library.</para>
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.IUnpackStreamContext">
+            <summary>
+            This interface provides the methods necessary for the <see cref="T:Microsoft.Deployment.Compression.CompressionEngine"/> to open
+            and close streams for archives and files. The implementor of this interface can use any
+            kind of logic to determine what kind of streams to open and where 
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.IUnpackStreamContext.OpenArchiveReadStream(System.Int32,System.String,Microsoft.Deployment.Compression.CompressionEngine)">
+            <summary>
+            Opens the archive stream for reading.
+            </summary>
+            <param name="archiveNumber">The zero-based index of the archive to open.</param>
+            <param name="archiveName">The name of the archive being opened.</param>
+            <param name="compressionEngine">Instance of the compression engine doing the operations.</param>
+            <returns>A stream from which archive bytes are read, or null to cancel extraction
+            of the archive.</returns>
+            <remarks>
+            When the first archive in a chain is opened, the name is not yet known, so the
+            provided value will be an empty string. When opening further archives, the
+            provided value is the next-archive name stored in the previous archive. This
+            name is often, but not necessarily, the same as the filename of the archive
+            package to be opened.
+            <para>If this method returns null, the archive engine will throw a
+            FileNotFoundException.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.IUnpackStreamContext.CloseArchiveReadStream(System.Int32,System.String,System.IO.Stream)">
+            <summary>
+            Closes a stream where an archive package was read.
+            </summary>
+            <param name="archiveNumber">The archive number of the stream to close.</param>
+            <param name="archiveName">The name of the archive being closed.</param>
+            <param name="stream">The stream that was previously returned by
+            <see cref="M:Microsoft.Deployment.Compression.IUnpackStreamContext.OpenArchiveReadStream(System.Int32,System.String,Microsoft.Deployment.Compression.CompressionEngine)"/> and is now ready to be closed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.IUnpackStreamContext.OpenFileWriteStream(System.String,System.Int64,System.DateTime)">
+            <summary>
+            Opens a stream for writing extracted file bytes.
+            </summary>
+            <param name="path">The path of the file within the archive. This is often, but
+            not necessarily, the same as the relative path of the file outside the archive.</param>
+            <param name="fileSize">The uncompressed size of the file to be extracted.</param>
+            <param name="lastWriteTime">The last write time of the file to be extracted.</param>
+            <returns>A stream where extracted file bytes are to be written, or null to skip
+            extraction of the file and continue to the next file.</returns>
+            <remarks>
+            The implementor may use the path, size and date information to dynamically
+            decide whether or not the file should be extracted.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.IUnpackStreamContext.CloseFileWriteStream(System.String,System.IO.Stream,System.IO.FileAttributes,System.DateTime)">
+            <summary>
+            Closes a stream where an extracted file was written.
+            </summary>
+            <param name="path">The path of the file within the archive.</param>
+            <param name="stream">The stream that was previously returned by <see cref="M:Microsoft.Deployment.Compression.IUnpackStreamContext.OpenFileWriteStream(System.String,System.Int64,System.DateTime)"/>
+            and is now ready to be closed.</param>
+            <param name="attributes">The attributes of the extracted file.</param>
+            <param name="lastWriteTime">The last write time of the file.</param>
+            <remarks>
+            The implementor may wish to apply the attributes and date to the newly-extracted file.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.#ctor(System.String)">
+            <summary>
+            Creates a new ArchiveFileStreamContext with a archive file and
+            no default directory or file mapping.
+            </summary>
+            <param name="archiveFile">The path to a archive file that will be
+            created or extracted.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.#ctor(System.String,System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
+            <summary>
+            Creates a new ArchiveFileStreamContext with a archive file, default
+            directory and mapping from internal to external file paths.
+            </summary>
+            <param name="archiveFile">The path to a archive file that will be
+            created or extracted.</param>
+            <param name="directory">The default root directory where files will be
+            located, optional.</param>
+            <param name="files">A mapping from internal file paths to external file
+            paths, optional.</param>
+            <remarks>
+            If the mapping is not null and a file is not included in the mapping,
+            the file will be skipped.
+            <para>If the external path in the mapping is a simple file name or
+            relative file path, it will be concatenated onto the default directory,
+            if one was specified.</para>
+            <para>For more about how the default directory and files mapping are
+            used, see <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileReadStream(System.String,System.IO.FileAttributes@,System.DateTime@)"/> and
+            <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileWriteStream(System.String,System.Int64,System.DateTime)"/>.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.#ctor(System.Collections.Generic.IList{System.String},System.String,System.Collections.Generic.IDictionary{System.String,System.String})">
+            <summary>
+            Creates a new ArchiveFileStreamContext with a list of archive files,
+            a default directory and a mapping from internal to external file paths.
+            </summary>
+            <param name="archiveFiles">A list of paths to archive files that will be
+            created or extracted.</param>
+            <param name="directory">The default root directory where files will be
+            located, optional.</param>
+            <param name="files">A mapping from internal file paths to external file
+            paths, optional.</param>
+            <remarks>
+            When creating chained archives, the <paramref name="archiveFiles"/> list
+            should include at least enough archives to handle the entire set of
+            input files, based on the maximum archive size that is passed to the
+            <see cref="T:Microsoft.Deployment.Compression.CompressionEngine"/>.<see cref="M:Microsoft.Deployment.Compression.CompressionEngine.Pack(Microsoft.Deployment.Compression.IPackStreamContext,System.Collections.Generic.IEnumerable{System.String},System.Int64)"/>.
+            <para>If the mapping is not null and a file is not included in the mapping,
+            the file will be skipped.</para>
+            <para>If the external path in the mapping is a simple file name or
+            relative file path, it will be concatenated onto the default directory,
+            if one was specified.</para>
+            <para>For more about how the default directory and files mapping are used,
+            see <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileReadStream(System.String,System.IO.FileAttributes@,System.DateTime@)"/> and
+            <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileWriteStream(System.String,System.Int64,System.DateTime)"/>.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.GetArchiveName(System.Int32)">
+            <summary>
+            Gets the name of the archive with a specified number.
+            </summary>
+            <param name="archiveNumber">The 0-based index of the archive within
+            the chain.</param>
+            <returns>The name of the requested archive. May be an empty string
+            for non-chained archives, but may never be null.</returns>
+            <remarks>This method returns the file name of the archive from the
+            <see cref="F:Microsoft.Deployment.Compression.ArchiveFileStreamContext.archiveFiles"/> list with the specified index, or an empty
+            string if the archive number is outside the bounds of the list. The
+            file name should not include any directory path.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenArchiveWriteStream(System.Int32,System.String,System.Boolean,Microsoft.Deployment.Compression.CompressionEngine)">
+            <summary>
+            Opens a stream for writing an archive.
+            </summary>
+            <param name="archiveNumber">The 0-based index of the archive within
+            the chain.</param>
+            <param name="archiveName">The name of the archive that was returned
+            by <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.GetArchiveName(System.Int32)"/>.</param>
+            <param name="truncate">True if the stream should be truncated when
+            opened (if it already exists); false if an existing stream is being
+            re-opened for writing additional data.</param>
+            <param name="compressionEngine">Instance of the compression engine
+            doing the operations.</param>
+            <returns>A writable Stream where the compressed archive bytes will be
+            written, or null to cancel the archive creation.</returns>
+            <remarks>
+            This method opens the file from the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.ArchiveFiles"/> list
+            with the specified index. If the archive number is outside the bounds
+            of the list, this method returns null.
+            <para>If the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.EnableOffsetOpen"/> flag is set, this method
+            will seek to the start of any existing archive in the file, or to the
+            end of the file if the existing file is not an archive.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.CloseArchiveWriteStream(System.Int32,System.String,System.IO.Stream)">
+            <summary>
+            Closes a stream where an archive package was written.
+            </summary>
+            <param name="archiveNumber">The 0-based index of the archive within
+            the chain.</param>
+            <param name="archiveName">The name of the archive that was previously
+            returned by <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.GetArchiveName(System.Int32)"/>.</param>
+            <param name="stream">A stream that was previously returned by
+            <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenArchiveWriteStream(System.Int32,System.String,System.Boolean,Microsoft.Deployment.Compression.CompressionEngine)"/> and is now ready to be closed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileReadStream(System.String,System.IO.FileAttributes@,System.DateTime@)">
+            <summary>
+            Opens a stream to read a file that is to be included in an archive.
+            </summary>
+            <param name="path">The path of the file within the archive.</param>
+            <param name="attributes">The returned attributes of the opened file,
+            to be stored in the archive.</param>
+            <param name="lastWriteTime">The returned last-modified time of the
+            opened file, to be stored in the archive.</param>
+            <returns>A readable Stream where the file bytes will be read from
+            before they are compressed, or null to skip inclusion of the file and
+            continue to the next file.</returns>
+            <remarks>
+            This method opens a file using the following logic:
+            <list>
+            <item>If the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Directory"/> and the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Files"/> mapping
+            are both null, the path is treated as relative to the current directory,
+            and that file is opened.</item>
+            <item>If the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Directory"/> is not null but the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Files"/>
+            mapping is null, the path is treated as relative to that directory, and
+            that file is opened.</item>
+            <item>If the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Directory"/> is null but the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Files"/>
+            mapping is not null, the path parameter is used as a key into the mapping,
+            and the resulting value is the file path that is opened, relative to the
+            current directory (or it may be an absolute path). If no mapping exists,
+            the file is skipped.</item>
+            <item>If both the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Directory"/> and the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Files"/>
+            mapping are specified, the path parameter is used as a key into the
+            mapping, and the resulting value is the file path that is opened, relative
+            to the specified directory (or it may be an absolute path). If no mapping
+            exists, the file is skipped.</item>
+            </list>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.CloseFileReadStream(System.String,System.IO.Stream)">
+            <summary>
+            Closes a stream that has been used to read a file.
+            </summary>
+            <param name="path">The path of the file within the archive; the same as
+            the path provided when the stream was opened.</param>
+            <param name="stream">A stream that was previously returned by
+            <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileReadStream(System.String,System.IO.FileAttributes@,System.DateTime@)"/> and is now ready to be closed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.GetOption(System.String,System.Object[])">
+            <summary>
+            Gets extended parameter information specific to the compression format
+            being used.
+            </summary>
+            <param name="optionName">Name of the option being requested.</param>
+            <param name="parameters">Parameters for the option; for per-file options,
+            the first parameter is typically the internal file path.</param>
+            <returns>Option value, or null to use the default behavior.</returns>
+            <remarks>
+            This implementation does not handle any options. Subclasses may override
+            this method to allow for non-default behavior.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenArchiveReadStream(System.Int32,System.String,Microsoft.Deployment.Compression.CompressionEngine)">
+            <summary>
+            Opens the archive stream for reading.
+            </summary>
+            <param name="archiveNumber">The zero-based index of the archive to
+            open.</param>
+            <param name="archiveName">The name of the archive being opened.</param>
+            <param name="compressionEngine">Instance of the compression engine
+            doing the operations.</param>
+            <returns>A stream from which archive bytes are read, or null to cancel
+            extraction of the archive.</returns>
+            <remarks>
+            This method opens the file from the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.ArchiveFiles"/> list with
+            the specified index. If the archive number is outside the bounds of the
+            list, this method returns null.
+            <para>If the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.EnableOffsetOpen"/> flag is set, this method will
+            seek to the start of any existing archive in the file, or to the end of
+            the file if the existing file is not an archive.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.CloseArchiveReadStream(System.Int32,System.String,System.IO.Stream)">
+            <summary>
+            Closes a stream where an archive was read.
+            </summary>
+            <param name="archiveNumber">The archive number of the stream
+            to close.</param>
+            <param name="archiveName">The name of the archive being closed.</param>
+            <param name="stream">The stream that was previously returned by
+            <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenArchiveReadStream(System.Int32,System.String,Microsoft.Deployment.Compression.CompressionEngine)"/> and is now ready to be closed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileWriteStream(System.String,System.Int64,System.DateTime)">
+            <summary>
+            Opens a stream for writing extracted file bytes.
+            </summary>
+            <param name="path">The path of the file within the archive.</param>
+            <param name="fileSize">The uncompressed size of the file to be
+            extracted.</param>
+            <param name="lastWriteTime">The last write time of the file to be
+            extracted.</param>
+            <returns>A stream where extracted file bytes are to be written, or null
+            to skip extraction of the file and continue to the next file.</returns>
+            <remarks>
+            This method opens a file using the following logic:
+            <list>
+            <item>If the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Directory"/> and the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Files"/> mapping
+            are both null, the path is treated as relative to the current directory,
+            and that file is opened.</item>
+            <item>If the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Directory"/> is not null but the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Files"/>
+            mapping is null, the path is treated as relative to that directory, and
+            that file is opened.</item>
+            <item>If the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Directory"/> is null but the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Files"/>
+            mapping is not null, the path parameter is used as a key into the mapping,
+            and the resulting value is the file path that is opened, relative to the
+            current directory (or it may be an absolute path). If no mapping exists,
+            the file is skipped.</item>
+            <item>If both the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Directory"/> and the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Files"/>
+            mapping are specified, the path parameter is used as a key into the
+            mapping, and the resulting value is the file path that is opened,
+            relative to the specified directory (or it may be an absolute path).
+            If no mapping exists, the file is skipped.</item>
+            </list>
+            <para>If the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.ExtractOnlyNewerFiles"/> flag is set, the file
+            is skipped if a file currently exists in the same path with an equal
+            or newer write time.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.CloseFileWriteStream(System.String,System.IO.Stream,System.IO.FileAttributes,System.DateTime)">
+            <summary>
+            Closes a stream where an extracted file was written.
+            </summary>
+            <param name="path">The path of the file within the archive.</param>
+            <param name="stream">The stream that was previously returned by
+            <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileWriteStream(System.String,System.Int64,System.DateTime)"/> and is now ready to be closed.</param>
+            <param name="attributes">The attributes of the extracted file.</param>
+            <param name="lastWriteTime">The last write time of the file.</param>
+            <remarks>
+            After closing the extracted file stream, this method applies the date
+            and attributes to that file.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.TranslateFilePath(System.String)">
+            <summary>
+            Translates an internal file path to an external file path using the
+            <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Directory"/> and the <see cref="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Files"/> mapping, according to
+            rules documented in <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileReadStream(System.String,System.IO.FileAttributes@,System.DateTime@)"/> and
+            <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileWriteStream(System.String,System.Int64,System.DateTime)"/>.
+            </summary>
+            <param name="path">The path of the file with the archive.</param>
+            <returns>The external path of the file, or null if there is no
+            valid translation.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.ArchiveFiles">
+            <summary>
+            Gets or sets the list of archive files that are created or extracted.
+            </summary>
+            <value>The list of archive files that are created or extracted.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Directory">
+            <summary>
+            Gets or sets the default root directory where files are located.
+            </summary>
+            <value>The default root directory where files are located.</value>
+            <remarks>
+            For details about how the default directory is used,
+            see <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileReadStream(System.String,System.IO.FileAttributes@,System.DateTime@)"/> and <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileWriteStream(System.String,System.Int64,System.DateTime)"/>.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.Files">
+            <summary>
+            Gets or sets the mapping from internal file paths to external file paths.
+            </summary>
+            <value>A mapping from internal file paths to external file paths.</value>
+            <remarks>
+            For details about how the files mapping is used,
+            see <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileReadStream(System.String,System.IO.FileAttributes@,System.DateTime@)"/> and <see cref="M:Microsoft.Deployment.Compression.ArchiveFileStreamContext.OpenFileWriteStream(System.String,System.Int64,System.DateTime)"/>.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.ExtractOnlyNewerFiles">
+            <summary>
+            Gets or sets a flag that can prevent extracted files from overwriting
+            newer files that already exist.
+            </summary>
+            <value>True to prevent overwriting newer files that already exist
+            during extraction; false to always extract from the archive regardless
+            of existing files.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.ArchiveFileStreamContext.EnableOffsetOpen">
+            <summary>
+            Gets or sets a flag that enables creating or extracting an archive
+            at an offset within an existing file. (This is typically used to open
+            archive-based self-extracting packages.)
+            </summary>
+            <value>True to search an existing package file for an archive offset
+            or the end of the file;/ false to always create or open a plain
+            archive file.</value>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.BasicUnpackStreamContext">
+            <summary>
+            Stream context used to extract a single file from an archive into a memory stream.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.BasicUnpackStreamContext.#ctor(System.IO.Stream)">
+            <summary>
+            Creates a new BasicExtractStreamContext that reads from the specified archive stream.
+            </summary>
+            <param name="archiveStream">Archive stream to read from.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.BasicUnpackStreamContext.OpenArchiveReadStream(System.Int32,System.String,Microsoft.Deployment.Compression.CompressionEngine)">
+            <summary>
+            Opens the archive stream for reading. Returns a DuplicateStream instance,
+            so the stream may be virtually opened multiple times.
+            </summary>
+            <param name="archiveNumber">The archive number to open (ignored; 0 is assumed).</param>
+            <param name="archiveName">The name of the archive being opened.</param>
+            <param name="compressionEngine">Instance of the compression engine doing the operations.</param>
+            <returns>A stream from which archive bytes are read.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.BasicUnpackStreamContext.CloseArchiveReadStream(System.Int32,System.String,System.IO.Stream)">
+            <summary>
+            Does *not* close the stream. The archive stream should be managed by
+            the code that invokes the archive extraction.
+            </summary>
+            <param name="archiveNumber">The archive number of the stream to close.</param>
+            <param name="archiveName">The name of the archive being closed.</param>
+            <param name="stream">The stream being closed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.BasicUnpackStreamContext.OpenFileWriteStream(System.String,System.Int64,System.DateTime)">
+            <summary>
+            Opens a stream for writing extracted file bytes. The returned stream is a MemoryStream
+            instance, so the file is extracted straight into memory.
+            </summary>
+            <param name="path">Path of the file within the archive.</param>
+            <param name="fileSize">The uncompressed size of the file to be extracted.</param>
+            <param name="lastWriteTime">The last write time of the file.</param>
+            <returns>A stream where extracted file bytes are to be written.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.BasicUnpackStreamContext.CloseFileWriteStream(System.String,System.IO.Stream,System.IO.FileAttributes,System.DateTime)">
+            <summary>
+            Does *not* close the file stream. The file stream is saved in memory so it can
+            be read later.
+            </summary>
+            <param name="path">Path of the file within the archive.</param>
+            <param name="stream">The file stream to be closed.</param>
+            <param name="attributes">The attributes of the extracted file.</param>
+            <param name="lastWriteTime">The last write time of the file.</param>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.BasicUnpackStreamContext.FileStream">
+            <summary>
+            Gets the stream for the extracted file, or null if no file was extracted.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.CompressionEngine">
+            <summary>
+            Base class for an engine capable of packing and unpacking a particular
+            compressed file format.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.#ctor">
+            <summary>
+            Creates a new instance of the compression engine base class.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.Finalize">
+            <summary>
+            Disposes the compression engine.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.Dispose">
+            <summary>
+            Disposes of resources allocated by the compression engine.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.Pack(Microsoft.Deployment.Compression.IPackStreamContext,System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Creates an archive.
+            </summary>
+            <param name="streamContext">A context interface to handle opening
+            and closing of archive and file streams.</param>
+            <param name="files">The paths of the files in the archive
+            (not external file paths).</param>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The archive could not be
+            created.</exception>
+            <remarks>
+            The stream context implementation may provide a mapping from the
+            file paths within the archive to the external file paths.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.Pack(Microsoft.Deployment.Compression.IPackStreamContext,System.Collections.Generic.IEnumerable{System.String},System.Int64)">
+            <summary>
+            Creates an archive or chain of archives.
+            </summary>
+            <param name="streamContext">A context interface to handle opening
+            and closing of archive and file streams.</param>
+            <param name="files">The paths of the files in the archive (not
+            external file paths).</param>
+            <param name="maxArchiveSize">The maximum number of bytes for one
+            archive before the contents are chained to the next archive, or zero
+            for unlimited archive size.</param>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The archive could not be
+            created.</exception>
+            <remarks>
+            The stream context implementation may provide a mapping from the file
+            paths within the archive to the external file paths.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.IsArchive(System.IO.Stream)">
+            <summary>
+            Checks whether a Stream begins with a header that indicates
+            it is a valid archive.
+            </summary>
+            <param name="stream">Stream for reading the archive file.</param>
+            <returns>True if the stream is a valid archive
+            (with no offset); false otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.FindArchiveOffset(System.IO.Stream)">
+            <summary>
+            Gets the offset of an archive that is positioned 0 or more bytes
+            from the start of the Stream.
+            </summary>
+            <param name="stream">A stream for reading the archive.</param>
+            <returns>The offset in bytes of the archive,
+            or -1 if no archive is found in the Stream.</returns>
+            <remarks>The archive must begin on a 4-byte boundary.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.GetFileInfo(System.IO.Stream)">
+            <summary>
+            Gets information about all files in an archive stream.
+            </summary>
+            <param name="stream">A stream for reading the archive.</param>
+            <returns>Information about all files in the archive stream.</returns>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The stream is not a valid
+            archive.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.GetFileInfo(Microsoft.Deployment.Compression.IUnpackStreamContext,System.Predicate{System.String})">
+            <summary>
+            Gets information about files in an archive or archive chain.
+            </summary>
+            <param name="streamContext">A context interface to handle opening
+            and closing of archive and file streams.</param>
+            <param name="fileFilter">A predicate that can determine
+            which files to process, optional.</param>
+            <returns>Information about files in the archive stream.</returns>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The archive provided
+            by the stream context is not valid.</exception>
+            <remarks>
+            The <paramref name="fileFilter"/> predicate takes an internal file
+            path and returns true to include the file or false to exclude it.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.GetFiles(System.IO.Stream)">
+            <summary>
+            Gets the list of files in an archive Stream.
+            </summary>
+            <param name="stream">A stream for reading the archive.</param>
+            <returns>A list of the paths of all files contained in the
+            archive.</returns>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The stream is not a valid
+            archive.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.GetFiles(Microsoft.Deployment.Compression.IUnpackStreamContext,System.Predicate{System.String})">
+            <summary>
+            Gets the list of files in an archive or archive chain.
+            </summary>
+            <param name="streamContext">A context interface to handle opening
+            and closing of archive and file streams.</param>
+            <param name="fileFilter">A predicate that can determine
+            which files to process, optional.</param>
+            <returns>An array containing the names of all files contained in
+            the archive or archive chain.</returns>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The archive provided
+            by the stream context is not valid.</exception>
+            <remarks>
+            The <paramref name="fileFilter"/> predicate takes an internal file
+            path and returns true to include the file or false to exclude it.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.Unpack(System.IO.Stream,System.String)">
+            <summary>
+            Reads a single file from an archive stream.
+            </summary>
+            <param name="stream">A stream for reading the archive.</param>
+            <param name="path">The path of the file within the archive
+            (not the external file path).</param>
+            <returns>A stream for reading the extracted file, or null
+            if the file does not exist in the archive.</returns>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The stream is not a valid
+            archive.</exception>
+            <remarks>The entire extracted file is cached in memory, so this
+            method requires enough free memory to hold the file.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.Unpack(Microsoft.Deployment.Compression.IUnpackStreamContext,System.Predicate{System.String})">
+            <summary>
+            Extracts files from an archive or archive chain.
+            </summary>
+            <param name="streamContext">A context interface to handle opening
+            and closing of archive and file streams.</param>
+            <param name="fileFilter">An optional predicate that can determine
+            which files to process.</param>
+            <exception cref="T:Microsoft.Deployment.Compression.ArchiveException">The archive provided
+            by the stream context is not valid.</exception>
+            <remarks>
+            The <paramref name="fileFilter"/> predicate takes an internal file
+            path and returns true to include the file or false to exclude it.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.OnProgress(Microsoft.Deployment.Compression.ArchiveProgressEventArgs)">
+            <summary>
+            Called by sublcasses to distribute a packing or unpacking progress
+            event to listeners.
+            </summary>
+            <param name="e">Event details.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.Dispose(System.Boolean)">
+            <summary>
+            Disposes of resources allocated by the compression engine.
+            </summary>
+            <param name="disposing">If true, the method has been called
+            directly or indirectly by a user's code, so managed and unmanaged
+            resources will be disposed. If false, the method has been called by
+            the runtime from inside the finalizer, and only unmanaged resources
+            will be disposed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.DosDateAndTimeToDateTime(System.Int16,System.Int16,System.DateTime@)">
+            <summary>
+            Compresion utility function for converting old-style
+            date and time values to a DateTime structure.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CompressionEngine.DateTimeToDosDateAndTime(System.DateTime,System.Int16@,System.Int16@)">
+            <summary>
+            Compresion utility function for converting a DateTime structure
+            to old-style date and time values.
+            </summary>
+        </member>
+        <member name="E:Microsoft.Deployment.Compression.CompressionEngine.Progress">
+            <summary>
+            Occurs when the compression engine reports progress in packing
+            or unpacking an archive.
+            </summary>
+            <seealso cref="T:Microsoft.Deployment.Compression.ArchiveProgressType"/>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.CompressionEngine.UseTempFiles">
+            <summary>
+            Gets or sets a flag indicating whether temporary files are created
+            and used during compression.
+            </summary>
+            <value>True if temporary files are used; false if compression is done
+            entirely in-memory.</value>
+            <remarks>The value of this property is true by default. Using temporary
+            files can greatly reduce the memory requirement of compression,
+            especially when compressing large archives. However, setting this property
+            to false may yield slightly better performance when creating small
+            archives. Or it may be necessary if the process does not have sufficient
+            privileges to create temporary files.</remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.CompressionEngine.CompressionLevel">
+            <summary>
+            Compression level to use when compressing files.
+            </summary>
+            <value>A compression level ranging from minimum to maximum compression,
+            or no compression.</value>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.CompressionLevel">
+            <summary>
+            Specifies the compression level ranging from minimum compresion to
+            maximum compression, or no compression at all.
+            </summary>
+            <remarks>
+            Although only four values are enumerated, any integral value between
+            <see cref="F:Microsoft.Deployment.Compression.CompressionLevel.Min"/> and <see cref="F:Microsoft.Deployment.Compression.CompressionLevel.Max"/> can also be used.
+            </remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.CompressionLevel.None">
+            <summary>Do not compress files, only store.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.CompressionLevel.Min">
+            <summary>Minimum compression; fastest.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.CompressionLevel.Normal">
+            <summary>A compromize between speed and compression efficiency.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.Compression.CompressionLevel.Max">
+            <summary>Maximum compression; slowest.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.CargoStream">
+            <summary>
+            Wraps a source stream and carries additional items that are disposed when the stream is closed.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CargoStream.#ctor(System.IO.Stream,System.IDisposable[])">
+            <summary>
+            Creates a new a cargo stream.
+            </summary>
+            <param name="source">source of the stream</param>
+            <param name="cargo">List of additional items that are disposed when the stream is closed.
+            The order of the list is the order in which the items are disposed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CargoStream.Flush">
+            <summary>
+            Flushes the source stream.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CargoStream.SetLength(System.Int64)">
+            <summary>
+            Sets the length of the source stream.
+            </summary>
+            <param name="value">The desired length of the stream in bytes.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CargoStream.Close">
+            <summary>
+            Closes the source stream and also closes the additional objects that are carried.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CargoStream.Read(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Reads from the source stream.
+            </summary>
+            <param name="buffer">An array of bytes. When this method returns, the buffer
+            contains the specified byte array with the values between offset and
+            (offset + count - 1) replaced by the bytes read from the source.</param>
+            <param name="offset">The zero-based byte offset in buffer at which to begin
+            storing the data read from the stream.</param>
+            <param name="count">The maximum number of bytes to be read from the stream.</param>
+            <returns>The total number of bytes read into the buffer. This can be less
+            than the number of bytes requested if that many bytes are not currently available,
+            or zero (0) if the end of the stream has been reached.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CargoStream.Write(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Writes to the source stream.
+            </summary>
+            <param name="buffer">An array of bytes. This method copies count
+            bytes from buffer to the stream.</param>
+            <param name="offset">The zero-based byte offset in buffer at which
+            to begin copying bytes to the stream.</param>
+            <param name="count">The number of bytes to be written to the stream.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.CargoStream.Seek(System.Int64,System.IO.SeekOrigin)">
+            <summary>
+            Changes the position of the source stream.
+            </summary>
+            <param name="offset">A byte offset relative to the origin parameter.</param>
+            <param name="origin">A value of type SeekOrigin indicating the reference
+            point used to obtain the new position.</param>
+            <returns>The new position within the stream.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.CargoStream.Source">
+            <summary>
+            Gets the source stream of the cargo stream.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.CargoStream.Cargo">
+            <summary>
+            Gets the list of additional items that are disposed when the stream is closed.
+            The order of the list is the order in which the items are disposed. The contents can be modified any time.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.CargoStream.CanRead">
+            <summary>
+            Gets a value indicating whether the source stream supports reading.
+            </summary>
+            <value>true if the stream supports reading; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.CargoStream.CanWrite">
+            <summary>
+            Gets a value indicating whether the source stream supports writing.
+            </summary>
+            <value>true if the stream supports writing; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.CargoStream.CanSeek">
+            <summary>
+            Gets a value indicating whether the source stream supports seeking.
+            </summary>
+            <value>true if the stream supports seeking; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.CargoStream.Length">
+            <summary>
+            Gets the length of the source stream.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.CargoStream.Position">
+            <summary>
+            Gets or sets the position of the source stream.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.DuplicateStream">
+            <summary>
+            Duplicates a source stream by maintaining a separate position.
+            </summary>
+            <remarks>
+            WARNING: duplicate streams are not thread-safe with respect to each other or the original stream.
+            If multiple threads use duplicate copies of the same stream, they must synchronize for any operations.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.DuplicateStream.#ctor(System.IO.Stream)">
+            <summary>
+            Creates a new duplicate of a stream.
+            </summary>
+            <param name="source">source of the duplicate</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.DuplicateStream.OriginalStream(System.IO.Stream)">
+            <summary>
+            Retrieves the original stream from a possible duplicate stream.
+            </summary>
+            <param name="stream">Possible duplicate stream.</param>
+            <returns>If the stream is a DuplicateStream, returns
+            the duplicate's source; otherwise returns the same stream.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.DuplicateStream.Flush">
+            <summary>
+            Flushes the source stream.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.DuplicateStream.SetLength(System.Int64)">
+            <summary>
+            Sets the length of the source stream.
+            </summary>
+            <param name="value">The desired length of the stream in bytes.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.DuplicateStream.Close">
+            <summary>
+            Closes the underlying stream, effectively closing ALL duplicates.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.DuplicateStream.Read(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Reads from the source stream while maintaining a separate position
+            and not impacting the source stream's position.
+            </summary>
+            <param name="buffer">An array of bytes. When this method returns, the buffer
+            contains the specified byte array with the values between offset and
+            (offset + count - 1) replaced by the bytes read from the current source.</param>
+            <param name="offset">The zero-based byte offset in buffer at which to begin
+            storing the data read from the current stream.</param>
+            <param name="count">The maximum number of bytes to be read from the current stream.</param>
+            <returns>The total number of bytes read into the buffer. This can be less
+            than the number of bytes requested if that many bytes are not currently available,
+            or zero (0) if the end of the stream has been reached.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.DuplicateStream.Write(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Writes to the source stream while maintaining a separate position
+            and not impacting the source stream's position.
+            </summary>
+            <param name="buffer">An array of bytes. This method copies count
+            bytes from buffer to the current stream.</param>
+            <param name="offset">The zero-based byte offset in buffer at which
+            to begin copying bytes to the current stream.</param>
+            <param name="count">The number of bytes to be written to the
+            current stream.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.DuplicateStream.Seek(System.Int64,System.IO.SeekOrigin)">
+            <summary>
+            Changes the position of this stream without impacting the
+            source stream's position.
+            </summary>
+            <param name="offset">A byte offset relative to the origin parameter.</param>
+            <param name="origin">A value of type SeekOrigin indicating the reference
+            point used to obtain the new position.</param>
+            <returns>The new position within the current stream.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.DuplicateStream.Source">
+            <summary>
+            Gets the original stream that was used to create the duplicate.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.DuplicateStream.CanRead">
+            <summary>
+            Gets a value indicating whether the source stream supports reading.
+            </summary>
+            <value>true if the stream supports reading; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.DuplicateStream.CanWrite">
+            <summary>
+            Gets a value indicating whether the source stream supports writing.
+            </summary>
+            <value>true if the stream supports writing; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.DuplicateStream.CanSeek">
+            <summary>
+            Gets a value indicating whether the source stream supports seeking.
+            </summary>
+            <value>true if the stream supports seeking; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.DuplicateStream.Length">
+            <summary>
+            Gets the length of the source stream.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.DuplicateStream.Position">
+            <summary>
+            Gets or sets the position of the current stream,
+            ignoring the position of the source stream.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Compression.OffsetStream">
+            <summary>
+            Wraps a source stream and offsets all read/write/seek calls by a given value.
+            </summary>
+            <remarks>
+            This class is used to trick archive an packing or unpacking process
+            into reading or writing at an offset into a file, primarily for
+            self-extracting packages.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.OffsetStream.#ctor(System.IO.Stream,System.Int64)">
+            <summary>
+            Creates a new OffsetStream instance from a source stream
+            and using a specified offset.
+            </summary>
+            <param name="source">Underlying stream for which all calls will be offset.</param>
+            <param name="offset">Positive or negative number of bytes to offset.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.OffsetStream.Read(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Reads a sequence of bytes from the source stream and advances
+            the position within the stream by the number of bytes read.
+            </summary>
+            <param name="buffer">An array of bytes. When this method returns, the buffer
+            contains the specified byte array with the values between offset and
+            (offset + count - 1) replaced by the bytes read from the current source.</param>
+            <param name="offset">The zero-based byte offset in buffer at which to begin
+            storing the data read from the current stream.</param>
+            <param name="count">The maximum number of bytes to be read from the current stream.</param>
+            <returns>The total number of bytes read into the buffer. This can be less
+            than the number of bytes requested if that many bytes are not currently available,
+            or zero (0) if the end of the stream has been reached.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.OffsetStream.Write(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Writes a sequence of bytes to the source stream and advances the
+            current position within this stream by the number of bytes written.
+            </summary>
+            <param name="buffer">An array of bytes. This method copies count
+            bytes from buffer to the current stream.</param>
+            <param name="offset">The zero-based byte offset in buffer at which
+            to begin copying bytes to the current stream.</param>
+            <param name="count">The number of bytes to be written to the
+            current stream.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.OffsetStream.ReadByte">
+            <summary>
+            Reads a byte from the stream and advances the position within the
+            source stream by one byte, or returns -1 if at the end of the stream.
+            </summary>
+            <returns>The unsigned byte cast to an Int32, or -1 if at the
+            end of the stream.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.OffsetStream.WriteByte(System.Byte)">
+            <summary>
+            Writes a byte to the current position in the source stream and
+            advances the position within the stream by one byte.
+            </summary>
+            <param name="value">The byte to write to the stream.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.OffsetStream.Flush">
+            <summary>
+            Flushes the source stream.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.OffsetStream.Seek(System.Int64,System.IO.SeekOrigin)">
+            <summary>
+            Sets the position within the current stream, which is
+            equal to the position within the source stream minus the offset.
+            </summary>
+            <param name="offset">A byte offset relative to the origin parameter.</param>
+            <param name="origin">A value of type SeekOrigin indicating
+            the reference point used to obtain the new position.</param>
+            <returns>The new position within the current stream.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.OffsetStream.SetLength(System.Int64)">
+            <summary>
+            Sets the effective length of the stream, which is equal to
+            the length of the source stream minus the offset.
+            </summary>
+            <param name="value">The desired length of the
+            current stream in bytes.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Compression.OffsetStream.Close">
+            <summary>
+            Closes the underlying stream.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.OffsetStream.Source">
+            <summary>
+            Gets the underlying stream that this OffsetStream calls into.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.OffsetStream.Offset">
+            <summary>
+            Gets the number of bytes to offset all calls before
+            redirecting to the underlying stream.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.OffsetStream.CanRead">
+            <summary>
+            Gets a value indicating whether the source stream supports reading.
+            </summary>
+            <value>true if the stream supports reading; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.OffsetStream.CanWrite">
+            <summary>
+            Gets a value indicating whether the source stream supports writing.
+            </summary>
+            <value>true if the stream supports writing; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.OffsetStream.CanSeek">
+            <summary>
+            Gets a value indicating whether the source stream supports seeking.
+            </summary>
+            <value>true if the stream supports seeking; otherwise, false.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.OffsetStream.Length">
+            <summary>
+            Gets the effective length of the stream, which is equal to
+            the length of the source stream minus the offset.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Compression.OffsetStream.Position">
+            <summary>
+            Gets or sets the effective position of the stream, which
+            is equal to the position of the source stream minus the offset.
+            </summary>
+        </member>
+    </members>
+</doc>
diff --git a/sdk/Microsoft.Deployment.Resources.dll b/sdk/Microsoft.Deployment.Resources.dll
new file mode 100755
index 0000000..789ab38
--- /dev/null
+++ b/sdk/Microsoft.Deployment.Resources.dll
Binary files differ
diff --git a/sdk/Microsoft.Deployment.Resources.xml b/sdk/Microsoft.Deployment.Resources.xml
new file mode 100644
index 0000000..3d4b628
--- /dev/null
+++ b/sdk/Microsoft.Deployment.Resources.xml
@@ -0,0 +1,443 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Deployment.Resources</name>
+    </assembly>
+    <members>
+        <member name="T:Microsoft.Deployment.Resources.Resource">
+            <summary>
+            Represents a Win32 resource which can be loaded from and saved to a PE file.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.Resource.#ctor(Microsoft.Deployment.Resources.ResourceType,System.String,System.Int32)">
+            <summary>
+            Creates a new Resource object without any data. The data can be later loaded from a file.
+            </summary>
+            <param name="type">Type of the resource; may be one of the ResourceType constants or a user-defined type.</param>
+            <param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
+            <param name="locale">Locale of the resource</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.Resource.#ctor(Microsoft.Deployment.Resources.ResourceType,System.String,System.Int32,System.Byte[])">
+            <summary>
+            Creates a new Resource object with data. The data can be later saved to a file.
+            </summary>
+            <param name="type">Type of the resource; may be one of the ResourceType constants or a user-defined type.</param>
+            <param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
+            <param name="locale">Locale of the resource</param>
+            <param name="data">Raw resource data</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.Resource.Load(System.String)">
+            <summary>
+            Loads the resource data from a file.  The file is searched for a resource with matching type, name, and locale.
+            </summary>
+            <param name="file">Win32 PE file containing the resource</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.Resource.Save(System.String)">
+            <summary>
+            Saves the resource to a file.  Any existing resource data with matching type, name, and locale is overwritten.
+            </summary>
+            <param name="file">Win32 PE file to contain the resource</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.Resource.Equals(System.Object)">
+            <summary>
+            Tests if type, name, and locale of this Resource object match another Resource object.
+            </summary>
+            <param name="obj">Resource object to be compared</param>
+            <returns>True if the objects represent the same resource; false otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.Resource.GetHashCode">
+            <summary>
+            Gets a hash code for this Resource object.
+            </summary>
+            <returns>Hash code generated from the resource type, name, and locale.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.Resource.ResourceType">
+            <summary>
+            Gets or sets the type of the resource.  This may be one of the ResourceType constants
+            or a user-defined type name.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.Resource.Name">
+            <summary>
+            Gets or sets the name of the resource.  For a numeric resource identifier, the decimal number is prefixed with a "#".
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.Resource.Locale">
+            <summary>
+            Gets or sets the locale of the resource.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.Resource.Data">
+            <summary>
+            Gets or sets the raw data of the resource.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Resources.ResourceCollection">
+            <summary>
+            Allows reading and editing of resource data in a Win32 PE file.
+            </summary>
+            <remarks>
+            To use this class:<list type="number">
+            <item>Create a new ResourceCollection</item>
+            <item>Locate resources for the collection by calling one of the <see cref="M:Microsoft.Deployment.Resources.ResourceCollection.Find(System.String)"/> methods</item>
+            <item>Load data of one or more <see cref="T:Microsoft.Deployment.Resources.Resource"/>s from a file by calling the <see cref="M:Microsoft.Deployment.Resources.ResourceCollection.Load(System.String)"/> method of the
+            Resource class, or load them all at once (more efficient) with the <see cref="M:Microsoft.Deployment.Resources.ResourceCollection.Load(System.String)"/> method of the ResourceCollection.</item>
+            <item>Read and/or edit data of the individual Resource objects using the methods on that class.</item>
+            <item>Save data of one or more <see cref="T:Microsoft.Deployment.Resources.Resource"/>s to a file by calling the <see cref="M:Microsoft.Deployment.Resources.ResourceCollection.Save(System.String)"/> method of the
+            Resource class, or save them all at once (more efficient) with the <see cref="M:Microsoft.Deployment.Resources.ResourceCollection.Save(System.String)"/> method of the ResourceCollection.</item>
+            </list>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.#ctor">
+            <summary>
+            Creates a new, empty ResourceCollection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.Find(System.String)">
+            <summary>
+            Locates all resources in a file, including all resource types and languages.  For each located resource,
+            a <see cref="T:Microsoft.Deployment.Resources.Resource"/> instance (or subclass) is added to the collection.
+            </summary>
+            <param name="resFile">The file to be searched for resources.</param>
+            <exception cref="T:System.IO.IOException">resources could not be read from the file</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.Find(System.String,Microsoft.Deployment.Resources.ResourceType)">
+            <summary>
+            Locates all resources in a file of a given type, including all languages.  For each located resource,
+            a <see cref="T:Microsoft.Deployment.Resources.Resource"/> instance (or subclass) is added to the collection.
+            </summary>
+            <param name="resFile">The file to be searched for resources.</param>
+            <param name="type">The type of resource to search for; may be one of the ResourceType constants or a user-defined type.</param>
+            <exception cref="T:System.IO.IOException">resources could not be read from the file</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.Find(System.String,Microsoft.Deployment.Resources.ResourceType,System.String)">
+            <summary>
+            Locates all resources in a file of a given type and language.  For each located resource,
+            a <see cref="T:Microsoft.Deployment.Resources.Resource"/> instance (or subclass) is added to the collection.
+            </summary>
+            <param name="resFile">The file to be searched for resources.</param>
+            <param name="type">The type of resource to search for; may be one of the ResourceType constants or a user-defined type.</param>
+            <param name="name">The name of the resource to search for.</param>
+            <exception cref="T:System.IO.IOException">resources could not be read from the file</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.Load(System.String)">
+            <summary>
+            For all resources in the collection, loads their data from a resource file.
+            </summary>
+            <param name="file">The file from which resources are loaded.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.Save(System.String)">
+            <summary>
+            For all resources in the collection, saves their data to a resource file.
+            </summary>
+            <param name="file">The file to which resources are saved.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.Add(Microsoft.Deployment.Resources.Resource)">
+            <summary>
+            Adds a new item to the collection.
+            </summary>
+            <param name="item">The Resource to add.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.Remove(Microsoft.Deployment.Resources.Resource)">
+            <summary>
+            Removes an item to the collection.
+            </summary>
+            <param name="item">The Resource to remove.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.IndexOf(Microsoft.Deployment.Resources.Resource)">
+            <summary>
+            Gets the index of an item in the collection.
+            </summary>
+            <param name="item">The Resource to search for.</param>
+            <returns>The index of the item, or -1 if not found.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.Insert(System.Int32,Microsoft.Deployment.Resources.Resource)">
+            <summary>
+            Inserts a item into the collection.
+            </summary>
+            <param name="index">The insertion index.</param>
+            <param name="item">The Resource to insert.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.Contains(Microsoft.Deployment.Resources.Resource)">
+            <summary>
+            Tests if the collection contains an item.
+            </summary>
+            <param name="item">The Resource to search for.</param>
+            <returns>true if the item is found; false otherwise</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.CopyTo(Microsoft.Deployment.Resources.Resource[],System.Int32)">
+            <summary>
+            Copies the collection into an array.
+            </summary>
+            <param name="array">The array to copy into.</param>
+            <param name="arrayIndex">The starting index in the destination array.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.Clear">
+            <summary>
+            Removes all resources from the collection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceCollection.GetEnumerator">
+            <summary>
+            Gets an enumerator over all resources in the collection.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.ResourceCollection.Item(System.Int32)">
+            <summary>
+            Gets or sets the element at the specified index.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.ResourceCollection.Count">
+            <summary>
+            Gets the number of resources in the collection.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Resources.ResourceType">
+            <summary>
+            Represents either a standard integer resource type or a custom resource type name.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceType.#ctor(System.String)">
+            <summary>
+            Creates a new resource type from a string resource name.
+            </summary>
+            <param name="resourceType">String resource name,
+            or an integer resource type prefixed by a #.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceType.#ctor(System.Int32)">
+            <summary>
+            Creates a new integer resource type.
+            </summary>
+            <param name="resourceType">Integer value of a well-known resource type.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceType.ToString">
+            <summary>
+            Gets a string representation of the resource type.
+            </summary>
+            <returns>The custom resource name, or the name of a well-known resource type.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceType.Equals(System.Object)">
+            <summary>
+            Tests whether one resource type equals another object.
+            </summary>
+            <param name="obj">Other object.</param>
+            <returns>True if equal, else false.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceType.Equals(Microsoft.Deployment.Resources.ResourceType)">
+            <summary>
+            Tests whether one resource type equals another.
+            </summary>
+            <param name="otherType">Other resource type.</param>
+            <returns>True if equal, else false.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceType.GetHashCode">
+            <summary>
+            Gets a hash code suitable for using the resource type as a dictionary key.
+            </summary>
+            <returns>Hash code based on the resource type string.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceType.op_Implicit(System.String)~Microsoft.Deployment.Resources.ResourceType">
+            <summary>
+            Implicitly converts a string to a ResourceType.
+            </summary>
+            <param name="resourceType">String resource type to convert.</param>
+            <returns>ResourceType object.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.ResourceType.op_Explicit(Microsoft.Deployment.Resources.ResourceType)~System.String">
+            <summary>
+            Explicitly converts a ResourceType to a string.
+            </summary>
+            <param name="resourceType">ResourceType object to convert.</param>
+            <returns>The resource type string.</returns>
+            <remarks>
+            Unlike <see cref="M:Microsoft.Deployment.Resources.ResourceType.ToString"/>, this conversion does not return
+            the common name of well-known integer resource types. Therefore,
+            the returned string is suitable for passing directly to Win32
+            resource APIs that accept resource type strings.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.ResourceType.IsInteger">
+            <summary>
+            Gets a flag indicating whether the resource type is an integer type.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.ResourceType.IntegerValue">
+            <summary>
+            Gets the integer value of the resource type, or -1 if the resource type is not an integer.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Resources.VersionBuildTypes">
+            <summary>
+            Identifies build types of a versioned file.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Resources.VersionFileType">
+            <summary>
+            Identifies the type of a versioned file.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Resources.VersionFileSubtype">
+            <summary>
+            Identifies the sub-type of a versioned file.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Resources.VersionResource">
+            <summary>
+            A subclass of Resource which provides specific methods for manipulating the resource data.
+            </summary>
+            <remarks>
+            The resource is of type <see cref="P:Microsoft.Deployment.Resources.ResourceType.Version"/> (RT_VERSION).
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.VersionResource.#ctor(System.String,System.Int32)">
+            <summary>
+            Creates a new VersionResource object without any data. The data can be later loaded from a file.
+            </summary>
+            <param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
+            <param name="locale">Locale of the resource</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.VersionResource.#ctor(System.String,System.Int32,System.Byte[])">
+            <summary>
+            Creates a new VersionResource object with data. The data can be later saved to a file.
+            </summary>
+            <param name="name">Name of the resource. For a numeric resource identifier, prefix the decimal number with a "#".</param>
+            <param name="locale">Locale of the resource</param>
+            <param name="data">Raw resource data</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.VersionResource.Add(System.Int32)">
+            <summary>
+            Adds a new version string table for a locale.
+            </summary>
+            <param name="locale">Locale of the table</param>
+            <returns>The new string table, or the existing table if the locale already existed.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.VersionResource.Remove(System.Int32)">
+            <summary>
+            Removes a version string table for a locale.
+            </summary>
+            <param name="locale">Locale of the table</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.VersionResource.Contains(System.Int32)">
+            <summary>
+            Checks if a version string table exists for a given locale.
+            </summary>
+            <param name="locale">Locale to search for</param>
+            <returns>True if a string table was found for the locale; false otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.VersionResource.Clear">
+            <summary>
+            Removes all string tables from the version resource.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.VersionResource.CopyTo(Microsoft.Deployment.Resources.VersionStringTable[],System.Int32)">
+            <summary>
+            Copies the version string tables to an array, starting at a particular array index.
+            </summary>
+            <param name="array">The one-dimensional Array that is the destination of the elements copied
+            from the collection. The Array must have zero-based indexing.</param>
+            <param name="arrayIndex">The zero-based index in array at which copying begins.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.VersionResource.GetEnumerator">
+            <summary>
+            Gets an enumerator that can iterate over the version string tables in the collection.
+            </summary>
+            <returns>An enumerator that returns <see cref="T:Microsoft.Deployment.Resources.VersionStringTable"/> objects.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.VersionResource.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            Gets an enumerator that can iterate over the version string tables in the collection.
+            </summary>
+            <returns>An enumerator that returns <see cref="T:Microsoft.Deployment.Resources.VersionStringTable"/> objects.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionResource.Data">
+            <summary>
+            Gets or sets the raw data of the resource.  The data is in the format of the VS_VERSIONINFO structure.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionResource.FileVersion">
+            <summary>
+            Gets or sets the binary locale-independent file version of the version resource.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionResource.ProductVersion">
+            <summary>
+            Gets or sets the binary locale-independent product version of the version resource.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionResource.BuildTypes">
+            <summary>
+            Gets or sets a bitmask that specifies the build types of the file.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionResource.FileType">
+            <summary>
+            Gets or sets the general type of the file.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionResource.FileSubtype">
+            <summary>
+            Gets or sets the specific type of the file.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionResource.Timestamp">
+            <summary>
+            Gets or sets the binary creation date and time.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionResource.Item(System.Int32)">
+            <summary>
+            Gets the string table for a specific locale, or null if there is no table for that locale.
+            </summary>
+            <seealso cref="M:Microsoft.Deployment.Resources.VersionResource.Add(System.Int32)"/>
+            <seealso cref="M:Microsoft.Deployment.Resources.VersionResource.Remove(System.Int32)"/>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionResource.Count">
+            <summary>
+            Gets the number string tables in the version resource.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.Resources.VersionStringTable">
+            <summary>
+            Represents a string table of a file version resource.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.VersionStringTable.Clear">
+            <summary>
+            Removes all strings from the string table.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.Resources.VersionStringTable.GetEnumerator">
+            <summary>
+            Gets an enumeration over all strings in the table.
+            </summary>
+            <returns>Enumeration of string name and value pairs</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionStringTable.Locale">
+            <summary>
+            Gets the locale (LCID) of the string table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionStringTable.Item(System.String)">
+            <summary>
+            Gets or sets a string value.
+            </summary>
+            <param name="key">Name of the string.</param>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionStringTable.Keys">
+            <summary>
+            Gets a collection of all the names of the strings in the table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionStringTable.Values">
+            <summary>
+            Gets a collection of all the values in the table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.Resources.VersionStringTable.Count">
+            <summary>
+            Gets the number of strings in the table.
+            </summary>
+        </member>
+    </members>
+</doc>
diff --git a/sdk/Microsoft.Deployment.WindowsInstaller.Linq.dll b/sdk/Microsoft.Deployment.WindowsInstaller.Linq.dll
new file mode 100755
index 0000000..ce9fbc9
--- /dev/null
+++ b/sdk/Microsoft.Deployment.WindowsInstaller.Linq.dll
Binary files differ
diff --git a/sdk/Microsoft.Deployment.WindowsInstaller.Linq.xml b/sdk/Microsoft.Deployment.WindowsInstaller.Linq.xml
new file mode 100644
index 0000000..428fb76
--- /dev/null
+++ b/sdk/Microsoft.Deployment.WindowsInstaller.Linq.xml
@@ -0,0 +1,434 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Deployment.WindowsInstaller.Linq</name>
+    </assembly>
+    <members>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseTableAttribute">
+            <summary>
+            Apply to a subclass of QRecord to indicate the name of
+            the table the record type is to be used with.
+            </summary>
+            <remarks>
+            If this attribute is not used on a record type, the default
+            table name will be derived from the record type name. (An
+            optional underscore suffix is stripped.)
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseTableAttribute.#ctor(System.String)">
+            <summary>
+            Creates a new DatabaseTableAttribute for the specified table.
+            </summary>
+            <param name="table">name of the table associated with the record type</param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseTableAttribute.Table">
+            <summary>
+            Gets or sets the table associated with the record type.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseColumnAttribute">
+            <summary>
+            Apply to a property on a subclass of QRecord to indicate
+            the name of the column the property is to be associated with.
+            </summary>
+            <remarks>
+            If this attribute is not used on a property, the default
+            column name will be the same as the property name.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseColumnAttribute.#ctor(System.String)">
+            <summary>
+            Creates a new DatabaseColumnAttribute which maps a
+            record property to a column.
+            </summary>
+            <param name="column">name of the column associated with the property</param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseColumnAttribute.Column">
+            <summary>
+            Gets or sets the column associated with the record property.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Linq.QRecord">
+            <summary>
+            Generic record entity for queryable databases,
+            and base for strongly-typed entity subclasses.
+            </summary>
+            <remarks>
+            Several predefined specialized subclasses are provided for common
+            standard tables. Subclasses for additional standard tables
+            or custom tables are not necessary, but they are easy to create
+            and make the coding experience much nicer.
+            <para>When creating subclasses, the following attributes may be
+            useful: <see cref="T:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseTableAttribute"/>,
+            <see cref="T:Microsoft.Deployment.WindowsInstaller.Linq.DatabaseColumnAttribute"/></para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.#ctor">
+            <summary>
+            Do not call. Use QTable.NewRecord() instead.
+            </summary>
+            <remarks>
+            Subclasses must also provide a public parameterless constructor.
+            <para>QRecord constructors are only public due to implementation
+            reasons (to satisfy the new() constraint on the QTable generic
+            class). They are not intended to be called by user code other than
+            a subclass constructor. If the constructor is invoked directly,
+            the record instance will not be properly initialized (associated
+            with a database table) and calls to methods on the instance
+            will throw a NullReferenceException.</para>
+            </remarks>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.NewRecord"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.I(System.Int32)">
+            <summary>
+            Used by subclasses to get a field as an integer.
+            </summary>
+            <param name="index">zero-based column index of the field</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.NI(System.Int32)">
+            <summary>
+            Used by subclasses to get a field as a nullable integer.
+            </summary>
+            <param name="index">zero-based column index of the field</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.ToString">
+            <summary>
+            Dumps all record fields to a string.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Update(System.Collections.Generic.IList{System.String},System.Collections.Generic.IList{System.String})">
+            <summary>
+            Update multiple fields in the record (and the database).
+            </summary>
+            <param name="fields">column names of fields to update</param>
+            <param name="values">new values for each field being updated</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Update(System.Collections.Generic.IList{System.Int32},System.Collections.Generic.IList{System.String})">
+            <summary>
+            Update multiple fields in the record (and the database).
+            </summary>
+            <param name="indexes">column indexes of fields to update</param>
+            <param name="values">new values for each field being updated</param>
+            <remarks>
+            The record (primary keys) must already exist in the table.
+            <para>Updating primary key fields is not yet implemented; use Delete()
+            and Insert() instead.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Insert">
+            <summary>
+            Inserts the record in the database.
+            </summary>
+            <remarks>
+            The record (primary keys) may not already exist in the table.
+            <para>Use <see cref="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.NewRecord"/> to get a new 
+            record. Prmary keys and all required fields
+            must be filled in before insertion.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Insert(System.Boolean)">
+            <summary>
+            Inserts the record into the table.
+            </summary>
+            <param name="temporary">true if the record is temporarily
+            inserted, to be visible only as long as the database is open</param>
+            <remarks>
+            The record (primary keys) may not already exist in the table.
+            <para>Use <see cref="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.NewRecord"/> to get a new 
+            record. Prmary keys and all required fields
+            must be filled in before insertion.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Delete">
+            <summary>
+            Deletes the record from the table if it exists.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Refresh">
+            <summary>
+            Not yet implemented.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Assign">
+            <summary>
+            Not yet implemented.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Merge">
+            <summary>
+            Not yet implemented.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Validate">
+            <summary>
+            Not yet implemented.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.ValidateNew">
+            <summary>
+            Not yet implemented.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.ValidateFields">
+            <summary>
+            Not yet implemented.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.ValidateDelete">
+            <summary>
+            Not yet implemented.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.FieldCount">
+            <summary>
+            Gets the number of fields in the record.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Item(System.String)">
+            <summary>
+            Gets or sets a record field.
+            </summary>
+            <param name="field">column name of the field</param>
+            <remarks>
+            Setting a field value will automatically update the database.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QRecord.Item(System.Int32)">
+            <summary>
+            Gets or sets a record field.
+            </summary>
+            <param name="index">zero-based column index of the field</param>
+            <remarks>
+            Setting a field value will automatically update the database.
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Linq.Queryable">
+            <summary>
+            Allows any Database instance to be converted into a queryable database.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.Queryable.AsQueryable(Microsoft.Deployment.WindowsInstaller.Database)">
+            <summary>
+            Converts any Database instance into a queryable database.
+            </summary>
+            <param name="db"></param>
+            <returns>Queryable database instance that operates on the same
+            MSI handle.</returns>
+            <remarks>
+            This extension method is meant for convenient on-the-fly conversion.
+            If the existing database instance already happens to be a QDatabase,
+            then it is returned unchanged. Otherwise since the new database
+            carries the same MSI handle, only one of the instances needs to be
+            closed, not both.
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase">
+            <summary>
+            Queryable MSI database - extends the base Database class with
+            LINQ query functionality along with predefined entity types
+            for common tables.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.#ctor(System.String)">
+            <summary>
+            Opens an existing database in read-only mode.
+            </summary>
+            <param name="filePath">Path to the database file.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
+            <remarks>
+            Because this constructor initiates database access, it cannot be used with a
+            running installation.
+            <para>The Database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            The finalizer will close the handle if it is still open, however due to the nondeterministic
+            nature of finalization it is best that the handle be closed manually as soon as it is no
+            longer needed, as leaving lots of unused handles open can degrade performance.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.#ctor(System.String,System.String)">
+            <summary>
+            Opens an existing database with another database as output.
+            </summary>
+            <param name="filePath">Path to the database to be read.</param>
+            <param name="outputPath">Open mode for the database</param>
+            <returns>Database object representing the created or opened database</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
+            <remarks>
+            When a database is opened as the output of another database, the summary information stream
+            of the output database is actually a read-only mirror of the original database and thus cannot
+            be changed. Additionally, it is not persisted with the database. To create or modify the
+            summary information for the output database it must be closed and re-opened.
+            <para>The returned Database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            The finalizer will close the handle if it is still open, however due to the nondeterministic
+            nature of finalization it is best that the handle be closed manually as soon as it is no
+            longer needed, as leaving lots of unused handles open can degrade performance.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode)">
+            <summary>
+            Opens an existing database or creates a new one.
+            </summary>
+            <param name="filePath">Path to the database file. If an empty string
+            is supplied, a temporary database is created that is not persisted.</param>
+            <param name="mode">Open mode for the database</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
+            <remarks>
+            To make and save changes to a database first open the database in transaction,
+            create or, or direct mode. After making the changes, always call the Commit method
+            before closing the database handle. The Commit method flushes all buffers.
+            <para>Always call the Commit method on a database that has been opened in direct
+            mode before closing the database. Failure to do this may corrupt the database.</para>
+            <para>Because this constructor initiates database access, it cannot be used with a
+            running installation.</para>
+            <para>The Database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            The finalizer will close the handle if it is still open, however due to the nondeterministic
+            nature of finalization it is best that the handle be closed manually as soon as it is no
+            longer needed, as leaving lots of unused handles open can degrade performance.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.#ctor(System.IntPtr,System.Boolean,System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode)">
+            <summary>
+            Creates a new database from an MSI handle.
+            </summary>
+            <param name="handle">Native MSI database handle.</param>
+            <param name="ownsHandle">True if the handle should be closed
+            when the database object is disposed</param>
+            <param name="filePath">Path of the database file, if known</param>
+            <param name="openMode">Mode the handle was originally opened in</param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Log">
+            <summary>
+            Gets or sets a log where all MSI SQL queries are written.
+            </summary>
+            <remarks>
+            The log can be useful for debugging, or simply to watch the LINQ magic in action.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Item(System.String)">
+            <summary>
+            Gets a queryable table from the datbaase.
+            </summary>
+            <param name="table">name of the table</param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Components">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.CreateFolders">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.CustomActions">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Directories">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.DuplicateFiles">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Features">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.FeatureComponents">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Files">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.FileHashes">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.InstallExecuteSequences">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.InstallUISequences">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.LaunchConditions">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Medias">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Properties">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.Registries">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QDatabase.RemoveFiles">
+            <summary>Queryable standard table with predefined specialized record type.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1">
+            <summary>
+            Represents one table in a LINQ-queryable Database.
+            </summary>
+            <typeparam name="TRecord">type that represents one record in the table</typeparam>
+            <remarks>
+            This class is the primary gateway to all LINQ to MSI query functionality.
+            <para>The TRecord generic parameter may be the general <see cref="T:Microsoft.Deployment.WindowsInstaller.Linq.QRecord"/>
+            class, or a specialized subclass of QRecord.</para>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.InferTableName">
+            <summary>
+            Infers the name of the table this instance will be
+            associated with.
+            </summary>
+            <returns>table name</returns>
+            <remarks>
+            The table name is retrieved from a DatabaseTableAttribute
+            on the record type if it exists; otherwise the name is
+            derived from the name of the record type itself.
+            (An optional underscore suffix on the record type name is dropped.)
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.#ctor(Microsoft.Deployment.WindowsInstaller.Linq.QDatabase)">
+            <summary>
+            Creates a new QTable, inferring the table name
+            from the name of the record type parameter.
+            </summary>
+            <param name="db">database that contains the table</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.#ctor(Microsoft.Deployment.WindowsInstaller.Linq.QDatabase,System.String)">
+            <summary>
+            Creates a new QTable with an explicit table name.
+            </summary>
+            <param name="db">database that contains the table</param>
+            <param name="table">name of the table</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.GetEnumerator">
+            <summary>
+            Enumerates over all records in the table.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.NewRecord">
+            <summary>
+            Creates a new record that can be inserted into this table.
+            </summary>
+            <returns>a record with all fields initialized to null</returns>
+            <remarks>
+            Primary keys and required fields must be filled in with
+            non-null values before the record can be inserted.
+            <para>The record is tied to this table in this database;
+            it cannot be inserted into another table or database.</para>
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.TableInfo">
+            <summary>
+            Gets schema information about the table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Linq.QTable`1.Database">
+            <summary>
+            Gets the database this table is associated with.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Linq.Query`1">
+            <summary>
+            Implements the LINQ to MSI query functionality.
+            </summary>
+            <typeparam name="T">the result type of the current query --
+            either some kind of QRecord, or some projection of record data</typeparam>
+        </member>
+    </members>
+</doc>
diff --git a/sdk/Microsoft.Deployment.WindowsInstaller.Package.dll b/sdk/Microsoft.Deployment.WindowsInstaller.Package.dll
new file mode 100755
index 0000000..de79caf
--- /dev/null
+++ b/sdk/Microsoft.Deployment.WindowsInstaller.Package.dll
Binary files differ
diff --git a/sdk/Microsoft.Deployment.WindowsInstaller.Package.xml b/sdk/Microsoft.Deployment.WindowsInstaller.Package.xml
new file mode 100644
index 0000000..f42c60b
--- /dev/null
+++ b/sdk/Microsoft.Deployment.WindowsInstaller.Package.xml
@@ -0,0 +1,679 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Deployment.WindowsInstaller.Package</name>
+    </assembly>
+    <members>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPackageMessageHandler">
+            <summary>
+            Handles status messages generated when operations are performed on an
+            <see cref="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage"/> or <see cref="T:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage"/>.
+            </summary>
+            <example>
+            <c>installPackage.Message += new InstallPackageMessageHandler(Console.WriteLine);</c>
+            </example>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage">
+            <summary>
+            Provides access to powerful build, maintenance, and analysis operations on an
+            installation package (.MSI or .MSM).
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode)">
+            <summary>
+            Creates a new InstallPackage object.  The file source directory and working
+            directory are the same as the location as the package file.
+            </summary>
+            <param name="packagePath">Path to the install package to be created or opened</param>
+            <param name="openMode">Open mode for the database</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode,System.String,System.String)">
+            <summary>
+            Creates a new InstallPackage object, specifying an alternate file source
+            directory and/or working directory.
+            </summary>
+            <param name="packagePath">Path to the install package to be created or opened</param>
+            <param name="openMode">Open mode for the database</param>
+            <param name="sourceDir">Location to obtain source files and cabinets when extracting
+            or updating files in the working directory. This is often the location of an original
+            copy of the package that is not meant to be modified. If this parameter is null, it
+            defaults to the directory of <paramref name="packagePath"/>.</param>
+            <param name="workingDir">Location where files will be extracted to/updated from. Also
+            the location where a temporary folder is created during some operations. If this
+            parameter is null, it defaults to the directory of <paramref name="packagePath"/>.</param>
+            <remarks>If the source location is different than the working directory, then
+            no files will be modified at the source location.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.LogMessage(System.String,System.Object[])">
+            <summary>
+            Sends a message to the <see cref="E:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Message"/> event-handler.
+            </summary>
+            <param name="format">Message string, containing 0 or more format items</param>
+            <param name="args">Items to be formatted</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.FindFiles(System.String)">
+            <summary>
+            Gets the list of file keys that have the specified long file name.
+            </summary>
+            <param name="longFileName">File name to search for (case-insensitive)</param>
+            <returns>Array of file keys, or a 0-length array if none are found</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.FindFiles(System.Text.RegularExpressions.Regex)">
+            <summary>
+            Gets the list of file keys whose long file names match a specified
+            regular-expression search pattern.
+            </summary>
+            <param name="pattern">Regular expression search pattern</param>
+            <returns>Array of file keys, or a 0-length array if none are found</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.ExtractFiles">
+            <summary>
+            Extracts all files to the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.WorkingDirectory"/>. The files are extracted
+            to the relative directory matching their <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath"/>.
+            </summary>
+            <remarks>If any files have the uncompressed attribute, they will be copied
+            from the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.SourceDirectory"/>.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.ExtractFiles(System.Collections.Generic.ICollection{System.String})">
+            <summary>
+            Extracts a specified list of files to the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.WorkingDirectory"/>. The files
+            are extracted to the relative directory matching their <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath"/>.
+            </summary>
+            <param name="fileKeys">List of file key strings to extract</param>
+            <remarks>If any files have the uncompressed attribute, they will be copied
+            from the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.SourceDirectory"/>.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateFiles">
+            <summary>
+            Updates the install package with new files from the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.WorkingDirectory"/>.  The
+            files must be in the relative directory matching their <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath"/>.
+            This method re-compresses and packages the files if necessary, and also updates the
+            following data: File.FileSize, File.Version, File.Language, MsiFileHash.HashPart*
+            </summary>
+            <remarks>
+            The cabinet compression level used during re-cabbing can be configured with the
+            <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.CompressionLevel"/> property.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateFiles(System.Collections.Generic.ICollection{System.String})">
+            <summary>
+            Updates the install package with new files from the <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.WorkingDirectory"/>.  The
+            files must be in the relative directory matching their <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath"/>.
+            This method re-compresses and packages the files if necessary, and also updates the
+            following data: File.FileSize, File.Version, File.Language, MsiFileHash.HashPart?.
+            </summary>
+            <param name="fileKeys">List of file key strings to update</param>
+            <remarks>
+            This method does not change the media structure of the package, so it may require extracting
+            and re-compressing a large cabinet just to update one file.
+            <p>The cabinet compression level used during re-cabbing can be configured with the
+            <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.CompressionLevel"/> property.</p>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Consolidate(System.String)">
+            <summary>
+            Consolidates a package by combining and re-compressing all files into a single
+            internal or external cabinet.
+            </summary>
+            <param name="mediaCabinet"></param>
+            <remarks>If an installation package was built from many merge modules, this
+            method can somewhat decrease package size, complexity, and installation time.
+            <p>This method will also convert a package with all or mostly uncompressed
+            files into a package where all files are compressed.</p>
+            <p>If the package contains any not-yet-applied binary file patches (for
+            example, a package generated by a call to <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.ApplyPatch(Microsoft.Deployment.WindowsInstaller.Package.PatchPackage,System.String)"/>) then
+            this method will apply the patches before compressing the updated files.</p>
+            <p>This method edits the database summary information and the File, Media
+            and Patch tables as necessary to maintain a valid installation package.</p>
+            <p>The cabinet compression level used during re-cabbing can be configured with the
+            <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.CompressionLevel"/> property.</p>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateDirectories">
+            <summary>
+            Rebuilds the cached directory structure information accessed by the
+            <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Directories"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Files"/> properties. This
+            should be done after modifying the File, Component, or Directory
+            tables, or else the cached information may no longer be accurate.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.ApplyPatch(Microsoft.Deployment.WindowsInstaller.Package.PatchPackage,System.String)">
+            <summary>
+            Applies a patch package to the database, resulting in an installation package that
+            has the patch built-in.
+            </summary>
+            <param name="patchPackage">The patch package to be applied</param>
+            <param name="transform">Optional name of the specific transform to apply.
+            This parameter is usually left null, which causes the patch to be searched for
+            a transform that is valid to apply to this database.</param>
+            <remarks>
+            If the patch contains any binary file patches, they will not immediately be applied
+            to the target files, though they will at installation time.
+            <p>After calling this method you can use <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Consolidate(System.String)"/> to apply
+            the file patches immediately and also discard any outdated files from the package.</p>
+            </remarks>
+        </member>
+        <member name="E:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Message">
+            <summary>
+            Handle this event to receive status messages when operations are performed
+            on the install package.
+            </summary>
+            <example>
+            <c>installPackage.Message += new InstallPackageMessageHandler(Console.WriteLine);</c>
+            </example>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.SourceDirectory">
+            <summary>
+            Gets or sets the location to obtain source files and cabinets when
+            extracting or updating files in the working directory. This is often
+            the location of an original copy of the package that is not meant
+            to be modified.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.WorkingDirectory">
+            <summary>
+            Gets or sets the location where files will be extracted to/updated from. Also
+            the location where a temporary folder is created during some operations.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Directories">
+            <summary>
+            Gets a mapping from Directory keys to source/target paths.
+            </summary>
+            <remarks>
+            If the Directory table is modified, this mapping
+            will be outdated until you call <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateDirectories"/>.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Files">
+            <summary>
+            Gets a mapping from File keys to source/target paths.
+            </summary>
+            <remarks>
+            If the File, Component, or Directory tables are modified, this mapping
+            may be outdated until you call <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateDirectories"/>.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.CompressionLevel">
+            <summary>
+            Gets or sets the compression level used by <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.UpdateFiles"/>
+            and <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Consolidate(System.String)"/>.
+            </summary>
+            <remarks>
+            If the Directory table is modified, this mapping will be outdated
+            until you close and reopen the install package.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage.Property">
+            <summary>
+            Accessor for getting and setting properties of the InstallPackage database.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPackageProperties">
+            <summary>
+            Accessor for getting and setting properties of the <see cref="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPackage"/> database.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPackageProperties.Item(System.String)">
+            <summary>
+            Gets or sets a property in the database. When getting a property
+            that does not exist in the database, an empty string is returned.
+            To remove a property from the database, set it to an empty string.
+            </summary>
+            <remarks>
+            This has the same results as direct SQL queries on the Property table; it's only
+            meant to be a more convenient way of access.
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPath">
+            <summary>
+            Represents the installation path of a file or directory from an installer product database.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.#ctor(System.String)">
+            <summary>
+            Creates a new InstallPath, specifying a filename.
+            </summary>
+            <param name="name">The name of the file or directory.  Not a full path.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.#ctor(System.String,System.Boolean)">
+            <summary>
+            Creates a new InstallPath, parsing out either the short or long filename.
+            </summary>
+            <param name="name">The name of the file or directory, in short|long syntax for a filename
+            or targetshort|targetlong:sourceshort|sourcelong syntax for a directory.</param>
+            <param name="useShortNames">true to parse the short part of the combined filename; false to parse the long part</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.ToString">
+            <summary>
+            Gets the full source path.
+            </summary>
+            <returns><see cref="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath"/></returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.ParentPath">
+            <summary>
+            Gets the path of the parent directory.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.ChildPaths">
+            <summary>
+            Gets the set of child paths if this InstallPath object represents a a directory.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourceName">
+            <summary>
+            Gets or sets the source name of the InstallPath.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.TargetName">
+            <summary>
+            Gets or sets the target name of the install path.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.SourcePath">
+            <summary>
+            Gets the full source path.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPath.TargetPath">
+            <summary>
+            Gets the full target path.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection">
+            <summary>
+            Represents a collection of InstallPaths that are the child paths of the same parent directory.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Add(Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
+            <summary>
+            Adds a new child path to the collection.
+            </summary>
+            <param name="item">The InstallPath to add.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Remove(Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
+            <summary>
+            Removes a child path to the collection.
+            </summary>
+            <param name="item">The InstallPath to remove.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.IndexOf(Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
+            <summary>
+            Gets the index of a child path in the collection.
+            </summary>
+            <param name="item">The InstallPath to search for.</param>
+            <returns>The index of the item, or -1 if not found.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Insert(System.Int32,Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
+            <summary>
+            Inserts a child path into the collection.
+            </summary>
+            <param name="index">The insertion index.</param>
+            <param name="item">The InstallPath to insert.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Contains(Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
+            <summary>
+            Tests if the collection contains a child path.
+            </summary>
+            <param name="item">The InstallPath to search for.</param>
+            <returns>true if the item is found; false otherwise</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.CopyTo(Microsoft.Deployment.WindowsInstaller.Package.InstallPath[],System.Int32)">
+            <summary>
+            Copies the collection into an array.
+            </summary>
+            <param name="array">The array to copy into.</param>
+            <param name="index">The starting index in the destination array.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.RemoveAt(System.Int32)">
+            <summary>
+            Removes an item from the collection.
+            </summary>
+            <param name="index">The index of the item to remove.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Clear">
+            <summary>
+            Removes all items from the collection.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.GetEnumerator">
+            <summary>
+            Gets an enumerator over all items in the collection.
+            </summary>
+            <returns>An enumerator for the collection.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Item(System.Int32)">
+            <summary>
+            Gets or sets the element at the specified index.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathCollection.Count">
+            <summary>
+            Gets the number of items in the collection.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap">
+            <summary>
+            Represents a mapping of install paths for all directories, components, or files in
+            an installation database.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildFilePathMap(Microsoft.Deployment.WindowsInstaller.Database,Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap,System.Boolean)">
+            <summary>
+            Builds a mapping from File keys to installation paths.
+            </summary>
+            <param name="db">Installation database.</param>
+            <param name="componentPathMap">Component mapping returned by <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildComponentPathMap(Microsoft.Deployment.WindowsInstaller.Database,Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap)"/>.</param>
+            <param name="useShortNames">true to use short file names; false to use long names</param>
+            <returns>An InstallPathMap with the described mapping.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildComponentPathMap(Microsoft.Deployment.WindowsInstaller.Database,Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap)">
+            <summary>
+            Builds a mapping from Component keys to installation paths.
+            </summary>
+            <param name="db">Installation database.</param>
+            <param name="directoryPathMap">Directory mapping returned by
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildDirectoryPathMap(Microsoft.Deployment.WindowsInstaller.Database,System.Boolean)"/>.</param>
+            <returns>An InstallPathMap with the described mapping.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildDirectoryPathMap(Microsoft.Deployment.WindowsInstaller.Database,System.Boolean)">
+            <summary>
+            Builds a mapping from Directory keys to installation paths.
+            </summary>
+            <param name="db">Installation database.</param>
+            <param name="useShortNames">true to use short directory names; false to use long names</param>
+            <returns>An InstallPathMap with the described mapping.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.BuildDirectoryPathMap(Microsoft.Deployment.WindowsInstaller.Database,System.Boolean,System.String,System.String)">
+            <summary>
+            Builds a mapping of Directory keys to directory paths, specifying root directories
+            for the source and target paths.
+            </summary>
+            <param name="db">Database containing the Directory table.</param>
+            <param name="useShortNames">true to use short directory names; false to use long names</param>
+            <param name="sourceRootDir">The root directory path of all source paths, or null to leave them relative.</param>
+            <param name="targetRootDir">The root directory path of all source paths, or null to leave them relative.</param>
+            <returns>An InstallPathMap with the described mapping.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.#ctor">
+            <summary>
+            Creates a new empty InstallPathMap.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Add(System.String,Microsoft.Deployment.WindowsInstaller.Package.InstallPath)">
+            <summary>
+            Sets an install path for a direcotry, component, or file key.
+            </summary>
+            <param name="key">Depending on the type of InstallPathMap, this is the primary key from the
+            either the Directory, Component, or File table.</param>
+            <param name="installPath">The install path of the key item.</param>
+            <remarks>
+            Changing an install path does not modify the Database used to generate this InstallPathMap.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Remove(System.String)">
+            <summary>
+            Removes an install path from the map.
+            </summary>
+            <param name="key">Depending on the type of InstallPathMap, this is the primary key from the
+            either the Directory, Component, or File table.</param>
+            <returns>true if the item was removed, false if it did not exist</returns>
+            <remarks>
+            Changing an install path does not modify the Database used to generate this InstallPathMap.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.ContainsKey(System.String)">
+            <summary>
+            Tests whether a direcotry, component, or file key exists in the map.
+            </summary>
+            <param name="key">Depending on the type of InstallPathMap, this is the primary key from the
+            either the Directory, Component, or File table.</param>
+            <returns>true if the key is found; false otherwise</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.TryGetValue(System.String,Microsoft.Deployment.WindowsInstaller.Package.InstallPath@)">
+            <summary>
+            Attempts to get a value from the dictionary.
+            </summary>
+            <param name="key">The key to lookup.</param>
+            <param name="value">Receives the value, or null if they key was not found.</param>
+            <returns>True if the value was found, else false.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Clear">
+            <summary>
+            Removes all entries from the dictionary.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.GetEnumerator">
+            <summary>
+            Gets an enumerator over all entries in the dictionary.
+            </summary>
+            <returns>An enumerator for the dictionary.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.SourcePaths">
+            <summary>
+            Gets a mapping from keys to source paths.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.TargetPaths">
+            <summary>
+            Gets a mapping from keys to target paths.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Item(System.String)">
+            <summary>
+            Gets or sets an install path for a direcotry, component, or file key.
+            </summary>
+            <param name="key">Depending on the type of InstallPathMap, this is the primary key from the
+            either the Directory, Component, or File table.</param>
+            <remarks>
+            Changing an install path does not modify the Database used to generate this InstallPathMap.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Keys">
+            <summary>
+            Gets the collection of keys in the InstallPathMap. Depending on the type of InstallPathMap,
+            they are all directory, component, or file key strings.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Values">
+            <summary>
+            Gets the collection of InstallPath values in the InstallPathMap.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.InstallPathMap.Count">
+            <summary>
+            Gets the number of entries in the dictionary.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage">
+            <summary>
+            Provides access to convenient properties and operations on a patch package (.MSP).
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.#ctor(System.String)">
+            <summary>
+            Creates a new patch package object; opening the patch database in read-only mode.
+            </summary>
+            <param name="packagePath">Path to the patch package (.MSP)</param>
+            <remarks>The PatchPackage object only opens the patch database in read-only mode, because
+            transforms (sub-storages) cannot be read if the database is open in read-write mode.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.LogMessage(System.String,System.Object[])">
+            <summary>
+            Sends a message to the <see cref="E:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.Message"/> event-handler.
+            </summary>
+            <param name="format">Message string, containing 0 or more format items</param>
+            <param name="args">Items to be formatted</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetReplacedPatchCodes">
+            <summary>
+            Gets the list of patch codes that are replaced by this patch package.
+            </summary>
+            <returns>Array of replaced patch codes (GUIDs)</returns>
+            <remarks>
+            The list of replaced patch codes is stored in the RevisionNumber field of the patch summary information.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTargetProductCodes">
+            <summary>
+            Gets the list of product codes of products targeted by this patch package.
+            </summary>
+            <returns>Array of product codes (GUIDs)</returns>
+            <remarks>
+            The list of target product codes is stored in the Template field of the patch summary information.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTransforms">
+            <summary>
+            Gets the names of the transforms included in the patch package.
+            </summary>
+            <returns>Array of transform names</returns>
+            <remarks>
+            The returned list does not include the &quot;patch special transforms&quot; that are prefixed with &quot;#&quot;
+            <p>The list of transform names is stored in the LastSavedBy field of the patch summary information.</p>
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTransforms(System.Boolean)">
+            <summary>
+            Gets the names of the transforms included in the patch package.
+            </summary>
+            <param name="includeSpecialTransforms">Specifies whether to include the
+            &quot;patch special transforms&quot; that are prefixed with &quot;#&quot;</param>
+            <returns>Array of transform names</returns>
+            <remarks>
+            The list of transform names is stored in the LastSavedBy field of the patch summary information.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTransformsInfo">
+            <summary>
+            Gets information about the transforms included in the patch package.
+            </summary>
+            <returns>Array containing information about each transform</returns>
+            <remarks>
+            The returned info does not include the &quot;patch special transforms&quot; that are prefixed with &quot;#&quot;
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTransformsInfo(System.Boolean)">
+            <summary>
+            Gets information about the transforms included in the patch package.
+            </summary>
+            <param name="includeSpecialTransforms">Specifies whether to include the
+            &quot;patch special transforms&quot; that are prefixed with &quot;#&quot;</param>
+            <returns>Array containing information about each transform</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetTransformInfo(System.String)">
+            <summary>
+            Gets information about a transforms included in the patch package.
+            </summary>
+            <param name="transform">Name of the transform to extract; this may optionally be a
+            special transform prefixed by &quot;#&quot;</param>
+            <returns>Information about the transform</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.GetValidTransforms(Microsoft.Deployment.WindowsInstaller.Package.InstallPackage)">
+            <summary>
+            Analyzes the transforms included in the patch package to find the ones that
+            are applicable to an install package.
+            </summary>
+            <param name="installPackage">The install package to validate the transforms against</param>
+            <returns>Array of valid transform names</returns>
+            <remarks>
+            The returned list does not include the &quot;patch special transforms&quot; that
+            are prefixed with &quot;#&quot; If a transform is valid, then its corresponding
+            special transform is assumed to be valid as well.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.ExtractTransform(System.String,System.String)">
+            <summary>
+            Extracts a transform (.MST) from a patch package.
+            </summary>
+            <param name="transform">Name of the transform to extract; this may optionally be a
+            special transform prefixed by &quot;#&quot;</param>
+            <param name="extractFile">Location where the transform will be extracted</param>
+        </member>
+        <member name="E:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.Message">
+            <summary>
+            Handle this event to receive status messages when operations are performed on the patch package.
+            </summary>
+            <example>
+            <c>patchPackage.Message += new InstallPackageMessageHandler(Console.WriteLine);</c>
+            </example>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.PatchPackage.PatchCode">
+            <summary>
+            Gets the patch code (GUID) of the patch package.
+            </summary>
+            <remarks>
+            The patch code is stored in the RevisionNumber field of the patch summary information.
+            </remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo">
+            <summary>
+            Contains properties of a transform package (.MST).
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.#ctor(System.String)">
+            <summary>
+            Reads transform information from a transform package.
+            </summary>
+            <param name="mstFile">Path to a transform package (.MST file).</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.SummaryInfo)">
+            <summary>
+            Reads transform information from the summary information of a transform package.
+            </summary>
+            <param name="name">Filename of the transform (optional).</param>
+            <param name="transformSummaryInfo">Handle to the summary information of a transform package (.MST file).</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.ToString">
+            <summary>
+            Returns the name of the transform.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.Name">
+            <summary>
+            Gets the filename of the transform.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.TargetProductCode">
+            <summary>
+            Gets the target product code of the transform.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.TargetProductVersion">
+            <summary>
+            Gets the target product version of the transform.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.UpgradeProductCode">
+            <summary>
+            Gets the upgrade product code of the transform.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.UpgradeProductVersion">
+            <summary>
+            Gets the upgrade product version of the transform.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.UpgradeCode">
+            <summary>
+            Gets the upgrade code of the transform.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.TargetPlatform">
+            <summary>
+            Gets the target platform of the transform.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.TargetLanguage">
+            <summary>
+            Gets the target language of the transform, or 0 if the transform is language-neutral.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Package.TransformInfo.Validations">
+            <summary>
+            Gets the validation flags specified when the transform was generated.
+            </summary>
+        </member>
+    </members>
+</doc>
diff --git a/sdk/Microsoft.Deployment.WindowsInstaller.dll b/sdk/Microsoft.Deployment.WindowsInstaller.dll
new file mode 100755
index 0000000..bf179ae
--- /dev/null
+++ b/sdk/Microsoft.Deployment.WindowsInstaller.dll
Binary files differ
diff --git a/sdk/Microsoft.Deployment.WindowsInstaller.xml b/sdk/Microsoft.Deployment.WindowsInstaller.xml
new file mode 100644
index 0000000..c7ed5b6
--- /dev/null
+++ b/sdk/Microsoft.Deployment.WindowsInstaller.xml
@@ -0,0 +1,7334 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Microsoft.Deployment.WindowsInstaller</name>
+    </assembly>
+    <members>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ColumnCollection">
+            <summary>
+            Collection of column information related to a <see cref="T:Microsoft.Deployment.WindowsInstaller.TableInfo"/> or
+            <see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.#ctor(System.Collections.Generic.ICollection{Microsoft.Deployment.WindowsInstaller.ColumnInfo})">
+            <summary>
+            Creates a new ColumnCollection based on a specified list of columns.
+            </summary>
+            <param name="columns">columns to be added to the new collection</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.#ctor(Microsoft.Deployment.WindowsInstaller.View)">
+            <summary>
+            Creates a new ColumnCollection that is associated with a database table.
+            </summary>
+            <param name="view">view that contains the columns</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Add(Microsoft.Deployment.WindowsInstaller.ColumnInfo)">
+            <summary>
+            Not supported because the collection is read-only.
+            </summary>
+            <param name="item">information about the column being added</param>
+            <exception cref="T:System.InvalidOperationException">the collection is read-only</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Clear">
+            <summary>
+            Not supported because the collection is read-only.
+            </summary>
+            <exception cref="T:System.InvalidOperationException">the collection is read-only</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Contains(System.String)">
+            <summary>
+            Checks if a column with a given name exists in the collection.
+            </summary>
+            <param name="columnName">case-sensitive name of the column to look for</param>
+            <returns>true if the column exists in the collection, false otherwise</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.System#Collections#Generic#ICollection{Microsoft#Deployment#WindowsInstaller#ColumnInfo}#Contains(Microsoft.Deployment.WindowsInstaller.ColumnInfo)">
+            <summary>
+            Checks if a column with a given name exists in the collection.
+            </summary>
+            <param name="column">column to look for, with case-sensitive name</param>
+            <returns>true if the column exists in the collection, false otherwise</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.IndexOf(System.String)">
+            <summary>
+            Gets the index of a column within the collection.
+            </summary>
+            <param name="columnName">case-sensitive name of the column to look for</param>
+            <returns>0-based index of the column, or -1 if not found</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.CopyTo(Microsoft.Deployment.WindowsInstaller.ColumnInfo[],System.Int32)">
+            <summary>
+            Copies the columns from this collection into an array.
+            </summary>
+            <param name="array">destination array to be filed</param>
+            <param name="arrayIndex">offset into the destination array where copying begins</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.System#Collections#Generic#ICollection{Microsoft#Deployment#WindowsInstaller#ColumnInfo}#Remove(Microsoft.Deployment.WindowsInstaller.ColumnInfo)">
+            <summary>
+            Not supported because the collection is read-only.
+            </summary>
+            <param name="column">column to remove</param>
+            <returns>true if the column was removed, false if it was not found</returns>
+            <exception cref="T:System.InvalidOperationException">the collection is read-only</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.GetEnumerator">
+            <summary>
+            Gets an enumerator over the columns in the collection.
+            </summary>
+            <returns>An enumerator of ColumnInfo objects.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            Gets an enumerator over the columns in the collection.
+            </summary>
+            <returns>An enumerator of ColumnInfo objects.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.GetViewColumns(Microsoft.Deployment.WindowsInstaller.View)">
+            <summary>
+            Creates ColumnInfo objects for the associated view.
+            </summary>
+            <returns>dynamically-generated list of columns</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.GetViewColumns(Microsoft.Deployment.WindowsInstaller.View,System.Boolean)">
+            <summary>
+            Gets a list of column names or column-definition-strings for the
+            associated view.
+            </summary>
+            <param name="view">the view to that defines the columns</param>
+            <param name="types">true to return types (column definition strings),
+            false to return names</param>
+            <returns>list of column names or types</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Count">
+            <summary>
+            Gets the number of columns in the collection.
+            </summary>
+            <value>number of columns in the collection</value>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnCollection.IsReadOnly">
+            <summary>
+            Gets a boolean value indicating whether the collection is read-only.
+            A ColumnCollection is read-only if it is associated with a <see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>
+            or a read-only <see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.
+            </summary>
+            <value>read-only status of the collection</value>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Item(System.Int32)">
+            <summary>
+            Gets information about a specific column in the collection.
+            </summary>
+            <param name="columnIndex">1-based index into the column collection</param>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="columnIndex"/> is less
+            than 1 or greater than the number of columns in the collection</exception>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Item(System.String)">
+            <summary>
+            Gets information about a specific column in the collection.
+            </summary>
+            <param name="columnName">case-sensitive name of a column collection</param>
+            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="columnName"/> does
+            not exist in the collection</exception>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnCollection.FormatString">
+            <summary>
+            Gets a string suitable for printing all the values of a record containing these columns.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ComponentAttributes">
+            <summary>
+            Available values for the Attributes column of the Component table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.None">
+            <summary>
+            Local only - Component cannot be run from source. 
+            </summary>
+            <remarks><p>
+            Set this value for all components belonging to a feature to prevent the feature from being run-from-network or
+            run-from-source. Note that if a feature has no components, the feature always shows run-from-source and
+            run-from-my-computer as valid options.
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.SourceOnly">
+            <summary>
+            Component can only be run from source.
+            </summary>
+            <remarks><p>
+            Set this bit for all components belonging to a feature to prevent the feature from being run-from-my-computer.
+            Note that if a feature has no components, the feature always shows run-from-source and run-from-my-computer
+            as valid options.
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.Optional">
+            <summary>
+            Component can run locally or from source.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.RegistryKeyPath">
+            <summary>
+            If this bit is set, the value in the KeyPath column is used as a key into the Registry table.
+            </summary>
+            <remarks><p>
+            If the Value field of the corresponding record in the Registry table is null, the Name field in that record
+            must not contain "+", "-", or "*". For more information, see the description of the Name field in Registry
+            table.
+            <p>Setting this bit is recommended for registry entries written to the HKCU hive. This ensures the installer
+            writes the necessary HKCU registry entries when there are multiple users on the same machine.</p>
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.SharedDllRefCount">
+            <summary>
+            If this bit is set, the installer increments the reference count in the shared DLL registry of the component's
+            key file. If this bit is not set, the installer increments the reference count only if the reference count
+            already exists.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.Permanent">
+            <summary>
+            If this bit is set, the installer does not remove the component during an uninstall. The installer registers
+            an extra system client for the component in the Windows Installer registry settings.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.OdbcDataSource">
+            <summary>
+            If this bit is set, the value in the KeyPath column is a key into the ODBCDataSource table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.Transitive">
+            <summary>
+            If this bit is set, the installer reevaluates the value of the statement in the Condition column upon a reinstall.
+            If the value was previously False and has changed to true, the installer installs the component. If the value
+            was previously true and has changed to false, the installer removes the component even if the component has
+            other products as clients.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.NeverOverwrite">
+            <summary>
+            If this bit is set, the installer does not install or reinstall the component if a key path file or a key path
+            registry entry for the component already exists. The application does register itself as a client of the component.
+            </summary>
+            <remarks><p>
+            Use this flag only for components that are being registered by the Registry table. Do not use this flag for
+            components registered by the AppId, Class, Extension, ProgId, MIME, and Verb tables.
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.SixtyFourBit">
+            <summary>
+            Set this bit to mark this as a 64-bit component. This attribute facilitates the installation of packages that
+            include both 32-bit and 64-bit components. If this bit is not set, the component is registered as a 32-bit component.
+            </summary>
+            <remarks><p>
+            If this is a 64-bit component replacing a 32-bit component, set this bit and assign a new GUID in the
+            ComponentId column.
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.DisableRegistryReflection">
+            <summary>
+            Set this bit to disable registry reflection on all existing and new registry keys affected by this component.
+            </summary>
+            <remarks><p>
+            If this bit is set, the Windows Installer calls the RegDisableReflectionKey on each key being accessed by the component.
+            This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems.
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.UninstallOnSupersedence">
+            <summary>
+            [MSI 4.5] Set this bit for a component in a patch package to prevent leaving orphan components on the computer.
+            </summary>
+            <remarks><p>
+            If a subsequent patch is installed, marked with the SupersedeEarlier flag in its MsiPatchSequence
+            table to supersede the first patch, Windows Installer 4.5 can unregister and uninstall components marked with the
+            UninstallOnSupersedence value. If the component is not marked with this bit, installation of a superseding patch can leave
+            behind an unused component on the computer.
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.Shared">
+            <summary>
+            [MSI 4.5] If a component is marked with this attribute value in at least one package installed on the system,
+            the installer treats the component as marked in all packages. If a package that shares the marked component
+            is uninstalled, Windows Installer 4.5 can continue to share the highest version of the component on the system,
+            even if that highest version was installed by the package that is being uninstalled.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ControlAttributes">
+            <summary>
+            Defines flags for the Attributes column of the Control table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Visible">
+            <summary>If this bit is set, the control is visible on the dialog box.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Enabled">
+            <summary>specifies if the given control is enabled or disabled. Most controls appear gray when disabled.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Sunken">
+            <summary>If this bit is set, the control is displayed with a sunken, three dimensional look.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Indirect">
+            <summary>The Indirect control attribute specifies whether the value displayed or changed by this control is referenced indirectly.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Integer">
+            <summary>If this bit is set on a control, the associated property specified in the Property column of the Control table is an integer.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.RightToLeftReadingOrder">
+            <summary>If this bit is set the text in the control is displayed in a right-to-left reading order.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.RightAligned">
+            <summary>If this style bit is set, text in the control is aligned to the right.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.LeftScroll">
+            <summary>If this bit is set, the scroll bar is located on the left side of the control, otherwise it is on the right.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Bidirectional">
+            <summary>This is a combination of the RightToLeftReadingOrder, RightAligned, and LeftScroll attributes.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Transparent">
+            <summary>If this bit is set on a text control, the control is displayed transparently with the background showing through the control where there are no characters.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.NoPrefix">
+            <summary>If this bit is set on a text control, the occurrence of the character "&amp;" in a text string is displayed as itself.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.NoWrap">
+            <summary>If this bit is set the text in the control is displayed on a single line.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.FormatSize">
+            <summary>If this bit is set for a text control, the control will automatically attempt to format the displayed text as a number representing a count of bytes.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.UsersLanguage">
+            <summary>If this bit is set, fonts are created using the user's default UI code page. Otherwise it is created using the database code page.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Multiline">
+            <summary>If this bit is set on an Edit control, the installer creates a multiple line edit control with a vertical scroll bar.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.PasswordInput">
+            <summary>This attribute creates an edit control for entering passwords. The control displays each character as an asterisk (*) as they are typed into the control.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Progress95">
+            <summary>If this bit is set on a ProgressBar control, the bar is drawn as a series of small rectangles in Microsoft Windows 95-style. Otherwise it is drawn as a single continuous rectangle.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.RemovableVolume">
+            <summary>If this bit is set, the control shows removable volumes.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.FixedVolume">
+            <summary>If this bit is set, the control shows fixed internal hard drives.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.RemoteVolume">
+            <summary>If this bit is set, the control shows remote volumes.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.CdromVolume">
+            <summary>If this bit is set, the control shows CD-ROM volumes.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.RamDiskVolume">
+            <summary>If this bit is set, the control shows RAM disk volumes.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.FloppyVolume">
+            <summary>If this bit is set, the control shows floppy volumes.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.ShowRollbackCost">
+            <summary>Specifies whether or not the rollback backup files are included in the costs displayed by the VolumeCostList control.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Sorted">
+            <summary>If this bit is set, the items listed in the control are displayed in a specified order. Otherwise, items are displayed in alphabetical order.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.ComboList">
+            <summary>If this bit is set on a combo box, the edit field is replaced by a static text field. This prevents a user from entering a new value and requires the user to choose only one of the predefined values.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.PushLike">
+            <summary>If this bit is set on a check box or a radio button group, the button is drawn with the appearance of a push button, but its logic stays the same.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Bitmap">
+            <summary>If this bit is set, the text in the control is replaced by a bitmap image. The Text column in the Control table is a foreign key into the Binary table.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.Icon">
+            <summary>If this bit is set, text is replaced by an icon image and the Text column in the Control table is a foreign key into the Binary table.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.FixedSize">
+            <summary>If this bit is set, the picture is cropped or centered in the control without changing its shape or size.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.IconSize16">
+            <summary>Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.IconSize32">
+            <summary>Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.IconSize48">
+            <summary>Specifies which size of the icon image to load. If none of the bits are set, the first image is loaded.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.ElevationShield">
+            <summary>If this bit is set, and the installation is not yet running with elevated privileges, the control is created with a UAC icon.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ControlAttributes.HasBorder">
+            <summary>If this bit is set, the RadioButtonGroup has text and a border displayed around it.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.CustomActionTypes">
+            <summary>
+            Defines flags for the Type column of the CustomAction table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.None">
+            <summary>Unspecified custom action type.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Dll">
+            <summary>Target = entry point name</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Exe">
+            <summary>Target = command line args</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.TextData">
+            <summary>Target = text string to be formatted and set into property</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.JScript">
+            <summary>Target = entry point name, null if none to call</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.VBScript">
+            <summary>Target = entry point name, null if none to call</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Install">
+            <summary>Target = property list for nested engine initialization</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.SourceFile">
+            <summary>Source = File.File, file part of installation</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Directory">
+            <summary>Source = Directory.Directory, folder containing existing file</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Property">
+            <summary>Source = Property.Property, full path to executable</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Continue">
+            <summary>Ignore action return status, continue running</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Async">
+            <summary>Run asynchronously</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.FirstSequence">
+            <summary>Skip if UI sequence already run</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.OncePerProcess">
+            <summary>Skip if UI sequence already run in same process</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.ClientRepeat">
+            <summary>Run on client only if UI already run on client</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.InScript">
+            <summary>Queue for execution within script</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Rollback">
+            <summary>In conjunction with InScript: queue in Rollback script</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.Commit">
+            <summary>In conjunction with InScript: run Commit ops from script on success</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.NoImpersonate">
+            <summary>No impersonation, run in system context</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.TSAware">
+            <summary>Impersonate for per-machine installs on TS machines</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.SixtyFourBitScript">
+            <summary>Script requires 64bit process</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.HideTarget">
+            <summary>Don't record the contents of the Target field in the log file</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionTypes.PatchUninstall">
+            <summary>The custom action runs only when a patch is being uninstalled</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.DialogAttributes">
+            <summary>
+            Defines flags for the Attributes column of the Dialog table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.Visible">
+            <summary>If this bit is set, the dialog is originally created as visible, otherwise it is hidden.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.Modal">
+            <summary>If this bit is set, the dialog box is modal, other dialogs of the same application cannot be put on top of it, and the dialog keeps the control while it is running.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.Minimize">
+            <summary>If this bit is set, the dialog box can be minimized. This bit is ignored for modal dialog boxes, which cannot be minimized.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.SysModal">
+            <summary>If this style bit is set, the dialog box will stop all other applications and no other applications can take the focus.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.KeepModeless">
+            <summary>If this bit is set, the other dialogs stay alive when this dialog box is created.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.TrackDiskSpace">
+            <summary>If this bit is set, the dialog box periodically calls the installer. If the property changes, it notifies the controls on the dialog.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.UseCustomPalette">
+            <summary>If this bit is set, the pictures on the dialog box are created with the custom palette (one per dialog received from the first control created).</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.RightToLeftReadingOrder">
+            <summary>If this style bit is set the text in the dialog box is displayed in right-to-left-reading order.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.RightAligned">
+            <summary>If this style bit is set, the text is aligned on the right side of the dialog box.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.LeftScroll">
+            <summary>If this style bit is set, the scroll bar is located on the left side of the dialog box.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.Bidirectional">
+            <summary>This is a combination of the RightToLeftReadingOrder, RightAligned, and the LeftScroll dialog style bits.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DialogAttributes.Error">
+            <summary>If this bit is set, the dialog box is an error dialog.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.FeatureAttributes">
+            <summary>
+            Available values for the Attributes column of the Feature table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.None">
+            <summary>
+            Favor local - Components of this feature that are not marked for installation from source are installed locally.
+            </summary>
+            <remarks><p>
+            A component shared by two or more features, some of which are set to FavorLocal and some to FavorSource,
+            is installed locally. Components marked <see cref="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.SourceOnly"/> in the Component
+            table are always run from the source CD/server. The bits FavorLocal and FavorSource work with features not
+            listed by the ADVERTISE property.
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.FavorSource">
+            <summary>
+            Components of this feature not marked for local installation are installed to run from the source
+            CD-ROM or server.
+            </summary>
+            <remarks><p>
+            A component shared by two or more features, some of which are set to FavorLocal and some to FavorSource,
+            is installed to run locally. Components marked <see cref="F:Microsoft.Deployment.WindowsInstaller.ComponentAttributes.None"/> (local-only) in the
+            Component table are always installed locally. The bits FavorLocal and FavorSource work with features
+            not listed by the ADVERTISE property.
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.FollowParent">
+            <summary>
+            Set this attribute and the state of the feature is the same as the state of the feature's parent.
+            You cannot use this option if the feature is located at the root of a feature tree.
+            </summary>
+            <remarks><p>
+            Omit this attribute and the feature state is determined according to DisallowAdvertise and
+            FavorLocal and FavorSource.
+            <p>To guarantee that the child feature's state always follows the state of its parent, even when the
+            child and parent are initially set to absent in the SelectionTree control, you must include both
+            FollowParent and UIDisallowAbsent in the attributes of the child feature.</p>
+            <p>Note that if you set FollowParent without setting UIDisallowAbsent, the installer cannot force
+            the child feature out of the absent state. In this case, the child feature matches the parent's
+            installation state only if the child is set to something other than absent.</p>
+            <p>Set FollowParent and UIDisallowAbsent to ensure a child feature follows the state of the parent feature.</p>
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.FavorAdvertise">
+            <summary>
+            Set this attribute and the feature state is Advertise.
+            </summary>
+            <remarks><p>
+            If the feature is listed by the ADDDEFAULT property this bit is ignored and the feature state is determined
+            according to FavorLocal and FavorSource.
+            <p>Omit this attribute and the feature state is determined according to DisallowAdvertise and FavorLocal
+            and FavorSource.</p>
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.DisallowAdvertise">
+            <summary>
+            Set this attribute to prevent the feature from being advertised.
+            </summary>
+            <remarks><p>
+            Note that this bit works only with features that are listed by the ADVERTISE property.
+            <p>Set this attribute and if the listed feature is not a parent or child, the feature is installed according to
+            FavorLocal and FavorSource.</p>
+            <p>Set this attribute for the parent of a listed feature and the parent is installed.</p>
+            <p>Set this attribute for the child of a listed feature and the state of the child is Absent.</p>
+            <p>Omit this attribute and if the listed feature is not a parent or child, the feature state is Advertise.</p>
+            <p>Omit this attribute and if the listed feature is a parent or child, the state of both features is Advertise.</p>
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.UIDisallowAbsent">
+            <summary>
+            Set this attribute and the user interface does not display an option to change the feature state
+            to Absent. Setting this attribute forces the feature to the installation state, whether or not the
+            feature is visible in the UI.
+            </summary>
+            <remarks><p>
+            Omit this attribute and the user interface displays an option to change the feature state to Absent.
+            <p>Set FollowParent and UIDisallowAbsent to ensure a child feature follows the state of the parent feature.</p>
+            <p>Setting this attribute not only affects the UI, but also forces the feature to the install state whether
+            the feature is visible in the UI or not.</p>
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.NoUnsupportedAdvertise">
+            <summary>
+            Set this attribute and advertising is disabled for the feature if the operating system shell does not
+            support Windows Installer descriptors. 
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.FileAttributes">
+            <summary>
+            Available values for the Attributes column of the File table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.None">
+            <summary>No attributes.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.ReadOnly">
+            <summary>Read-only.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.Hidden">
+            <summary>Hidden.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.System">
+            <summary>System.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.Vital">
+            <summary>The file is vital for the proper operation of the component to which it belongs.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.Checksum">
+            <summary>The file contains a valid checksum. A checksum is required to repair a file that has become corrupted.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.PatchAdded">
+            <summary>This bit must only be added by a patch and if the file is being added by the patch.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.NonCompressed">
+            <summary>
+            The file's source type is uncompressed. If set, ignore the WordCount summary information property. If neither
+            Noncompressed nor Compressed are set, the compression state of the file is specified by the WordCount summary
+            information property. Do not set both Noncompressed and Compressed.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.Compressed">
+            <summary>
+            The file's source type is compressed. If set, ignore the WordCount summary information property. If neither
+            Noncompressed or Compressed are set, the compression state of the file is specified by the WordCount summary
+            information property. Do not set both Noncompressed and Compressed.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.IniFileAction">
+            <summary>
+            Defines values for the Action column of the IniFile and RemoveIniFile tables.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.IniFileAction.AddLine">
+            <summary>Creates or updates a .ini entry.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.IniFileAction.CreateLine">
+            <summary>Creates a .ini entry only if the entry does not already exist.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.IniFileAction.RemoveLine">
+            <summary>Deletes .ini entry.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.IniFileAction.AddTag">
+            <summary>Creates a new entry or appends a new comma-separated value to an existing entry.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.IniFileAction.RemoveTag">
+            <summary>Deletes a tag from a .ini entry.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.LocatorTypes">
+            <summary>
+            Defines values for the Type column of the CompLocator, IniLocator, and RegLocator tables.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.LocatorTypes.Directory">
+            <summary>Key path is a directory.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.LocatorTypes.FileName">
+            <summary>Key path is a file name.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.LocatorTypes.RawValue">
+            <summary>Key path is a registry value.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.LocatorTypes.SixtyFourBit">
+            <summary>Set this bit to have the installer search the 64-bit portion of the registry.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.RegistryRoot">
+            <summary>
+            Defines values for the Root column of the Registry, RemoveRegistry, and RegLocator tables.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.RegistryRoot.UserOrMachine">
+            <summary>HKEY_CURRENT_USER for a per-user installation,
+            or HKEY_LOCAL_MACHINE for a per-machine installation.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.RegistryRoot.ClassesRoot">
+            <summary>HKEY_CLASSES_ROOT</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.RegistryRoot.CurrentUser">
+            <summary>HKEY_CURRENT_USER</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.RegistryRoot.LocalMachine">
+            <summary>HKEY_LOCAL_MACHINE</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.RegistryRoot.Users">
+            <summary>HKEY_USERS</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.RemoveFileModes">
+            <summary>
+            Defines values for the InstallMode column of the RemoveFile table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.RemoveFileModes.None">
+            <summary>Never remove.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.RemoveFileModes.OnInstall">
+            <summary>Remove when the associated component is being installed (install state = local or source).</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.RemoveFileModes.OnRemove">
+            <summary>Remove when the associated component is being removed (install state = absent).</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ServiceAttributes">
+            <summary>
+            Defines values for the ServiceType, StartType, and ErrorControl columns of the ServiceInstall table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.None">
+            <summary>No flags.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.OwnProcess">
+            <summary>A Win32 service that runs its own process.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.ShareProcess">
+            <summary>A Win32 service that shares a process.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.Interactive">
+            <summary>A Win32 service that interacts with the desktop.
+            This value cannot be used alone and must be added to either
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.OwnProcess"/> or <see cref="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.ShareProcess"/>.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.AutoStart">
+            <summary>Service starts during startup of the system.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.DemandStart">
+            <summary>Service starts when the service control manager calls the StartService function.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.Disabled">
+            <summary>Specifies a service that can no longer be started.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.ErrorMessage">
+            <summary>Logs the error, displays a message box and continues the startup operation.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.ErrorCritical">
+            <summary>Logs the error if it is possible and the system is restarted with the last configuration
+            known to be good. If the last-known-good configuration is being started, the startup operation fails.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceAttributes.ErrorControlVital">
+            <summary>When combined with other error flags, specifies that the overall install should fail if
+            the service cannot be installed into the system.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents">
+            <summary>
+            Defines values for the Event column of the ServiceControl table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.None">
+            <summary>No control events.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.Start">
+            <summary>During an install, starts the service during the StartServices action.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.Stop">
+            <summary>During an install, stops the service during the StopServices action.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.Delete">
+            <summary>During an install, deletes the service during the DeleteServices action.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.UninstallStart">
+            <summary>During an uninstall, starts the service during the StartServices action.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.UninstallStop">
+            <summary>During an uninstall, stops the service during the StopServices action.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ServiceControlEvents.UninstallDelete">
+            <summary>During an uninstall, deletes the service during the DeleteServices action.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.TextStyles">
+            <summary>
+            Defines values for the StyleBits column of the TextStyle table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TextStyles.Bold">
+            <summary>Bold</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TextStyles.Italic">
+            <summary>Italic</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TextStyles.Underline">
+            <summary>Underline</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TextStyles.Strike">
+            <summary>Strike out</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes">
+            <summary>
+            Defines values for the Attributes column of the Upgrade table.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.MigrateFeatures">
+            <summary>Migrates feature states by enabling the logic in the MigrateFeatureStates action.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.OnlyDetect">
+            <summary>Detects products and applications but does not remove.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.IgnoreRemoveFailure">
+            <summary>Continues installation upon failure to remove a product or application.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.VersionMinInclusive">
+            <summary>Detects the range of versions including the value in VersionMin.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.VersionMaxInclusive">
+            <summary>Dectects the range of versions including the value in VersionMax.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UpgradeAttributes.LanguagesExclusive">
+            <summary>Detects all languages, excluding the languages listed in the Language column.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ColumnInfo">
+            <summary>
+            Defines a single column of a table in an installer database.
+            </summary>
+            <remarks>Once created, a ColumnInfo object is immutable.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnInfo.#ctor(System.String,System.String)">
+            <summary>
+            Creates a new ColumnInfo object from a column definition.
+            </summary>
+            <param name="name">name of the column</param>
+            <param name="columnDefinition">column definition string</param>
+            <seealso cref="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.ColumnDefinitionString"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnInfo.#ctor(System.String,System.Type,System.Int32,System.Boolean)">
+            <summary>
+            Creates a new ColumnInfo object from a list of parameters.
+            </summary>
+            <param name="name">name of the column</param>
+            <param name="type">type of the column; must be one of the following:
+            Int16, Int32, String, or Stream</param>
+            <param name="size">the maximum number of characters for String columns;
+            ignored for other column types</param>
+            <param name="isRequired">true if the column is required to have a non-null value</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnInfo.#ctor(System.String,System.Type,System.Int32,System.Boolean,System.Boolean,System.Boolean)">
+            <summary>
+            Creates a new ColumnInfo object from a list of parameters.
+            </summary>
+            <param name="name">name of the column</param>
+            <param name="type">type of the column; must be one of the following:
+            Int16, Int32, String, or Stream</param>
+            <param name="size">the maximum number of characters for String columns;
+            ignored for other column types</param>
+            <param name="isRequired">true if the column is required to have a non-null value</param>
+            <param name="isTemporary">true to if the column is only in-memory and
+            not persisted with the database</param>
+            <param name="isLocalizable">for String columns, indicates the column
+            is localizable; ignored for other column types</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ColumnInfo.ToString">
+            <summary>
+            Gets the name of the column.
+            </summary>
+            <returns>Name of the column.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.Name">
+            <summary>
+            Gets the name of the column.
+            </summary>
+            <value>name of the column</value>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.Type">
+            <summary>
+            Gets the type of the column as a System.Type.  This is one of the following: Int16, Int32, String, or Stream
+            </summary>
+            <value>type of the column</value>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.DBType">
+            <summary>
+            Gets the type of the column as an integer that can be cast to a System.Data.DbType.  This is one of the following: Int16, Int32, String, or Binary
+            </summary>
+            <value>equivalent DbType of the column as an integer</value>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.Size">
+            <summary>
+            Gets the size of the column.
+            </summary>
+            <value>The size of integer columns this is either 2 or 4.  For string columns this is the maximum
+            recommended length of the string, or 0 for unlimited length.  For stream columns, 0 is returned.</value>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.IsRequired">
+            <summary>
+            Gets a value indicating whether the column must be non-null when inserting a record.
+            </summary>
+            <value>required status of the column</value>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.IsTemporary">
+            <summary>
+            Gets a value indicating whether the column is temporary. Temporary columns are not persisted
+            when the database is saved to disk.
+            </summary>
+            <value>temporary status of the column</value>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.IsLocalizable">
+            <summary>
+            Gets a value indicating whether the column is a string column that is localizable.
+            </summary>
+            <value>localizable status of the column</value>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.SqlCreateString">
+            <summary>
+            Gets an SQL fragment that can be used to create this column within a CREATE TABLE statement.
+            </summary>
+            <value>SQL fragment to be used for creating the column</value>
+            <remarks><p>
+            Examples:
+            <list type="bullet">
+            <item>LONG</item>
+            <item>SHORT TEMPORARY</item>
+            <item>CHAR(0) LOCALIZABLE</item>
+            <item>CHAR(72) NOT NULL LOCALIZABLE</item>
+            <item>OBJECT</item>
+            </list>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ColumnInfo.ColumnDefinitionString">
+            <summary>
+            Gets a short string defining the type and size of the column. 
+            </summary>
+            <value>
+            The definition string consists
+            of a single letter representing the data type followed by the width of the column (in characters
+            when applicable, bytes otherwise). A width of zero designates an unbounded width (for example,
+            long text fields and streams). An uppercase letter indicates that null values are allowed in
+            the column.
+            </value>
+            <remarks><p>
+            <list>
+            <item>s? - String, variable length (?=1-255)</item>
+            <item>s0 - String, variable length</item>
+            <item>i2 - Short integer</item>
+            <item>i4 - Long integer</item>
+            <item>v0 - Binary Stream</item>
+            <item>g? - Temporary string (?=0-255)</item>
+            <item>j? - Temporary integer (?=0,1,2,4)</item>
+            <item>l? - Localizable string, variable length (?=1-255)</item>
+            <item>l0 - Localizable string, variable length</item>
+            </list>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection">
+            <summary>
+            Accessor for information about components within the context of an installation session.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection.Contains(System.String)">
+            <summary>
+            Checks if the collection contains a component.
+            </summary>
+            <param name="component">name of the component</param>
+            <returns>true if the component is in the collection, else false</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection.CopyTo(Microsoft.Deployment.WindowsInstaller.ComponentInfo[],System.Int32)">
+            <summary>
+            Copies the features into an array.
+            </summary>
+            <param name="array">array that receives the features</param>
+            <param name="arrayIndex">offset into the array</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection.GetEnumerator">
+            <summary>
+            Enumerates the components in the collection.
+            </summary>
+            <returns>an enumerator over all features in the collection</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection.Item(System.String)">
+            <summary>
+            Gets information about a component within the context of an installation session.
+            </summary>
+            <param name="component">name of the component</param>
+            <returns>component object</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInfoCollection.Count">
+            <summary>
+            Gets the number of components defined for the product.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ComponentInfo">
+            <summary>
+            Provides access to information about a component within the context of an installation session.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInfo.GetCost(Microsoft.Deployment.WindowsInstaller.InstallState)">
+            <summary>
+            Gets disk space per drive required to install a component.
+            </summary>
+            <param name="installState">Requested component state</param>
+            <returns>A list of InstallCost structures, specifying the cost for each drive for the component</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumcomponentcosts.asp">MsiEnumComponentCosts</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInfo.Name">
+            <summary>
+            Gets the name of the component (primary key in the Component table).
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInfo.CurrentState">
+            <summary>
+            Gets the current install state of the designated Component.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.ArgumentException">an unknown Component was requested</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetcomponentstate.asp">MsiGetComponentState</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInfo.RequestState">
+            <summary>
+            Gets or sets the action state of the designated Component.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.ArgumentException">an unknown Component was requested</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetcomponentstate.asp">MsiGetComponentState</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetcomponentstate.asp">MsiSetComponentState</a>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ComponentInstallation">
+            <summary>
+            Represents an instance of a registered component.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallationPart">
+            <summary>
+            Subclasses of this abstract class represent an instance
+            of a registered feature or component.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallationPart.Product">
+            <summary>
+            Gets the product that this item is a part of.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallationPart.State">
+            <summary>
+            Gets the current installation state of the item.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.#ctor(System.String)">
+            <summary>
+            Creates a new ComponentInstallation, automatically detecting the
+            product that the component is a part of.
+            </summary>
+            <param name="componentCode">component GUID</param>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproductcode.asp">MsiGetProductCode</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.#ctor(System.String,System.String)">
+            <summary>
+            Creates a new ComponentInstallation for a component installed by a
+            specific product.
+            </summary>
+            <param name="componentCode">component GUID</param>
+            <param name="productCode">ProductCode GUID</param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.AllComponents">
+            <summary>
+            Gets the set of installed components for all products.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumcomponents.asp">MsiEnumComponents</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.ComponentCode">
+            <summary>
+            Gets the component code (GUID) of the component.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.ClientProducts">
+            <summary>
+            Gets all client products of a specified component.
+            </summary>
+            <returns>enumeration over all client products of the component</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
+            <remarks><p>
+            Because clients are not ordered, any new component has an arbitrary index.
+            This means that the property may return clients in any order.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumclients.asp">MsiEnumClients</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.State">
+            <summary>
+            Gets the installed state of a component.
+            </summary>
+            <returns>the installed state of the component, or InstallState.Unknown
+            if this component is not part of a product</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetcomponentpath.asp">MsiGetComponentPath</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.Path">
+            <summary>
+            Gets the full path to an installed component. If the key path for the component is a
+            registry key then the registry key is returned.
+            </summary>
+            <returns>The file or registry keypath to the component, or null if the component is not available.</returns>
+            <exception cref="T:System.ArgumentException">An unknown product or component was specified</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
+            <remarks><p>
+            If the component is a registry key, the registry roots are represented numerically.
+            For example, a registry path of "HKEY_CURRENT_USER\SOFTWARE\Microsoft" would be returned
+            as "01:\SOFTWARE\Microsoft". The registry roots returned are defined as follows:
+            HKEY_CLASSES_ROOT=00, HKEY_CURRENT_USER=01, HKEY_LOCAL_MACHINE=02, HKEY_USERS=03,
+            HKEY_PERFORMANCE_DATA=04
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetcomponentpath.asp">MsiGetComponentPath</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msilocatecomponent.asp">MsiLocateComponent</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.Qualifiers">
+            <summary>
+            Gets the set of registered qualifiers for the component.
+            </summary>
+            <returns>Enumeration of the qulifiers for the component.</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
+            <remarks><p>
+            Because qualifiers are not ordered, any new qualifier has an arbitrary index,
+            meaning the function can return qualifiers in any order.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumcomponentqualifiers.asp">MsiEnumComponentQualifiers</a>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.Qualifier">
+            <summary>
+            Holds data about a component qualifier.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumcomponentqualifiers.asp">MsiEnumComponentQualifiers</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.Qualifier.QualifierCode">
+            <summary>
+            Gets the qualifier code.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ComponentInstallation.Qualifier.Data">
+            <summary>
+            Gets the qualifier data.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.CustomActionAttribute">
+            <summary>
+            Marks a method as a custom action entry point.
+            </summary>
+            <remarks><p>
+            A custom action method must be defined as public and static,
+            take a single <see cref="T:Microsoft.Deployment.WindowsInstaller.Session"/> object as a parameter,
+            and return an <see cref="T:Microsoft.Deployment.WindowsInstaller.ActionResult"/> enumeration value.
+            </p></remarks>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionAttribute.name">
+            <summary>
+            Name of the custom action entrypoint, or null if the same as the method name.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionAttribute.#ctor">
+            <summary>
+            Marks a method as a custom action entry point.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionAttribute.#ctor(System.String)">
+            <summary>
+            Marks a method as a custom action entry point.
+            </summary>
+            <param name="name">Name of the function to be exported,
+            defaults to the name of this method</param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionAttribute.Name">
+            <summary>
+            Gets or sets the name of the custom action entrypoint. A null
+            value defaults to the name of the method.
+            </summary>
+            <value>name of the custom action entrypoint, or null if none was specified</value>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.CustomActionData">
+            <summary>
+            Contains a collection of key-value pairs suitable for passing between
+            immediate and deferred/rollback/commit custom actions.
+            </summary>
+            <remarks>
+            Call the <see cref="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ToString"/> method to get a string
+            suitable for storing in a property and reconstructing the custom action data later.
+            </remarks>
+            <seealso cref="P:Microsoft.Deployment.WindowsInstaller.Session.CustomActionData"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Session.DoAction(System.String,Microsoft.Deployment.WindowsInstaller.CustomActionData)"/>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.CustomActionData.PropertyName">
+            <summary>
+            "CustomActionData" literal property name.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.#ctor">
+            <summary>
+            Creates a new empty custom action data object.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.#ctor(System.String)">
+            <summary>
+            Reconstructs a custom action data object from data that was previously
+            persisted in a string.
+            </summary>
+            <param name="keyValueList">Previous output from <see cref="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ToString"/>.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Add(System.String,System.String)">
+            <summary>
+            Adds a key and value to the data collection.
+            </summary>
+            <param name="key">Case-sensitive data key.</param>
+            <param name="value">Data value (may be null).</param>
+            <exception cref="T:System.ArgumentException">the key does not consist solely of letters,
+            numbers, and the period, underscore, and space characters.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.AddObject``1(System.String,``0)">
+            <summary>
+            Adds a value to the data collection, using XML serialization to persist the object as a string.
+            </summary>
+            <param name="key">Case-sensitive data key.</param>
+            <param name="value">Data value (may be null).</param>
+            <exception cref="T:System.ArgumentException">the key does not consist solely of letters,
+            numbers, and the period, underscore, and space characters.</exception>
+            <exception cref="T:System.NotSupportedException">The value type does not support XML serialization.</exception>
+            <exception cref="T:System.InvalidOperationException">The value could not be serialized.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.GetObject``1(System.String)">
+            <summary>
+            Gets a value from the data collection, using XML serialization to load the object from a string.
+            </summary>
+            <param name="key">Case-sensitive data key.</param>
+            <exception cref="T:System.InvalidOperationException">The value could not be deserialized.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ContainsKey(System.String)">
+            <summary>
+            Determines whether the data contains an item with the specified key.
+            </summary>
+            <param name="key">Case-sensitive data key.</param>
+            <returns>true if the data contains an item with the key; otherwise, false</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Remove(System.String)">
+            <summary>
+            Removes the item with the specified key from the data.
+            </summary>
+            <param name="key">Case-sensitive data key.</param>
+            <returns>true if the item was successfully removed from the data;
+            false if an item with the specified key was not found</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.TryGetValue(System.String,System.String@)">
+            <summary>
+            Gets the value with the specified key.
+            </summary>
+            <param name="key">Case-sensitive data key.</param>
+            <param name="value">Value associated with the specified key, or
+            null if an item with the specified key was not found</param>
+            <returns>true if the data contains an item with the specified key; otherwise, false.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Add(System.Collections.Generic.KeyValuePair{System.String,System.String})">
+            <summary>
+            Adds an item with key and value to the data collection.
+            </summary>
+            <param name="item">Case-sensitive data key, with a data value that may be null.</param>
+            <exception cref="T:System.ArgumentException">the key does not consist solely of letters,
+            numbers, and the period, underscore, and space characters.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Clear">
+            <summary>
+            Removes all items from the data.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Contains(System.Collections.Generic.KeyValuePair{System.String,System.String})">
+            <summary>
+            Determines whether the data contains a specified item.
+            </summary>
+            <param name="item">The data item to locate.</param>
+            <returns>true if the data contains the item; otherwise, false</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.CopyTo(System.Collections.Generic.KeyValuePair{System.String,System.String}[],System.Int32)">
+            <summary>
+            Copies the data to an array, starting at a particular array index.
+            </summary>
+            <param name="array">Destination array.</param>
+            <param name="arrayIndex">Index in the array at which copying begins.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Remove(System.Collections.Generic.KeyValuePair{System.String,System.String})">
+            <summary>
+            Removes an item from the data.
+            </summary>
+            <param name="item">The item to remove.</param>
+            <returns>true if the item was successfully removed from the data;
+            false if the item was not found</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.GetEnumerator">
+            <summary>
+            Returns an enumerator that iterates through the collection.
+            </summary>
+            <returns>An enumerator that can be used to iterate through the collection.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.System#Collections#IEnumerable#GetEnumerator">
+            <summary>
+            Returns an enumerator that iterates through the collection.
+            </summary>
+            <returns>An enumerator that can be used to iterate through the collection.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ToString">
+            <summary>
+            Gets a string representation of the data suitable for persisting in a property.
+            </summary>
+            <returns>Data string in the form "Key1=Value1;Key2=Value2"</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ValidateKey(System.String)">
+            <summary>
+            Ensures that a key contains valid characters.
+            </summary>
+            <param name="key">key to be validated</param>
+            <exception cref="T:System.ArgumentException">the key does not consist solely of letters,
+            numbers, and the period, underscore, and space characters.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Serialize``1(``0)">
+            <summary>
+            Serializes a value into an XML string.
+            </summary>
+            <typeparam name="T">Type of the value.</typeparam>
+            <param name="value">Value to be serialized.</param>
+            <returns>Serialized value data as a string.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Deserialize``1(System.String)">
+            <summary>
+            Deserializes a value from an XML string.
+            </summary>
+            <typeparam name="T">Expected type of the value.</typeparam>
+            <param name="value">Serialized value data.</param>
+            <returns>Deserialized value object.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Escape(System.String)">
+            <summary>
+            Escapes a value string by doubling any data-separator (semicolon) characters.
+            </summary>
+            <param name="value"></param>
+            <returns>Escaped value string</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Unescape(System.String)">
+            <summary>
+            Unescapes a value string by undoubling any doubled data-separator (semicolon) characters.
+            </summary>
+            <param name="value"></param>
+            <returns>Unescaped value string</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.Parse(System.String)">
+            <summary>
+            Loads key-value pairs from a string into the data collection.
+            </summary>
+            <param name="keyValueList">key-value pair list of the form returned by <see cref="M:Microsoft.Deployment.WindowsInstaller.CustomActionData.ToString"/></param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionData.Keys">
+            <summary>
+            Gets a collection object containing all the keys of the data.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionData.Values">
+            <summary>
+            Gets a collection containing all the values of the data.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionData.Item(System.String)">
+            <summary>
+            Gets or sets a data value with a specified key.
+            </summary>
+            <param name="key">Case-sensitive data key.</param>
+            <exception cref="T:System.ArgumentException">the key does not consist solely of letters,
+            numbers, and the period, underscore, and space characters.</exception>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionData.Count">
+            <summary>
+            Gets the number of items in the data.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.CustomActionData.IsReadOnly">
+            <summary>
+            Gets a value indicating whether the data is read-only.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.CustomActionProxy">
+            <summary>
+            Managed-code portion of the custom action proxy.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionProxy.InvokeCustomAction(System.Int32,System.String,System.IntPtr)">
+            <summary>
+            Invokes a managed custom action method.
+            </summary>
+            <param name="sessionHandle">Integer handle to the installer session.</param>
+            <param name="entryPoint">Name of the custom action entrypoint. This must
+            either map to an entrypoint definition in the <c>customActions</c>
+            config section, or be an explicit entrypoint of the form:
+            &quot;AssemblyName!Namespace.Class.Method&quot;</param>
+            <param name="remotingDelegatePtr">Pointer to a delegate used to
+            make remote API calls, if this custom action is running out-of-proc.</param>
+            <returns>The value returned by the custom action method,
+            or ERROR_INSTALL_FAILURE if the custom action could not be invoked.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionProxy.DebugBreakEnabled(System.String[])">
+            <summary>
+            Checks the "MMsiBreak" environment variable for any matching custom action names.
+            </summary>
+            <param name="names">List of names to search for in the environment
+            variable string.</param>
+            <returns>True if a match was found, else false.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionProxy.FindEntryPoint(Microsoft.Deployment.WindowsInstaller.Session,System.String,System.String@,System.String@,System.String@)">
+            <summary>
+            Locates and parses an entrypoint mapping in CustomAction.config.
+            </summary>
+            <param name="session">Installer session handle, just used for logging.</param>
+            <param name="entryPoint">Custom action entrypoint name: the key value
+            in an item in the <c>customActions</c> section of the config file.</param>
+            <param name="assemblyName">Returned display name of the assembly from
+            the entrypoint mapping.</param>
+            <param name="className">Returned class name of the entrypoint mapping.</param>
+            <param name="methodName">Returned method name of the entrypoint mapping.</param>
+            <returns>True if the entrypoint was found, false if not or if some error
+            occurred.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionProxy.GetCustomActionMethod(Microsoft.Deployment.WindowsInstaller.Session,System.String,System.String,System.String)">
+            <summary>
+            Uses reflection to load the assembly and class and find the method.
+            </summary>
+            <param name="session">Installer session handle, just used for logging.</param>
+            <param name="assemblyName">Display name of the assembly containing the
+            custom action method.</param>
+            <param name="className">Fully-qualified name of the class containing the
+            custom action method.</param>
+            <param name="methodName">Name of the custom action method.</param>
+            <returns>The method, or null if not found.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.CustomActionProxy.MethodHasCustomActionSignature(System.Reflection.MethodInfo)">
+            <summary>
+            Checks if a method has the right return and paramater types
+            for a custom action, and that it is marked by a CustomActionAttribute.
+            </summary>
+            <param name="method">Method to be checked.</param>
+            <returns>True if the method is a valid custom action, else false.</returns>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Database">
+            <summary>
+            Accesses a Windows Installer database.
+            </summary>
+            <remarks><p>
+            The <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Commit"/> method must be called before the Database is closed to write out all
+            persistent changes. If the Commit method is not called, the installer performs an implicit
+            rollback upon object destruction.
+            </p><p>
+            The client can use the following procedure for data access:<list type="number">
+            <item><description>Obtain a Database object using one of the Database constructors.</description></item> 
+            <item><description>Initiate a query using a SQL string by calling the <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.OpenView(System.String,System.Object[])"/>
+            	method of the Database.</description></item> 
+            <item><description>Set query parameters in a <see cref="T:Microsoft.Deployment.WindowsInstaller.Record"/> and execute the database
+            	query by calling the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Execute(Microsoft.Deployment.WindowsInstaller.Record)"/> method of the <see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>. This
+            	produces a result that can be fetched or updated.</description></item> 
+            <item><description>Call the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/> method of the View repeatedly to return
+            	Records.</description></item> 
+            <item><description>Update database rows of a Record object obtained by the Fetch method using
+            	one of the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> methods of the View.</description></item> 
+            <item><description>Release the query and any unfetched records by calling the <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>
+            	method of the View.</description></item> 
+            <item><description>Persist any database updates by calling the Commit method of the Database.
+            	</description></item> 
+            </list>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallerHandle">
+            <summary>
+            Base class for Windows Installer handle types (Database, View, Record, SummaryInfo).
+            </summary>
+            <remarks><p>
+            These classes implement the <see cref="T:System.IDisposable"/> interface, because they
+            hold unmanaged resources (MSI handles) that should be properly disposed
+            when no longer needed.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.#ctor(System.IntPtr,System.Boolean)">
+            <summary>
+            Constructs a handle object from a native integer handle.
+            </summary>
+            <param name="handle">Native integer handle.</param>
+            <param name="ownsHandle">true to close the handle when this object is disposed or finalized</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Dispose">
+            <summary>
+            Closes the handle.  After closing a handle, further method calls may throw an <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
+            </summary>
+            <remarks><p>
+            The finalizer of this class will NOT close the handle if it is still open,
+            because finalization can run on a separate thread from the application,
+            resulting in potential problems if handles are closed from that thread.
+            It is best that the handle be closed manually as soon as it is no longer needed,
+            as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiclosehandle.asp">MsiCloseHandle</a>
+            </p></remarks>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close">
+            <summary>
+            Closes the handle.  After closing a handle, further method calls may throw an <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
+            </summary>
+            <remarks><p>
+            The finalizer of this class will NOT close the handle if it is still open,
+            because finalization can run on a separate thread from the application,
+            resulting in potential problems if handles are closed from that thread.
+            It is best that the handle be closed manually as soon as it is no longer needed,
+            as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            This method is merely an alias for the <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Dispose"/> method.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiclosehandle.asp">MsiCloseHandle</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Equals(System.Object)">
+            <summary>
+            Tests whether this handle object is equal to another handle object.  Two handle objects are equal
+            if their types are the same and their native integer handles are the same.
+            </summary>
+            <param name="obj">The handle object to compare with the current handle object.</param>
+            <returns>true if the specified handle object is equal to the current handle object; otherwise false</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.GetHashCode">
+            <summary>
+            Gets a hash value for the handle object.
+            </summary>
+            <returns>A hash code for the handle object.</returns>
+            <remarks><p>
+            The hash code is derived from the native integer handle.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Dispose(System.Boolean)">
+            <summary>
+            Closes the handle.  After closing a handle, further method calls may throw an <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
+            </summary>
+            <param name="disposing">If true, the method has been called directly or indirectly by a user's code,
+            so managed and unmanaged resources will be disposed. If false, the method has been called by the 
+            runtime from inside the finalizer, and only unmanaged resources will be disposed.</param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Handle">
+            <summary>
+            Gets the native integer handle.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallerHandle.IsClosed">
+            <summary>
+            Checks if the handle is closed. When closed, method calls on the handle object may throw an <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Sync">
+            <summary>
+            Gets an object that can be used internally for safe syncronization.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.#ctor(System.String)">
+            <summary>
+            Opens an existing database in read-only mode.
+            </summary>
+            <param name="filePath">Path to the database file.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
+            <remarks><p>
+            Because this constructor initiates database access, it cannot be used with a
+            running installation.
+            </p><p>
+            The Database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopendatabase.asp">MsiOpenDatabase</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.#ctor(System.String,System.String)">
+            <summary>
+            Opens an existing database with another database as output.
+            </summary>
+            <param name="filePath">Path to the database to be read.</param>
+            <param name="outputPath">Open mode for the database</param>
+            <returns>Database object representing the created or opened database</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
+            <remarks><p>
+            When a database is opened as the output of another database, the summary information stream
+            of the output database is actually a read-only mirror of the original database and thus cannot
+            be changed. Additionally, it is not persisted with the database. To create or modify the
+            summary information for the output database it must be closed and re-opened.
+            </p><p>
+            The Database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            The database is opened in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.CreateDirect"/> mode, and will be
+            automatically commited when it is closed.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopendatabase.asp">MsiOpenDatabase</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode)">
+            <summary>
+            Opens an existing database or creates a new one.
+            </summary>
+            <param name="filePath">Path to the database file. If an empty string
+            is supplied, a temporary database is created that is not persisted.</param>
+            <param name="mode">Open mode for the database</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the database could not be created/opened</exception>
+            <remarks><p>
+            Because this constructor initiates database access, it cannot be used with a
+            running installation.
+            </p><p>
+            The database object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            The finalizer will close the handle if it is still open, however due to the nondeterministic
+            nature of finalization it is best that the handle be closed manually as soon as it is no
+            longer needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            A database opened in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.CreateDirect"/> or
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Direct"/> mode will be automatically commited when it is
+            closed. However a database opened in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Create"/> or
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Transact"/> mode must have the <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Commit"/> method
+            called before it is closed, otherwise no changes will be persisted.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopendatabase.asp">MsiOpenDatabase</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.#ctor(System.IntPtr,System.Boolean,System.String,Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode)">
+            <summary>
+            Creates a new database from an MSI handle.
+            </summary>
+            <param name="handle">Native MSI database handle.</param>
+            <param name="ownsHandle">True if the handle should be closed
+            when the database object is disposed</param>
+            <param name="filePath">Path of the database file, if known</param>
+            <param name="openMode">Mode the handle was originally opened in</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.FromHandle(System.IntPtr,System.Boolean)">
+            <summary>
+            Creates a new Database object from an integer database handle.
+            </summary>
+            <remarks><p>
+            This method is only provided for interop purposes.  A Database object
+            should normally be obtained from <see cref="P:Microsoft.Deployment.WindowsInstaller.Session.Database"/> or
+            a public Database constructor.
+            </p></remarks>
+            <param name="handle">Integer database handle</param>
+            <param name="ownsHandle">true to close the handle when this object is disposed</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.DeleteOnClose(System.String)">
+            <summary>
+            Schedules a file or directory for deletion after the database handle is closed.
+            </summary>
+            <param name="path">File or directory path to be deleted. All files and subdirectories
+            under a directory are deleted.</param>
+            <remarks><p>
+            Once an item is scheduled, it cannot be unscheduled.
+            </p><p>
+            The items cannot be deleted if the Database object is auto-disposed by the
+            garbage collector; the handle must be explicitly closed.
+            </p><p>
+            Files which are read-only or otherwise locked cannot be deleted,
+            but they will not cause an exception to be thrown.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Merge(Microsoft.Deployment.WindowsInstaller.Database,System.String)">
+            <summary>
+            Merges another database with this database.
+            </summary>
+            <param name="otherDatabase">The database to be merged into this database</param>
+            <param name="errorTable">Optional name of table to contain the names of the tables containing
+            merge conflicts, the number of conflicting rows within the table, and a reference to the table
+            with the merge conflict.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.MergeException">merge failed due to a schema difference or data conflict</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Merge does not copy over embedded cabinet files or embedded transforms from the
+            reference database into the target database. Embedded data streams that are listed in the
+            Binary table or Icon table are copied from the reference database to the target database.
+            Storage embedded in the reference database are not copied to the target database.
+            </p><p>
+            The Merge method merges the data of two databases. These databases must have the same
+            codepage. The merge fails if any tables or rows in the databases conflict. A conflict exists
+            if the data in any row in the first database differs from the data in the corresponding row
+            of the second database. Corresponding rows are in the same table of both databases and have
+            the same primary key in both databases. The tables of non-conflicting databases must have
+            the same number of primary keys, same number of columns, same column types, same column names,
+            and the same data in rows with identical primary keys. Temporary columns however don't matter
+            in the column count and corresponding tables can have a different number of temporary columns
+            without creating conflict as long as the persistent columns match.
+            </p><p>
+            If the number, type, or name of columns in corresponding tables are different, the
+            schema of the two databases are incompatible and the installer will stop processing tables
+            and the merge fails. The installer checks that the two databases have the same schema before
+            checking for row merge conflicts. If the schemas are incompatible, the databases have be
+            modified.
+            </p><p>
+            If the data in particular rows differ, this is a row merge conflict, the merge fails
+            and creates a new table with the specified name. The first column of this table is the name
+            of the table having the conflict. The second column gives the number of rows in the table
+            having the conflict.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabasemerge.asp">MsiDatabaseMerge</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Merge(Microsoft.Deployment.WindowsInstaller.Database)">
+            <summary>
+            Merges another database with this database.
+            </summary>
+            <param name="otherDatabase">The database to be merged into this database</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.MergeException">merge failed due to a schema difference or data conflict</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            MsiDatabaseMerge does not copy over embedded cabinet files or embedded transforms from
+            the reference database into the target database. Embedded data streams that are listed in
+            the Binary table or Icon table are copied from the reference database to the target database.
+            Storage embedded in the reference database are not copied to the target database.
+            </p><p>
+            The Merge method merges the data of two databases. These databases must have the same
+            codepage. The merge fails if any tables or rows in the databases conflict. A conflict exists
+            if the data in any row in the first database differs from the data in the corresponding row
+            of the second database. Corresponding rows are in the same table of both databases and have
+            the same primary key in both databases. The tables of non-conflicting databases must have
+            the same number of primary keys, same number of columns, same column types, same column names,
+            and the same data in rows with identical primary keys. Temporary columns however don't matter
+            in the column count and corresponding tables can have a different number of temporary columns
+            without creating conflict as long as the persistent columns match.
+            </p><p>
+            If the number, type, or name of columns in corresponding tables are different, the
+            schema of the two databases are incompatible and the installer will stop processing tables
+            and the merge fails. The installer checks that the two databases have the same schema before
+            checking for row merge conflicts. If the schemas are incompatible, the databases have be
+            modified.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabasemerge.asp">MsiDatabaseMerge</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.IsTablePersistent(System.String)">
+            <summary>
+            Checks whether a table exists and is persistent in the database.
+            </summary>
+            <param name="table">The table to the checked</param>
+            <returns>true if the table exists and is persistent in the database; false otherwise</returns>
+            <exception cref="T:System.ArgumentException">the table is unknown</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            To check whether a table exists regardless of persistence,
+            use <see cref="M:Microsoft.Deployment.WindowsInstaller.TableCollection.Contains(System.String)"/>.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseistablepersistent.asp">MsiDatabaseIsTablePersistent</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.IsColumnPersistent(System.String,System.String)">
+            <summary>
+            Checks whether a table contains a persistent column with a given name.
+            </summary>
+            <param name="table">The table to the checked</param>
+            <param name="column">The name of the column to be checked</param>
+            <returns>true if the column exists in the table; false if the column is temporary or does not exist.</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            To check whether a column exists regardless of persistence,
+            use <see cref="M:Microsoft.Deployment.WindowsInstaller.ColumnCollection.Contains(System.String)"/>.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.CountRows(System.String)">
+            <summary>
+            Gets the count of all rows in the table.
+            </summary>
+            <param name="table">Name of the table whose rows are to be counted</param>
+            <returns>The count of all rows in the table</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.CountRows(System.String,System.String)">
+            <summary>
+            Gets the count of all rows in the table that satisfy a given condition.
+            </summary>
+            <param name="table">Name of the table whose rows are to be counted</param>
+            <param name="where">Conditional expression, such as could be placed on the end of a SQL WHERE clause</param>
+            <returns>The count of all rows in the table satisfying the condition</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL WHERE syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Commit">
+            <summary>
+            Finalizes the persistent form of the database. All persistent data is written
+            to the writeable database, and no temporary columns or rows are written.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            For a database open in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.ReadOnly"/> mode, this method has no effect.
+            </p><p>
+            For a database open in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.CreateDirect"/> or <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Direct"/>
+            mode, it is not necessary to call this method because the database will be automatically committed
+            when it is closed. However this method may be called at any time to persist the current state of tables
+            loaded into memory.
+            </p><p>
+            For a database open in <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Create"/> or <see cref="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Transact"/>
+            mode, no changes will be persisted until this method is called. If the database object is closed without
+            calling this method, the database file remains unmodified.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabasecommit.asp">MsiDatabaseCommit</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Export(System.String,System.String)">
+            <summary>
+            Copies the structure and data from a specified table to a text archive file.
+            </summary>
+            <param name="table">Name of the table to be exported</param>
+            <param name="exportFilePath">Path to the file to be created</param>
+            <exception cref="T:System.IO.FileNotFoundException">the file path is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseexport.asp">MsiDatabaseExport</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Import(System.String)">
+            <summary>
+            Imports a database table from a text archive file, dropping any existing table.
+            </summary>
+            <param name="importFilePath">Path to the file to be imported. 
+            The table name is specified within the file.</param>
+            <exception cref="T:System.IO.FileNotFoundException">the file path is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseimport.asp">MsiDatabaseImport</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExportAll(System.String)">
+            <summary>
+            Exports all database tables, streams, and summary information to archive files.
+            </summary>
+            <param name="directoryPath">Path to the directory where archive files will be created</param>
+            <exception cref="T:System.IO.FileNotFoundException">the directory path is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            The directory will be created if it does not already exist.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseexport.asp">MsiDatabaseExport</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ImportAll(System.String)">
+            <summary>
+            Imports all database tables, streams, and summary information from archive files.
+            </summary>
+            <param name="directoryPath">Path to the directory from which archive files will be imported</param>
+            <exception cref="T:System.IO.FileNotFoundException">the directory path is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseimport.asp">MsiDatabaseImport</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.CreateRecord(System.Int32)">
+            <summary>
+            Creates a new record object with the requested number of fields.
+            </summary>
+            <param name="fieldCount">Required number of fields, which may be 0.
+            The maximum number of fields in a record is limited to 65535.</param>
+            <returns>A new record object that can be used with the database.</returns>
+            <remarks><p>
+            This method is equivalent to directly calling the <see cref="T:Microsoft.Deployment.WindowsInstaller.Record"/>
+            constructor in all cases outside of a custom action context. When in a
+            custom action session, this method allows creation of a record that can
+            work with a database other than the session database.
+            </p><p>
+            The Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msicreaterecord.asp">MsiCreateRecord</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ToString">
+            <summary>
+            Returns the file path of this database, or the handle value if a file path was not specified.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Dispose(System.Boolean)">
+            <summary>
+            Closes the database handle.  After closing a handle, further method calls may throw <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
+            </summary>
+            <param name="disposing">If true, the method has been called directly or
+            indirectly by a user's code, so managed and unmanaged resources will be
+            disposed. If false, only unmanaged resources will be disposed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.OpenView(System.String,System.Object[])">
+            <summary>
+            Gets a View object representing the query specified by a SQL string.
+            </summary>
+            <param name="sqlFormat">SQL query string, which may contain format items</param>
+            <param name="args">Zero or more objects to format</param>
+            <returns>A View object representing the query specified by a SQL string</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            The <paramref name="sqlFormat"/> parameter is formatted using <see cref="M:System.String.Format(System.String,System.Object[])"/>.
+            </p><p>
+            The View object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Execute(System.String,System.Object[])">
+            <summary>
+            Executes the query specified by a SQL string.  The query may not be a SELECT statement.
+            </summary>
+            <param name="sqlFormat">SQL query string, which may contain format items</param>
+            <param name="args">Zero or more objects to format</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            The <paramref name="sqlFormat"/> parameter is formatted using
+            <see cref="M:System.String.Format(System.String,System.Object[])"/>.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.Execute(System.String,Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Executes the query specified by a SQL string.  The query may not be a SELECT statement.
+            </summary>
+            <param name="sql">SQL query string</param>
+            <param name="record">Optional Record object containing the values that replace
+            the parameter tokens (?) in the SQL query.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteQuery(System.String,System.Object[])">
+            <summary>
+            Executes the specified SQL SELECT query and returns all results.
+            </summary>
+            <param name="sqlFormat">SQL query string, which may contain format items</param>
+            <param name="args">Zero or more objects to format</param>
+            <returns>All results combined into an array</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            The <paramref name="sqlFormat"/> parameter is formatted using
+            <see cref="M:System.String.Format(System.String,System.Object[])"/>.
+            </p><p>
+            Multiple rows columns will be collapsed into a single one-dimensional list.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteQuery(System.String,Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Executes the specified SQL SELECT query and returns all results.
+            </summary>
+            <param name="sql">SQL SELECT query string</param>
+            <param name="record">Optional Record object containing the values that replace
+            the parameter tokens (?) in the SQL query.</param>
+            <returns>All results combined into an array</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Multiple rows columns will be collapsed into a single one-dimensional list.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteIntegerQuery(System.String,System.Object[])">
+            <summary>
+            Executes the specified SQL SELECT query and returns all results as integers.
+            </summary>
+            <param name="sqlFormat">SQL query string, which may contain format items</param>
+            <param name="args">Zero or more objects to format</param>
+            <returns>All results combined into an array</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            The <paramref name="sqlFormat"/> parameter is formatted using
+            <see cref="M:System.String.Format(System.String,System.Object[])"/>.
+            </p><p>
+            Multiple rows columns will be collapsed into a single one-dimensional list.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteIntegerQuery(System.String,Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Executes the specified SQL SELECT query and returns all results as integers.
+            </summary>
+            <param name="sql">SQL SELECT query string</param>
+            <param name="record">Optional Record object containing the values that replace
+            the parameter tokens (?) in the SQL query.</param>
+            <returns>All results combined into an array</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Multiple rows columns will be collapsed into a single one-dimensional list.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteStringQuery(System.String,System.Object[])">
+            <summary>
+            Executes the specified SQL SELECT query and returns all results as strings.
+            </summary>
+            <param name="sqlFormat">SQL query string, which may contain format items</param>
+            <param name="args">Zero or more objects to format</param>
+            <returns>All results combined into an array</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            The <paramref name="sqlFormat"/> parameter is formatted using
+            <see cref="M:System.String.Format(System.String,System.Object[])"/>.
+            </p><p>
+            Multiple rows columns will be collapsed into a single on-dimensional list.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteStringQuery(System.String,Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Executes the specified SQL SELECT query and returns all results as strings.
+            </summary>
+            <param name="sql">SQL SELECT query string</param>
+            <param name="record">Optional Record object containing the values that replace
+            the parameter tokens (?) in the SQL query.</param>
+            <returns>All results combined into an array</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Multiple rows columns will be collapsed into a single on-dimensional list.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteScalar(System.String,System.Object[])">
+            <summary>
+            Executes the specified SQL SELECT query and returns a single result.
+            </summary>
+            <param name="sqlFormat">SQL query string, which may contain format items</param>
+            <param name="args">Zero or more objects to format</param>
+            <returns>First field of the first result</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed
+            or the query returned 0 results</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            The <paramref name="sqlFormat"/> parameter is formatted using
+            <see cref="M:System.String.Format(System.String,System.Object[])"/>.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteScalar(System.String,Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Executes the specified SQL SELECT query and returns a single result.
+            </summary>
+            <param name="sql">SQL SELECT query string</param>
+            <param name="record">Optional Record object containing the values that replace
+            the parameter tokens (?) in the SQL query.</param>
+            <returns>First field of the first result</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">the SQL syntax is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed
+            or the query returned 0 results</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseopenview.asp">MsiDatabaseOpenView</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.GenerateTransform(Microsoft.Deployment.WindowsInstaller.Database,System.String)">
+            <summary>
+            Creates a transform that, when applied to the object database, results in the reference database.
+            </summary>
+            <param name="referenceDatabase">Database that does not include the changes</param>
+            <param name="transformFile">Name of the generated transform file, or null to only
+            check whether or not the two database are identical</param>
+            <returns>true if a transform is generated, or false if a transform is not generated
+            because there are no differences between the two databases.</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform could not be generated</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">a Database handle is invalid</exception>
+            <remarks><p>
+            A transform can add non-primary key columns to the end of a table. A transform cannot
+            be created that adds primary key columns to a table. A transform cannot be created that
+            changes the order, names, or definitions of columns.
+            </p><p>
+            If the transform is to be applied during an installation you must use the
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.CreateTransformSummaryInfo(Microsoft.Deployment.WindowsInstaller.Database,System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors,Microsoft.Deployment.WindowsInstaller.TransformValidations)"/> method to populate the
+            summary information stream.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabasegeneratetransform.asp">MsiDatabaseGenerateTransform</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.CreateTransformSummaryInfo(Microsoft.Deployment.WindowsInstaller.Database,System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors,Microsoft.Deployment.WindowsInstaller.TransformValidations)">
+            <summary>
+            Creates and populates the summary information stream of an existing transform file, and
+            fills in the properties with the base and reference ProductCode and ProductVersion.
+            </summary>
+            <param name="referenceDatabase">Database that does not include the changes</param>
+            <param name="transformFile">Name of the generated transform file</param>
+            <param name="errors">Error conditions that should be suppressed
+            when the transform is applied</param>
+            <param name="validations">Defines which properties should be validated
+            to verify that this transform can be applied to a database.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform summary info could not be
+            generated</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">a Database handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msicreatetransformsummaryinfo.asp">MsiCreateTransformSummaryInfo</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ViewTransform(System.String)">
+            <summary>
+            Apply a transform to the database, recording the changes in the "_TransformView" table.
+            </summary>
+            <param name="transformFile">Path to the transform file</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform could not be applied</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseapplytransform.asp">MsiDatabaseApplyTransform</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ApplyTransform(System.String)">
+            <summary>
+            Apply a transform to the database, suppressing any error conditions
+            specified by the transform's summary information.
+            </summary>
+            <param name="transformFile">Path to the transform file</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform could not be applied</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseapplytransform.asp">MsiDatabaseApplyTransform</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.ApplyTransform(System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors)">
+            <summary>
+            Apply a transform to the database, specifying error conditions to suppress.
+            </summary>
+            <param name="transformFile">Path to the transform file</param>
+            <param name="errorConditionsToSuppress">Error conditions that are to be suppressed</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform could not be applied</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidatabaseapplytransform.asp">MsiDatabaseApplyTransform</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.IsTransformValid(System.String)">
+            <summary>
+            Checks whether a transform is valid for this Database, according to its validation data and flags.
+            </summary>
+            <param name="transformFile">Path to the transform file</param>
+            <returns>true if the transform can be validly applied to this Database; false otherwise</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the transform could not be applied</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Database.IsTransformValid(Microsoft.Deployment.WindowsInstaller.SummaryInfo)">
+            <summary>
+            Checks whether a transform is valid for this Database, according to its SummaryInfo data.
+            </summary>
+            <param name="transformSummaryInfo">SummaryInfo data of a transform file</param>
+            <returns>true if the transform can be validly applied to this Database; false otherwise</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">error processing summary info</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database or SummaryInfo handle is invalid</exception>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.FilePath">
+            <summary>
+            Gets the file path the Database was originally opened from, or null if not known.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.OpenMode">
+            <summary>
+            Gets the open mode for the database.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.IsReadOnly">
+            <summary>
+            Gets a boolean value indicating whether this database was opened in read-only mode.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetdatabasestate.asp">MsiGetDatabaseState</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.Tables">
+            <summary>
+            Gets the collection of tables in the Database.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.CodePage">
+            <summary>
+            Gets or sets the code page of the Database.
+            </summary>
+            <exception cref="T:System.IO.IOException">error exporting/importing the codepage data</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            Getting or setting the code page is a slow operation because it involves an export or import
+            of the codepage data to/from a temporary file.
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Database.SummaryInfo">
+            <summary>
+            Gets the SummaryInfo object for this database that can be used to examine and modify properties
+            to the summary information stream.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Database handle is invalid</exception>
+            <remarks><p>
+            The object returned from this property does not need to be explicitly persisted or closed.
+            Any modifications will be automatically saved when the database is committed.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetsummaryinformation.asp">MsiGetSummaryInformation</a>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy">
+            <summary>
+            Managed-code portion of the embedded UI proxy.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy.Initialize(System.Int32,System.String,System.Int32)">
+            <summary>
+            Initializes managed embedded UI by loading the UI class and invoking its Initialize method.
+            </summary>
+            <param name="sessionHandle">Integer handle to the installer session.</param>
+            <param name="uiClass">Name of the class that implements the embedded UI. This must
+            be of the form: &quot;AssemblyName!Namespace.Class&quot;</param>
+            <param name="internalUILevel">On entry, contains the current UI level for the installation. After this
+            method returns, the installer resets the UI level to the returned value of this parameter.</param>
+            <returns>0 if the embedded UI was successfully loaded and initialized,
+            ERROR_INSTALL_USEREXIT if the user canceled the installation during initialization,
+            or ERROR_INSTALL_FAILURE if the embedded UI could not be initialized.</returns>
+            <remarks>
+            Due to interop limitations, the successful resulting UILevel is actually returned
+            as the high-word of the return value instead of via a ref parameter.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy.ProcessMessage(System.Int32,System.Int32)">
+            <summary>
+            Passes a progress message to the UI class.
+            </summary>
+            <param name="messageType">Installer message type and message box options.</param>
+            <param name="recordHandle">Handle to a record containing message data.</param>
+            <returns>Return value returned by the UI class.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy.Shutdown">
+            <summary>
+            Passes a shutdown message to the UI class.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.EmbeddedUIProxy.InstantiateUI(Microsoft.Deployment.WindowsInstaller.Session,System.String)">
+            <summary>
+            Instantiates a UI class from a given assembly and class name.
+            </summary>
+            <param name="session">Installer session, for logging.</param>
+            <param name="uiClass">Name of the class that implements the embedded UI. This must
+            be of the form: &quot;AssemblyName!Namespace.Class&quot;</param>
+            <returns>Interface on the UI class for handling UI messages.</returns>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ActionResult">
+            <summary>
+            Specifies a return status value for custom actions.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ActionResult.Success">
+            <summary>Action completed successfully.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ActionResult.SkipRemainingActions">
+            <summary>Skip remaining actions, not an error.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ActionResult.UserExit">
+            <summary>User terminated prematurely.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ActionResult.Failure">
+            <summary>Unrecoverable error or unhandled exception occurred.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ActionResult.NotExecuted">
+            <summary>Action not executed.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode">
+            <summary>
+            Specifies the open mode for a <see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.ReadOnly">
+            <summary>Open a database read-only, no persistent changes.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Transact">
+            <summary>Open a database read/write in transaction mode.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Direct">
+            <summary>Open a database direct read/write without transaction.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.Create">
+            <summary>Create a new database, transact mode read/write.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.DatabaseOpenMode.CreateDirect">
+            <summary>Create a new database, direct mode read/write.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallLogModes">
+            <summary>
+            Log modes available for <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String)"/>
+            and <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetExternalUI(Microsoft.Deployment.WindowsInstaller.ExternalUIHandler,Microsoft.Deployment.WindowsInstaller.InstallLogModes)"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.None">
+            <summary>Disable logging.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.FatalExit">
+            <summary>Log out of memory or fatal exit information.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Error">
+            <summary>Log error messages.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Warning">
+            <summary>Log warning messages.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.User">
+            <summary>Log user requests.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Info">
+            <summary>Log status messages that are not displayed.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.ResolveSource">
+            <summary>Log request to determine a valid source location.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.OutOfDiskSpace">
+            <summary>Log insufficient disk space error.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.ActionStart">
+            <summary>Log the start of installation actions.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.ActionData">
+            <summary>Log the data record for installation actions.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.CommonData">
+            <summary>Log parameters for user-interface initialization.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.PropertyDump">
+            <summary>Log the property values at termination.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Verbose">
+            <summary>
+            Sends large amounts of information to log file not generally useful to users.
+            May be used for support.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.ExtraDebug">
+            <summary>
+            Log extra debugging information.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.LogOnlyOnError">
+            <summary>
+            Log only on error.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Progress">
+            <summary>
+            Log progress bar information. This message includes information on units so far and total number
+            of units. See <see cref="M:Microsoft.Deployment.WindowsInstaller.Session.Message(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record)"/> for an explanation of the message format. This message
+            is only sent to an external user interface and is not logged.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Initialize">
+            <summary>
+            If this is not a quiet installation, then the basic UI has been initialized. If this is a full
+            UI installation, the Full UI is not yet initialized. This message is only sent to an external
+            user interface and is not logged.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.Terminate">
+            <summary>
+            If a full UI is being used, the full UI has ended. If this is not a quiet installation, the basic
+            UI has not yet ended. This message is only sent to an external user interface and is not logged.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.ShowDialog">
+            <summary>
+            Sent prior to display of the Full UI dialog. This message is only sent to an external user
+            interface and is not logged.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.FilesInUse">
+            <summary>
+            List of files in use that need to be replaced.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.RMFilesInUse">
+            <summary>
+            [MSI 4.0] List of apps that the user can request Restart Manager to shut down and restart.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallMessage">
+            <summary>
+            Type of message to be processed by <see cref="M:Microsoft.Deployment.WindowsInstaller.Session.Message(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record)"/>,
+            <see cref="T:Microsoft.Deployment.WindowsInstaller.ExternalUIHandler"/>, or <see cref="T:Microsoft.Deployment.WindowsInstaller.ExternalUIRecordHandler"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.FatalExit">
+            <summary>Premature termination, possibly fatal OOM.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Error">
+            <summary>Formatted error message.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Warning">
+            <summary>Formatted warning message.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.User">
+            <summary>User request message.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Info">
+            <summary>Informative message for log.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.FilesInUse">
+            <summary>List of files in use that need to be replaced.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.ResolveSource">
+            <summary>Request to determine a valid source location.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.OutOfDiskSpace">
+            <summary>Insufficient disk space message.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.ActionStart">
+            <summary>Start of action: action name &amp; description.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.ActionData">
+            <summary>Formatted data associated with individual action item.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Progress">
+            <summary>Progress gauge info: units so far, total.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.CommonData">
+            <summary>Product info for dialog: language Id, dialog caption.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Initialize">
+            <summary>Sent prior to UI initialization, no string data.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.Terminate">
+            <summary>Sent after UI termination, no string data.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.ShowDialog">
+            <summary>Sent prior to display or authored dialog or wizard.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.RMFilesInUse">
+            <summary>[MSI 4.0] List of apps that the user can request Restart Manager to shut down and restart.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.InstallStart">
+            <summary>[MSI 4.5] Sent prior to install of a product.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMessage.InstallEnd">
+            <summary>[MSI 4.5] Sent after install of a product.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallMode">
+            <summary>
+            Specifies the install mode for <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.ProvideComponent(System.String,System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode)"/> or <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.ProvideQualifiedComponent(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode,System.String)"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMode.NoSourceResolution">
+            <summary>Provide the component only if the feature's installation state is <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Local"/>.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMode.NoDetection">
+            <summary>Only check that the component is registered, without verifying that the key file of the component exists.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMode.Existing">
+            <summary>Provide the component only if the feature exists.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallMode.Default">
+            <summary>Provide the component and perform any installation necessary to provide the component.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallRunMode">
+            <summary>
+            Specifies the run mode for <see cref="M:Microsoft.Deployment.WindowsInstaller.Session.GetMode(Microsoft.Deployment.WindowsInstaller.InstallRunMode)"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Admin">
+            <summary>The administrative mode is installing, or the product is installing.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Advertise">
+            <summary>The advertisements are installing or the product is installing or updating.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Maintenance">
+            <summary>An existing installation is being modified or there is a new installation.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.RollbackEnabled">
+            <summary>Rollback is enabled.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.LogEnabled">
+            <summary>The log file is active. It was enabled prior to the installation session.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Operations">
+            <summary>Execute operations are spooling or they are in the determination phase.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.RebootAtEnd">
+            <summary>A reboot is necessary after a successful installation (settable).</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.RebootNow">
+            <summary>A reboot is necessary to continue the installation (settable).</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Cabinet">
+            <summary>Files from cabinets and Media table files are installing.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.SourceShortNames">
+            <summary>The source LongFileNames is suppressed through the PID_MSISOURCE summary property.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.TargetShortNames">
+            <summary>The target LongFileNames is suppressed through the SHORTFILENAMES property.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Windows9x">
+            <summary>The operating system is Windows 95, Windows 98, or Windows ME.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.ZawEnabled">
+            <summary>The operating system supports demand installation.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Scheduled">
+            <summary>A custom action called from install script execution.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Rollback">
+            <summary>A custom action called from rollback execution script.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Commit">
+            <summary>A custom action called from commit execution script.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallState">
+            <summary>
+            Installed state of a Component or Feature.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.NotUsed">
+            <summary>The component is disabled.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.BadConfig">
+            <summary>The installation configuration data is corrupt.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Incomplete">
+            <summary>The installation is suspended or in progress.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.SourceAbsent">
+            <summary>Component is set to run from source, but source is unavailable.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.MoreData">
+            <summary>The buffer overflow is returned.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.InvalidArgument">
+            <summary>An invalid parameter was passed to the function.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Unknown">
+            <summary>An unrecognized product or feature name was passed to the function.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Broken">
+            <summary>The component is broken.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Advertised">
+            <summary>The feature is advertised.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Removed">
+            <summary>The component is being removed. In action state and not settable.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Absent">
+            <summary>The component is not installed, or action state is absent but clients remain.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Local">
+            <summary>The component is installed on the local drive.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Source">
+            <summary>The component will run from the source, CD, or network.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallState.Default">
+            <summary>The component will be installed in the default location: local or source.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallType">
+            <summary>
+            Specifies the type of installation for <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.ApplyPatch(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallType,System.String)"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallType.Default">
+            <summary>Searches system for products to patch.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallType.NetworkImage">
+            <summary>Indicates a administrative installation.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallType.SingleInstance">
+            <summary>Indicates a particular instance.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallUIOptions">
+            <summary>
+            Level of the installation user interface, specified with
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.NoChange">
+            <summary>Does not change UI level.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Default">
+            <summary>Uses Default UI level.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Silent">
+            <summary>Silent installation.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Basic">
+            <summary>Simple progress and error handling.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Reduced">
+            <summary>Authored UI, wizard dialogs suppressed.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Full">
+            <summary>Authored UI with wizards, progress, and errors.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.HideCancel">
+            <summary>
+            When combined with the <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Basic"/> value, the installer does not display
+            the cancel button in the progress dialog.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.ProgressOnly">
+            <summary>
+            When combined with the <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Basic"/> value, the installer displays progress
+            dialog boxes but does not display any modal dialog boxes or error dialog boxes.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.EndDialog">
+            <summary>
+            When combined with another value, the installer displays a modal dialog
+            box at the end of a successful installation or if there has been an error.
+            No dialog box is displayed if the user cancels.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.SourceResolutionOnly">
+            <summary>
+            Forces display of the source resolution dialog even if the UI is otherwise silent.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.MessageResult">
+            <summary>
+            Specifies a return status value for message handlers.  These values are returned by
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Session.Message(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record)"/>, <see cref="T:Microsoft.Deployment.WindowsInstaller.ExternalUIHandler"/>, and <see cref="M:Microsoft.Deployment.WindowsInstaller.IEmbeddedUI.ProcessMessage(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record,Microsoft.Deployment.WindowsInstaller.MessageButtons,Microsoft.Deployment.WindowsInstaller.MessageIcon,Microsoft.Deployment.WindowsInstaller.MessageDefaultButton)"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Error">
+            <summary>An error was found in the message handler.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.None">
+            <summary>No action was taken.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.OK">
+            <summary>IDOK</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Cancel">
+            <summary>IDCANCEL</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Abort">
+            <summary>IDABORT</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Retry">
+            <summary>IDRETRY</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Ignore">
+            <summary>IDIGNORE</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.Yes">
+            <summary>IDYES</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageResult.No">
+            <summary>IDNO</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.MessageButtons">
+            <summary>
+            Specifies constants defining which buttons to display for a message. This can be cast to
+            the MessageBoxButtons enum in System.Windows.Forms and System.Windows.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.OK">
+            <summary>
+            The message contains an OK button.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.OKCancel">
+            <summary>
+            The message contains OK and Cancel buttons.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.AbortRetryIgnore">
+            <summary>
+            The message contains Abort, Retry, and Ignore buttons.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.YesNoCancel">
+            <summary>
+            The message contains Yes, No, and Cancel buttons.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.YesNo">
+            <summary>
+            The message contains Yes and No buttons.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageButtons.RetryCancel">
+            <summary>
+            The message contains Retry and Cancel buttons.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.MessageIcon">
+            <summary>
+            Specifies constants defining which information to display. This can be cast to
+            the MessageBoxIcon enum in System.Windows.Forms and System.Windows.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.None">
+            <summary>
+            The message contain no symbols.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Error">
+            <summary>
+            The message contains a symbol consisting of white X in a circle with a red background.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Hand">
+            <summary>
+            The message contains a symbol consisting of a white X in a circle with a red background.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Stop">
+            <summary>
+            The message contains a symbol consisting of white X in a circle with a red background.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Question">
+            <summary>
+            The message contains a symbol consisting of a question mark in a circle.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Exclamation">
+            <summary>
+            The message contains a symbol consisting of an exclamation point in a triangle with a yellow background.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Warning">
+            <summary>
+            The message contains a symbol consisting of an exclamation point in a triangle with a yellow background.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Information">
+            <summary>
+            The message contains a symbol consisting of a lowercase letter i in a circle.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageIcon.Asterisk">
+            <summary>
+            The message contains a symbol consisting of a lowercase letter i in a circle.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.MessageDefaultButton">
+            <summary>
+            Specifies constants defining the default button on a message. This can be cast to
+            the MessageBoxDefaultButton enum in System.Windows.Forms and System.Windows.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageDefaultButton.Button1">
+            <summary>
+            The first button on the message is the default button.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageDefaultButton.Button2">
+            <summary>
+            The second button on the message is the default button.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.MessageDefaultButton.Button3">
+            <summary>
+            The third button on the message is the default button.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.PatchStates">
+            <summary>
+            Specifies the different patch states for <see cref="M:Microsoft.Deployment.WindowsInstaller.PatchInstallation.GetPatches(System.String,System.String,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts,Microsoft.Deployment.WindowsInstaller.PatchStates)"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.None">
+            <summary>Invalid value.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.Applied">
+            <summary>Patches applied to a product.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.Superseded">
+            <summary>Patches that are superseded by other patches.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.Obsoleted">
+            <summary>Patches that are obsolesced by other patches.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.Registered">
+            <summary>Patches that are registered to a product but not applied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.PatchStates.All">
+            <summary>All valid patch states.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ReinstallModes">
+            <summary>
+            Specifies the reinstall mode for <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.ReinstallFeature(System.String,System.String,Microsoft.Deployment.WindowsInstaller.ReinstallModes)"/> or <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.ReinstallProduct(System.String,Microsoft.Deployment.WindowsInstaller.ReinstallModes)"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileMissing">
+            <summary>Reinstall only if file is missing.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileOlderVersion">
+            <summary>Reinstall if file is missing, or older version.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileEqualVersion">
+            <summary>Reinstall if file is missing, or equal or older version.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileExact">
+            <summary>Reinstall if file is missing, or not exact version.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileVerify">
+            <summary>Checksum executables, reinstall if missing or corrupt.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.FileReplace">
+            <summary>Reinstall all files, regardless of version.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.MachineData">
+            <summary>Insure required machine reg entries.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.UserData">
+            <summary>Insure required user reg entries.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.Shortcut">
+            <summary>Validate shortcuts items.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ReinstallModes.Package">
+            <summary>Use re-cache source install package.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.TransactionAttributes">
+            <summary>
+            Attributes for <see cref="T:Microsoft.Deployment.WindowsInstaller.Transaction"/> methods.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransactionAttributes.None">
+            <summary>No attributes.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransactionAttributes.ChainEmbeddedUI">
+            <summary>Request that the Windows Installer not shutdown the embedded UI until the transaction is complete.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransactionAttributes.JoinExistingEmbeddedUI">
+            <summary>Request that the Windows Installer transfer the embedded UI from the original installation.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.TransformErrors">
+            <summary>
+            Transform error conditions available for <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.CreateTransformSummaryInfo(Microsoft.Deployment.WindowsInstaller.Database,System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors,Microsoft.Deployment.WindowsInstaller.TransformValidations)"/> or
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ApplyTransform(System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors)"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.None">
+            <summary>No error conditions.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.AddExistingRow">
+            <summary>Adding a row that already exists.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.DelMissingRow">
+            <summary>Deleting a row that doesn't exist.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.AddExistingTable">
+            <summary>Adding a table that already exists.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.DelMissingTable">
+            <summary>Deleting a table that doesn't exist.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.UpdateMissingRow">
+            <summary>Updating a row that doesn't exist.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.ChangeCodePage">
+            <summary>Transform and database code pages do not match and neither code page is neutral.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformErrors.ViewTransform">
+            <summary>Create the temporary _TransformView table when applying the transform.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.TransformValidations">
+            <summary>
+            Transform validation flags available for <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.CreateTransformSummaryInfo(Microsoft.Deployment.WindowsInstaller.Database,System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors,Microsoft.Deployment.WindowsInstaller.TransformValidations)"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.None">
+            <summary>Validate no properties.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.Language">
+            <summary>Default language must match base database.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.Product">
+            <summary>Product must match base database.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.MajorVersion">
+            <summary>Check major version only.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.MinorVersion">
+            <summary>Check major and minor versions only.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.UpdateVersion">
+            <summary>Check major, minor, and update versions.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.NewLessBaseVersion">
+            <summary>Installed version &lt; base version.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.NewLessEqualBaseVersion">
+            <summary>Installed version &lt;= base version.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.NewEqualBaseVersion">
+            <summary>Installed version = base version.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.NewGreaterEqualBaseVersion">
+            <summary>Installed version &gt;= base version.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.NewGreaterBaseVersion">
+            <summary>Installed version &gt; base version.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.TransformValidations.UpgradeCode">
+            <summary>UpgradeCode must match base database.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.UserContexts">
+            <summary>
+            Specifies the installation context for <see cref="T:Microsoft.Deployment.WindowsInstaller.ProductInstallation"/>s,
+            <see cref="T:Microsoft.Deployment.WindowsInstaller.PatchInstallation"/>es, and
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)"/>
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.None">
+            <summary>Not installed.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserManaged">
+            <summary>User managed install context.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserUnmanaged">
+            <summary>User non-managed context.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.Machine">
+            <summary>Per-machine context.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.All">
+            <summary>All contexts, or all valid values.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.UserContexts.AllUserManaged">
+            <summary>All user-managed contexts.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ValidationError">
+            <summary>
+            Defines the type of error encountered by the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Validate(Microsoft.Deployment.WindowsInstaller.Record)"/>, <see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateNew(Microsoft.Deployment.WindowsInstaller.Record)"/>,
+            or <see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateFields(Microsoft.Deployment.WindowsInstaller.Record)"/> methods of the <see cref="T:Microsoft.Deployment.WindowsInstaller.View"/> class.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.None">
+            <summary>No error.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.DuplicateKey">
+            <summary>The new record duplicates primary keys of the existing record in a table.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.Required">
+            <summary>There are no null values allowed, or the column is about to be deleted but is referenced by another row.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadLink">
+            <summary>The corresponding record in a foreign table was not found.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.Overflow">
+            <summary>The data is greater than the maximum value allowed.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.Underflow">
+            <summary>The data is less than the minimum value allowed.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.NotInSet">
+            <summary>The data is not a member of the values permitted in the set.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadVersion">
+            <summary>An invalid version string was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadCase">
+            <summary>The case was invalid. The case must be all uppercase or all lowercase.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadGuid">
+            <summary>An invalid GUID was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadWildcard">
+            <summary>An invalid wildcard file name was supplied, or the use of wildcards was invalid.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadIdentifier">
+            <summary>An invalid identifier was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadLanguage">
+            <summary>Invalid language IDs were supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadFileName">
+            <summary>An invalid file name was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadPath">
+            <summary>An invalid path was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadCondition">
+            <summary>An invalid conditional statement was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadFormatted">
+            <summary>An invalid format string was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadTemplate">
+            <summary>An invalid template string was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadDefaultDir">
+            <summary>An invalid string was supplied in the DefaultDir column of the Directory table.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadRegPath">
+            <summary>An invalid registry path string was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadCustomSource">
+            <summary>An invalid string was supplied in the CustomSource column of the CustomAction table.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadProperty">
+            <summary>An invalid property string was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.MissingData">
+            <summary>The _Validation table is missing a reference to a column.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadCategory">
+            <summary>The category column of the _Validation table for the column is invalid.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadKeyTable">
+            <summary>The table in the Keytable column of the _Validation table was not found or loaded.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadMaxMinValues">
+            <summary>The value in the MaxValue column of the _Validation table is less than the value in the MinValue column.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadCabinet">
+            <summary>An invalid cabinet name was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadShortcut">
+            <summary>An invalid shortcut target name was supplied.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.StringOverflow">
+            <summary>The string is too long for the length specified by the column definition.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ValidationError.BadLocalizeAttrib">
+            <summary>An invalid localization attribute was supplied. (Primary keys cannot be localized.)</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ViewModifyMode">
+            <summary>
+            Specifies the modify mode for <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/>.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Seek">
+            <summary>
+            Refreshes the information in the supplied record without changing the position
+            in the result set and without affecting subsequent fetch operations.
+            </summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Refresh">
+            <summary>Refreshes the data in a Record.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Insert">
+            <summary>Inserts a Record into the view.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Update">
+            <summary>Updates the View with new data from the Record.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Assign">
+            <summary>Updates or inserts a Record into the View.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Replace">
+            <summary>Updates or deletes and inserts a Record into the View.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Merge">
+            <summary>Inserts or validates a record.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Delete">
+            <summary>Deletes a Record from the View.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.InsertTemporary">
+            <summary>Inserts a Record into the View.  The inserted data is not persistent.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.Validate">
+            <summary>Validates a record.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.ValidateNew">
+            <summary>Validates a new record.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.ValidateField">
+            <summary>Validates fields of a fetched or new record. Can validate one or more fields of an incomplete record.</summary>
+        </member>
+        <member name="F:Microsoft.Deployment.WindowsInstaller.ViewModifyMode.ValidateDelete">
+            <summary>Validates a record that will be deleted later.</summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallerException">
+            <summary>
+            Base class for Windows Installer exceptions.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.#ctor(System.String,System.Exception)">
+            <summary>
+            Creates a new InstallerException with a specified error message and a reference to the
+            inner exception that is the cause of this exception.
+            </summary>
+            <param name="msg">The message that describes the error.</param>
+            <param name="innerException">The exception that is the cause of the current exception. If the
+            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+            is raised in a catch block that handles the inner exception.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.#ctor(System.String)">
+            <summary>
+            Creates a new InstallerException with a specified error message.
+            </summary>
+            <param name="msg">The message that describes the error.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.#ctor">
+            <summary>
+            Creates a new InstallerException.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the InstallerException class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Sets the SerializationInfo with information about the exception.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallerException.GetErrorRecord">
+            <summary>
+            Gets extended information about the error, or null if no further information
+            is available.
+            </summary>
+            <returns>A Record object. Field 1 of the Record contains the installer
+            message code. Other fields contain data specific to the particular error.</returns>
+            <remarks><p>
+            If the record is passed to <see cref="M:Microsoft.Deployment.WindowsInstaller.Session.Message(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record)"/>, it is formatted
+            by looking up the string in the current database. If there is no installation
+            session, the formatted error message may be obtained by a query on the Error table using
+            the error code, followed by a call to <see cref="M:Microsoft.Deployment.WindowsInstaller.Record.ToString"/>.
+            Alternatively, the standard MSI message can by retrieved by calling the
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.GetErrorMessage(Microsoft.Deployment.WindowsInstaller.Record,System.Globalization.CultureInfo)"/> method.
+            </p><p>
+            The following methods and properties may report extended error data:
+            <list type="bullet">
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/> (constructor)</item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ApplyTransform(System.String,Microsoft.Deployment.WindowsInstaller.TransformErrors)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Commit"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Execute(System.String,System.Object[])"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteQuery(System.String,System.Object[])"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteIntegerQuery(System.String,System.Object[])"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ExecuteStringQuery(System.String,System.Object[])"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Export(System.String,System.String)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ExportAll(System.String)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.GenerateTransform(Microsoft.Deployment.WindowsInstaller.Database,System.String)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Import(System.String)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ImportAll(System.String)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Merge(Microsoft.Deployment.WindowsInstaller.Database,System.String)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.OpenView(System.String,System.Object[])"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="P:Microsoft.Deployment.WindowsInstaller.Database.SummaryInfo"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Database"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Database.ViewTransform(System.String)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Assign(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Delete(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Execute(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Insert(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.InsertTemporary(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Merge(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Refresh(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Replace(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Seek(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Update(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.Validate(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateFields(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateDelete(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.View"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateNew(Microsoft.Deployment.WindowsInstaller.Record)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.SummaryInfo"/> (constructor)</item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Record"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.Int32,System.String)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Session"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Session.SetInstallLevel(System.Int32)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Session"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Session.GetSourcePath(System.String)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Session"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Session.GetTargetPath(System.String)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.Session"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.Session.SetTargetPath(System.String,System.String)"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.ComponentInfo"/>.<see cref="P:Microsoft.Deployment.WindowsInstaller.ComponentInfo.CurrentState"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.FeatureInfo"/>.<see cref="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.CurrentState"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.FeatureInfo"/>.<see cref="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.ValidStates"/></item>
+            <item><see cref="T:Microsoft.Deployment.WindowsInstaller.FeatureInfo"/>.<see cref="M:Microsoft.Deployment.WindowsInstaller.FeatureInfo.GetCost(System.Boolean,System.Boolean,Microsoft.Deployment.WindowsInstaller.InstallState)"/></item>
+            </list>
+            </p><p>
+            The Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetlasterrorrecord.asp">MsiGetLastErrorRecord</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallerException.ErrorCode">
+            <summary>
+            Gets the system error code that resulted in this exception, or 0 if not applicable.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallerException.Message">
+            <summary>
+            Gets a message that describes the exception.  This message may contain detailed
+            formatted error data if it was available.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">
+            <summary>
+            User Canceled the installation.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallCanceledException.#ctor(System.String,System.Exception)">
+            <summary>
+            Creates a new InstallCanceledException with a specified error message and a reference to the
+            inner exception that is the cause of this exception.
+            </summary>
+            <param name="msg">The message that describes the error.</param>
+            <param name="innerException">The exception that is the cause of the current exception. If the
+            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+            is raised in a catch block that handles the inner exception.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallCanceledException.#ctor(System.String)">
+            <summary>
+            Creates a new InstallCanceledException with a specified error message.
+            </summary>
+            <param name="msg">The message that describes the error.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallCanceledException.#ctor">
+            <summary>
+            Creates a new InstallCanceledException.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallCanceledException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the InstallCanceledException class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException">
+            <summary>
+            A bad SQL query string was passed to <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.OpenView(System.String,System.Object[])"/> or <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Execute(System.String,System.Object[])"/>.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException.#ctor(System.String,System.Exception)">
+            <summary>
+            Creates a new BadQuerySyntaxException with a specified error message and a reference to the
+            inner exception that is the cause of this exception.
+            </summary>
+            <param name="msg">The message that describes the error.</param>
+            <param name="innerException">The exception that is the cause of the current exception. If the
+            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+            is raised in a catch block that handles the inner exception.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException.#ctor(System.String)">
+            <summary>
+            Creates a new BadQuerySyntaxException with a specified error message.
+            </summary>
+            <param name="msg">The message that describes the error.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException.#ctor">
+            <summary>
+            Creates a new BadQuerySyntaxException.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.BadQuerySyntaxException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the BadQuerySyntaxException class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">
+            <summary>
+            A method was called on an invalid installer handle.  The handle may have been already closed.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InvalidHandleException.#ctor(System.String,System.Exception)">
+            <summary>
+            Creates a new InvalidHandleException with a specified error message and a reference to the
+            inner exception that is the cause of this exception.
+            </summary>
+            <param name="msg">The message that describes the error.</param>
+            <param name="innerException">The exception that is the cause of the current exception. If the
+            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+            is raised in a catch block that handles the inner exception.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InvalidHandleException.#ctor(System.String)">
+            <summary>
+            Creates a new InvalidHandleException with a specified error message.
+            </summary>
+            <param name="msg">The message that describes the error.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InvalidHandleException.#ctor">
+            <summary>
+            Creates a new InvalidHandleException.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InvalidHandleException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the InvalidHandleException class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.MergeException">
+            <summary>
+            A failure occurred when executing <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.Merge(Microsoft.Deployment.WindowsInstaller.Database,System.String)"/>.  The exception may contain
+            details about the merge conflict.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.MergeException.#ctor(System.String,System.Exception)">
+            <summary>
+            Creates a new MergeException with a specified error message and a reference to the
+            inner exception that is the cause of this exception.
+            </summary>
+            <param name="msg">The message that describes the error.</param>
+            <param name="innerException">The exception that is the cause of the current exception. If the
+            innerException parameter is not a null reference (Nothing in Visual Basic), the current exception
+            is raised in a catch block that handles the inner exception.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.MergeException.#ctor(System.String)">
+            <summary>
+            Creates a new MergeException with a specified error message.
+            </summary>
+            <param name="msg">The message that describes the error.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.MergeException.#ctor">
+            <summary>
+            Creates a new MergeException.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.MergeException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the MergeException class with serialized data.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.MergeException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Sets the SerializationInfo with information about the exception.
+            </summary>
+            <param name="info">The SerializationInfo that holds the serialized object data about the exception being thrown.</param>
+            <param name="context">The StreamingContext that contains contextual information about the source or destination.</param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.MergeException.ConflictCounts">
+            <summary>
+            Gets the number of merge conflicts in each table, corresponding to the tables returned by
+            <see cref="P:Microsoft.Deployment.WindowsInstaller.MergeException.ConflictTables"/>.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.MergeException.ConflictTables">
+            <summary>
+            Gets the list of tables containing merge conflicts.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.MergeException.Message">
+            <summary>
+            Gets a message that describes the merge conflits.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ExternalUIHandler">
+            <summary>
+            Defines a callback function that the installer calls for progress notification and error messages.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ExternalUIRecordHandler">
+            <summary>
+            [MSI 3.1] Defines a callback function that the installer calls for record-based progress notification and error messages.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Installer">
+            <summary>
+            Provides static methods for installing and configuring products and patches.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.SetExternalUI(Microsoft.Deployment.WindowsInstaller.ExternalUIHandler,Microsoft.Deployment.WindowsInstaller.InstallLogModes)">
+            <summary>
+            Enables an external user-interface handler. This external UI handler is called before the
+            normal internal user-interface handler. The external UI handler has the option to suppress
+            the internal UI by returning a non-zero value to indicate that it has handled the messages.
+            </summary>
+            <param name="uiHandler">A callback delegate that handles the UI messages</param>
+            <param name="messageFilter">Specifies which messages to handle using the external message handler.
+            If the external handler returns a non-zero result, then that message will not be sent to the UI,
+            instead the message will be logged if logging has been enabled.</param>
+            <returns>The previously set external handler, or null if there was no previously set handler</returns>
+            <remarks><p>
+            To restore the previous UI handler, a second call is made to SetExternalUI using the
+            ExternalUIHandler returned by the first call to SetExternalUI and specifying
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.None"/> as the message filter.
+            </p><p>
+            The external user interface handler does not have full control over the external user
+            interface unless <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/> is called with the uiLevel parameter set to
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Silent"/>. If SetInternalUI is not called, the internal user
+            interface level defaults to <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Basic"/>. As a result, any message not
+            handled by the external user interface handler is handled by Windows Installer. The initial
+            "Preparing to install..." dialog always appears even if the external user interface
+            handler handles all messages.
+            </p><p>
+            SetExternalUI should only be called from a bootstrapping application. You cannot call
+            it from a custom action
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetexternalui.asp">MsiSetExternalUI</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.SetExternalUI(Microsoft.Deployment.WindowsInstaller.ExternalUIRecordHandler,Microsoft.Deployment.WindowsInstaller.InstallLogModes)">
+            <summary>
+            [MSI 3.1] Enables a record-based external user-interface handler. This external UI handler is called
+            before the normal internal user-interface handler. The external UI handler has the option to suppress
+            the internal UI by returning a non-zero value to indicate that it has handled the messages.
+            </summary>
+            <param name="uiHandler">A callback delegate that handles the UI messages</param>
+            <param name="messageFilter">Specifies which messages to handle using the external message handler.
+            If the external handler returns a non-zero result, then that message will not be sent to the UI,
+            instead the message will be logged if logging has been enabled.</param>
+            <returns>The previously set external handler, or null if there was no previously set handler</returns>
+            <remarks><p>
+            To restore the previous UI handler, a second call is made to SetExternalUI using the
+            ExternalUIHandler returned by the first call to SetExternalUI and specifying
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallLogModes.None"/> as the message filter.
+            </p><p>
+            The external user interface handler does not have full control over the external user
+            interface unless <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/> is called with the uiLevel parameter set to
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Silent"/>. If SetInternalUI is not called, the internal user
+            interface level defaults to <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Basic"/>. As a result, any message not
+            handled by the external user interface handler is handled by Windows Installer. The initial
+            "Preparing to install..." dialog always appears even if the external user interface
+            handler handles all messages.
+            </p><p>
+            SetExternalUI should only be called from a bootstrapping application. You cannot call
+            it from a custom action
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetexternaluirecord.asp">MsiSetExternalUIRecord</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions,System.IntPtr@)">
+            <summary>
+            Enables the installer's internal user interface. Then this user interface is used
+            for all subsequent calls to user-interface-generating installer functions in this process.
+            </summary>
+            <param name="uiOptions">Specifies the level of complexity of the user interface</param>
+            <param name="windowHandle">Handle to a window, which becomes the owner of any user interface created.
+            A pointer to the previous owner of the user interface is returned.</param>
+            <returns>The previous user interface level</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetinternalui.asp">MsiSetInternalUI</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)">
+            <summary>
+            Enables the installer's internal user interface. Then this user interface is used
+            for all subsequent calls to user-interface-generating installer functions in this process.
+            The owner of the user interface does not change.
+            </summary>
+            <param name="uiOptions">Specifies the level of complexity of the user interface</param>
+            <returns>The previous user interface level</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetinternalui.asp">MsiSetInternalUI</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String)">
+            <summary>
+            Enables logging of the selected message type for all subsequent install sessions in
+            the current process space.
+            </summary>
+            <param name="logModes">One or more mode flags specifying the type of messages to log</param>
+            <param name="logFile">Full path to the log file.  A null path disables logging,
+            in which case the logModes paraneter is ignored.</param>
+            <exception cref="T:System.ArgumentException">an invalid log mode was specified</exception>
+            <remarks>This method takes effect on any new installation processes.  Calling this
+            method from within a custom action will not start logging for that installation.</remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String,System.Boolean,System.Boolean)">
+            <summary>
+            Enables logging of the selected message type for all subsequent install sessions in
+            the current process space.
+            </summary>
+            <param name="logModes">One or more mode flags specifying the type of messages to log</param>
+            <param name="logFile">Full path to the log file.  A null path disables logging,
+            in which case the logModes paraneter is ignored.</param>
+            <param name="append">If true, the log lines will be appended to any existing file content.
+            If false, the log file will be truncated if it exists.  The default is false.</param>
+            <param name="flushEveryLine">If true, the log will be flushed after every line.
+            If false, the log will be flushed every 20 lines.  The default is true.</param>
+            <exception cref="T:System.ArgumentException">an invalid log mode was specified</exception>
+            <remarks><p>
+            This method takes effect on any new installation processes.  Calling this
+            method from within a custom action will not start logging for that installation.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienablelog.asp">MsiEnableLog</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.UseFeature(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode)">
+            <summary>
+            increments the usage count for a particular feature and returns the installation state for
+            that feature. This method should be used to indicate an application's intent to use a feature.
+            </summary>
+            <param name="productCode">The product code of the product.</param>
+            <param name="feature">The feature to be used.</param>
+            <param name="installMode">Must have the value <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallMode.NoDetection"/>.</param>
+            <returns>The installed state of the feature.</returns>
+            <remarks><p>
+            The UseFeature method should only be used on features known to be published. The application
+            should determine the status of the feature by calling either the FeatureState method or
+            Features method.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiusefeature.asp">MsiUseFeature</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiusefeatureex.asp">MsiUseFeatureEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.OpenPackage(System.String,System.Boolean)">
+            <summary>
+            Opens an installer package for use with functions that access the product database and install engine,
+            returning an Session object.
+            </summary>
+            <param name="packagePath">Path to the package</param>
+            <param name="ignoreMachineState">Specifies whether or not the create a Session object that ignores the
+            computer state and that is incapable of changing the current computer state. A value of false yields
+            the normal behavior.  A value of true creates a "safe" Session object that cannot change of the current
+            machine state.</param>
+            <returns>A Session object allowing access to the product database and install engine</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The product could not be opened</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
+            <remarks><p>
+            Note that only one Session object can be opened by a single process. OpenPackage cannot be used in a
+            custom action because the active installation is the only session allowed.
+            </p><p>
+            A "safe" Session object ignores the current computer state when opening the package and prevents
+            changes to the current computer state.
+            </p><p>
+            The Session object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopenpackage.asp">MsiOpenPackage</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopenpackageex.asp">MsiOpenPackageEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.OpenPackage(Microsoft.Deployment.WindowsInstaller.Database,System.Boolean)">
+            <summary>
+            Opens an installer package for use with functions that access the product database and install engine,
+            returning an Session object.
+            </summary>
+            <param name="database">Database used to create the session</param>
+            <param name="ignoreMachineState">Specifies whether or not the create a Session object that ignores the
+            computer state and that is incapable of changing the current computer state. A value of false yields
+            the normal behavior.  A value of true creates a "safe" Session object that cannot change of the current
+            machine state.</param>
+            <returns>A Session object allowing access to the product database and install engine</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The product could not be opened</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
+            <remarks><p>
+            Note that only one Session object can be opened by a single process. OpenPackage cannot be used in a
+            custom action because the active installation is the only session allowed.
+            </p><p>
+            A "safe" Session object ignores the current computer state when opening the package and prevents
+            changes to the current computer state.
+            </p><p>
+            The Session object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopenpackage.asp">MsiOpenPackage</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopenpackageex.asp">MsiOpenPackageEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.OpenProduct(System.String)">
+            <summary>
+            Opens an installer package for an installed product using the product code.
+            </summary>
+            <param name="productCode">Product code of the installed product</param>
+            <returns>A Session object allowing access to the product database and install engine,
+            or null if the specified product is not installed.</returns>
+            <exception cref="T:System.ArgumentException">An unknown product was requested</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The product could not be opened</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
+            <remarks><p>
+            Note that only one Session object can be opened by a single process. OpenProduct cannot be
+            used in a custom action because the active installation is the only session allowed.
+            </p><p>
+            The Session object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiopenproduct.asp">MsiOpenProduct</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ProvideComponent(System.String,System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode)">
+            <summary>
+            Gets the full component path, performing any necessary installation. This method prompts for source if
+            necessary and increments the usage count for the feature.
+            </summary>
+            <param name="product">Product code for the product that contains the feature with the necessary component</param>
+            <param name="feature">Feature ID of the feature with the necessary component</param>
+            <param name="component">Component code of the necessary component</param>
+            <param name="installMode">Installation mode; this can also include bits from <see cref="T:Microsoft.Deployment.WindowsInstaller.ReinstallModes"/></param>
+            <returns>Path to the component</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprovidecomponent.asp">MsiProvideComponent</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ProvideQualifiedComponent(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode,System.String)">
+            <summary>
+            Gets the full component path for a qualified component that is published by a product and
+            performs any necessary installation. This method prompts for source if necessary and increments
+            the usage count for the feature.
+            </summary>
+            <param name="component">Specifies the component ID for the requested component. This may not be the
+            GUID for the component itself but rather a server that provides the correct functionality, as in the
+            ComponentId column of the PublishComponent table.</param>
+            <param name="qualifier">Specifies a qualifier into a list of advertising components (from PublishComponent Table).</param>
+            <param name="installMode">Installation mode; this can also include bits from <see cref="T:Microsoft.Deployment.WindowsInstaller.ReinstallModes"/></param>
+            <param name="product">Optional; specifies the product to match that has published the qualified component.</param>
+            <returns>Path to the component</returns>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprovidequalifiedcomponent.asp">MsiProvideQualifiedComponent</a>
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprovidequalifiedcomponentex.asp">MsiProvideQualifiedComponentEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ProvideAssembly(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallMode,System.Boolean)">
+            <summary>
+            Gets the full path to a Windows Installer component containing an assembly. This method prompts for a source and
+            increments the usage count for the feature.
+            </summary>
+            <param name="assemblyName">Assembly name</param>
+            <param name="appContext">Set to null for global assemblies. For private assemblies, set to the full path of the
+            application configuration file (.cfg file) or executable file (.exe) of the application to which the assembly
+            has been made private.</param>
+            <param name="installMode">Installation mode; this can also include bits from <see cref="T:Microsoft.Deployment.WindowsInstaller.ReinstallModes"/></param>
+            <param name="isWin32Assembly">True if this is a Win32 assembly, false if it is a .NET assembly</param>
+            <returns>Path to the assembly</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprovideassembly.asp">MsiProvideAssembly</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.InstallMissingComponent(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallState)">
+            <summary>
+            Installs files that are unexpectedly missing.
+            </summary>
+            <param name="product">Product code for the product that owns the component to be installed</param>
+            <param name="component">Component to be installed</param>
+            <param name="installState">Specifies the way the component should be installed.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiinstallmissingcomponent.asp">MsiInstallMissingComponent</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.InstallMissingFile(System.String,System.String)">
+            <summary>
+            Installs files that are unexpectedly missing.
+            </summary>
+            <param name="product">Product code for the product that owns the file to be installed</param>
+            <param name="file">File to be installed</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiinstallmissingfile.asp">MsiInstallMissingFile</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ReinstallFeature(System.String,System.String,Microsoft.Deployment.WindowsInstaller.ReinstallModes)">
+            <summary>
+            Reinstalls a feature.
+            </summary>
+            <param name="product">Product code for the product containing the feature to be reinstalled</param>
+            <param name="feature">Feature to be reinstalled</param>
+            <param name="reinstallModes">Reinstall modes</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msireinstallfeature.asp">MsiReinstallFeature</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ReinstallProduct(System.String,Microsoft.Deployment.WindowsInstaller.ReinstallModes)">
+            <summary>
+            Reinstalls a product.
+            </summary>
+            <param name="product">Product code for the product to be reinstalled</param>
+            <param name="reinstallModes">Reinstall modes</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msireinstallproduct.asp">MsiReinstallProduct</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.InstallProduct(System.String,System.String)">
+            <summary>
+            Opens an installer package and initializes an install session.
+            </summary>
+            <param name="packagePath">path to the patch package</param>
+            <param name="commandLine">command line property settings</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error installing the product</exception>
+            <remarks><p>
+            To completely remove a product, set REMOVE=ALL in <paramRef name="commandLine"/>.
+            </p><p>
+            This method displays the user interface with the current settings and
+            log mode. You can change user interface settings with the <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/>
+            and <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetExternalUI(Microsoft.Deployment.WindowsInstaller.ExternalUIHandler,Microsoft.Deployment.WindowsInstaller.InstallLogModes)"/> functions. You can set the log mode with the
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String)"/> function.
+            </p><p>
+            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
+            tested after calling this method.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiinstallproduct.asp">MsiInstallProduct</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ConfigureProduct(System.String,System.Int32,Microsoft.Deployment.WindowsInstaller.InstallState,System.String)">
+            <summary>
+            Installs or uninstalls a product.
+            </summary>
+            <param name="productCode">Product code of the product to be configured.</param>
+            <param name="installLevel">Specifies the default installation configuration of the
+            product. The <paramref name="installLevel"/> parameter is ignored and all features
+            are installed if the <paramref name="installState"/> parameter is set to any other
+            value than <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Default"/>. This parameter must be either 0
+            (install using authored feature levels), 65535 (install all features), or a value
+            between 0 and 65535 to install a subset of available features.																																											   </param>
+            <param name="installState">Specifies the installation state for the product.</param>
+            <param name="commandLine">Specifies the command line property settings. This should
+            be a list of the format Property=Setting Property=Setting.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error configuring the product</exception>
+            <remarks><p>
+            This method displays the user interface with the current settings and
+            log mode. You can change user interface settings with the <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/>
+            and <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetExternalUI(Microsoft.Deployment.WindowsInstaller.ExternalUIHandler,Microsoft.Deployment.WindowsInstaller.InstallLogModes)"/> functions. You can set the log mode with the
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String)"/> function.
+            </p><p>
+            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
+            tested after calling this method.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiconfigureproduct.asp">MsiConfigureProduct</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiconfigureproductex.asp">MsiConfigureProductEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ConfigureFeature(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallState)">
+            <summary>
+            Configures the installed state for a product feature.
+            </summary>
+            <param name="productCode">Product code of the product to be configured.</param>
+            <param name="feature">Specifies the feature ID for the feature to be configured.</param>
+            <param name="installState">Specifies the installation state for the feature.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error configuring the feature</exception>
+            <remarks><p>
+            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
+            tested after calling this method.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiconfigurefeature.asp">MsiConfigureFeature</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ApplyPatch(System.String,System.String)">
+            <summary>
+            For each product listed by the patch package as eligible to receive the patch, ApplyPatch invokes
+            an installation and sets the PATCH property to the path of the patch package.
+            </summary>
+            <param name="patchPackage">path to the patch package</param>
+            <param name="commandLine">optional command line property settings</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error applying the patch</exception>
+            <remarks><p>
+            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
+            tested after calling this method.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiapplypatch.asp">MsiApplyPatch</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ApplyPatch(System.String,System.String,Microsoft.Deployment.WindowsInstaller.InstallType,System.String)">
+            <summary>
+            For each product listed by the patch package as eligible to receive the patch, ApplyPatch invokes
+            an installation and sets the PATCH property to the path of the patch package.
+            </summary>
+            <param name="patchPackage">path to the patch package</param>
+            <param name="installPackage">path to the product to be patched, if installType
+            is set to <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallType.NetworkImage"/></param>
+            <param name="installType">type of installation to patch</param>
+            <param name="commandLine">optional command line property settings</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error applying the patch</exception>
+            <remarks><p>
+            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
+            tested after calling this method.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiapplypatch.asp">MsiApplyPatch</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.RemovePatches(System.Collections.Generic.IList{System.String},System.String,System.String)">
+            <summary>
+            Removes one or more patches from a single product. To remove a patch from
+            multiple products, RemovePatches must be called for each product.
+            </summary>
+            <param name="patches">List of patches to remove. Each patch can be specified by the GUID
+            of the patch or the full path to the patch package.</param>
+            <param name="productCode">The ProductCode (GUID) of the product from which the patches
+            are removed.  This parameter cannot be null.</param>
+            <param name="commandLine">optional command line property settings</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">There was an error removing the patches</exception>
+            <remarks><p>
+            The <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated"/> properties should be
+            tested after calling this method.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiremovepatches.asp">MsiRemovePatches</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler)">
+            <summary>
+            Determines which patches apply to a specified product MSI and in what sequence.
+            </summary>
+            <param name="productPackage">Full path to an MSI file that is the target product
+            for the set of patches.</param>
+            <param name="patches">An array of strings specifying the patches to be checked.  Each item
+            may be the path to an MSP file, the path an XML file, or just an XML blob.</param>
+            <param name="errorHandler">Callback to be invoked for each inapplicable patch, reporting the
+            reason the patch is not applicable.  This value may be left null if that information is not
+            desired.</param>
+            <returns>An array of selected patch strings from <paramref name="patches"/>, indicating
+            the set of applicable patches.  The items are re-ordered to be in the best sequence.</returns>
+            <remarks><p>
+            If an item in <paramref name="patches"/> is a file path but does not end in .MSP or .XML,
+            it is assumed to be an MSP file.
+            </p><p>
+            As this overload uses InstallContext.None, it does not consider the current state of
+            the system.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidetermineapplicablepatches.asp">MsiDetermineApplicablePatches</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)">
+            <summary>
+            Determines which patches apply to a specified product and in what sequence.  If
+            the product is installed, this method accounts for patches that have already been applied to
+            the product and accounts for obsolete and superceded patches.
+            </summary>
+            <param name="product">The product that is the target for the set of patches.  This may be
+            either a ProductCode (GUID) of a product that is currently installed, or the path to a an
+            MSI file.</param>
+            <param name="patches">An array of strings specifying the patches to be checked.  Each item
+            may be the path to an MSP file, the path an XML file, or just an XML blob.</param>
+            <param name="errorHandler">Callback to be invoked for each inapplicable patch, reporting the
+            reason the patch is not applicable.  This value may be left null if that information is not
+            desired.</param>
+            <param name="userSid">Specifies a security identifier (SID) of a user. This parameter restricts
+            the context of enumeration for this user account. This parameter cannot be the special SID
+            strings s-1-1-0 (everyone) or s-1-5-18 (local system). If <paramref name="context"/> is set to
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.None"/> or <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.Machine"/>, then
+            <paramref name="userSid"/> must be null. For the current user context, <paramref name="userSid"/>
+            can be null and <paramref name="context"/> can be set to <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserManaged"/>
+            or <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserUnmanaged"/>.</param>
+            <param name="context">Restricts the enumeration to per-user-unmanaged, per-user-managed,
+            or per-machine context, or (if referring to an MSI) to no system context at all.  This
+            parameter can be <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.Machine"/>, <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserManaged"/>,
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.UserUnmanaged"/>, or <see cref="F:Microsoft.Deployment.WindowsInstaller.UserContexts.None"/>.</param>
+            <returns>An array of selected patch strings from <paramref name="patches"/>, indicating
+            the set of applicable patches.  The items are re-ordered to be in the best sequence.</returns>
+            <remarks><p>
+            If an item in <paramref name="patches"/> is a file path but does not end in .MSP or .XML,
+            it is assumed to be an MSP file.
+            </p><p>
+            Passing an InstallContext of None only analyzes the MSI file; it does not consider the
+            current state of the system. You cannot use InstallContext.None with a ProductCode GUID.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidetermineapplicablepatches.asp">MsiDetermineApplicablePatches</a>
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msideterminepatchsequence.asp">MsiDeterminePatchSequence</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ApplyMultiplePatches(System.Collections.Generic.IList{System.String},System.String,System.String)">
+            <summary>
+            Applies one or more patches to products that are eligible to receive the patch.
+            For each product listed by the patch package as eligible to receive the patch, ApplyPatch invokes
+            an installation and sets the PATCH property to the path of the patch package.
+            </summary>
+            <param name="patchPackages">The set of patch packages to be applied.
+            Each item is the full path to an MSP file.</param>
+            <param name="productCode">Provides the ProductCode of the product being patched. If this parameter
+            is null, the patches are applied to all products that are eligible to receive these patches.</param>
+            <param name="commandLine">optional command line property settings</param>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiapplymultiplepatches.asp">MsiApplyMultiplePatches</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ExtractPatchXmlData(System.String)">
+            <summary>
+            Extracts information from a patch that can be used to determine whether the patch
+            applies on a target system. The method returns an XML string that can be provided to
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)"/>
+            instead of the full patch file.
+            </summary>
+            <param name="patchPath">Full path to the patch being queried.</param>
+            <returns>XML string containing patch data.</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiextractpatchxmldata.asp">MsiExtractPatchXMLData</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.NotifySidChange(System.String,System.String)">
+            <summary>
+            [MSI 3.1] Migrates a user's application configuration data to a new SID.
+            </summary>
+            <param name="oldSid">Previous user SID that data is to be migrated from</param>
+            <param name="newSid">New user SID that data is to be migrated to</param>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msinotifysidchange.asp">MsiNotifySidChange</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.AdvertiseProduct(System.String,System.Boolean,System.String,System.Int32)">
+            <summary>
+            Advertises a product to the local computer.
+            </summary>
+            <param name="packagePath">Path to the package of the product being advertised</param>
+            <param name="perUser">True if the product is user-assigned; false if it is machine-assigned.</param>
+            <param name="transforms">Semi-colon delimited list of transforms to be applied. This parameter may be null.</param>
+            <param name="locale">The language to use if the source supports multiple languages</param>
+            <exception cref="T:System.IO.FileNotFoundException">the specified package file does not exist</exception>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32,System.Reflection.ProcessorArchitecture,System.Boolean)"/>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproduct.asp">MsiAdvertiseProduct</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproductex.asp">MsiAdvertiseProductEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32)">
+            <summary>
+            Generates an advertise script. The method enables the installer to write to a 
+            script the registry and shortcut information used to assign or publish a product.
+            </summary>
+            <param name="packagePath">Path to the package of the product being advertised</param>
+            <param name="scriptFilePath">path to script file to be created with the advertise information</param>
+            <param name="transforms">Semi-colon delimited list of transforms to be applied. This parameter may be null.</param>
+            <param name="locale">The language to use if the source supports multiple languages</param>
+            <exception cref="T:System.IO.FileNotFoundException">the specified package file does not exist</exception>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Installer.AdvertiseProduct(System.String,System.Boolean,System.String,System.Int32)"/>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproduct.asp">MsiAdvertiseProduct</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproductex.asp">MsiAdvertiseProductEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32,System.Reflection.ProcessorArchitecture,System.Boolean)">
+            <summary>
+            Generates an advertise script. The method enables the installer to write to a 
+            script the registry and shortcut information used to assign or publish a product.
+            </summary>
+            <param name="packagePath">Path to the package of the product being advertised</param>
+            <param name="scriptFilePath">path to script file to be created with the advertise information</param>
+            <param name="transforms">Semi-colon delimited list of transforms to be applied. This parameter may be null.</param>
+            <param name="locale">The language to use if the source supports multiple languages</param>
+            <param name="processor">Targeted processor architecture.</param>
+            <param name="instance">True to install multiple instances through product code changing transform.
+            Advertises a new instance of the product. Requires that the <paramref name="transforms"/> parameter
+            includes the instance transform that changes the product code.</param>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Installer.AdvertiseProduct(System.String,System.Boolean,System.String,System.Int32)"/>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproduct.asp">MsiAdvertiseProduct</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiadvertiseproductex.asp">MsiAdvertiseProductEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.AdvertiseScript(System.String,System.Int32,System.Boolean)">
+            <summary>
+            Copies an advertise script file to the local computer.
+            </summary>
+            <param name="scriptFile">Path to a script file generated by
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32,System.Reflection.ProcessorArchitecture,System.Boolean)"/></param>
+            <param name="flags">Flags controlling advertisement</param>
+            <param name="removeItems">True if specified items are to be removed instead of being created</param>
+            <remarks><p>
+            The process calling this function must be running under the LocalSystem account. To advertise an
+            application for per-user installation to a targeted user, the thread that calls this function must
+            impersonate the targeted user. If the thread calling this function is not impersonating a targeted
+            user, the application is advertised to all users for installation with elevated privileges.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.ProcessAdvertiseScript(System.String,System.String,System.Boolean,System.Boolean)">
+            <summary>
+            Processes an advertise script file into the specified locations.
+            </summary>
+            <param name="scriptFile">Path to a script file generated by
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32,System.Reflection.ProcessorArchitecture,System.Boolean)"/></param>
+            <param name="iconFolder">An optional path to a folder in which advertised icon files and transform
+            files are located. If this parameter is null, no icon or transform files are written.</param>
+            <param name="shortcuts">True if shortcuts should be created</param>
+            <param name="removeItems">True if specified items are to be removed instead of created</param>
+            <remarks><p>
+            The process calling this function must be running under the LocalSystem account. To advertise an
+            application for per-user installation to a targeted user, the thread that calls this function must
+            impersonate the targeted user. If the thread calling this function is not impersonating a targeted
+            user, the application is advertised to all users for installation with elevated privileges.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprocessadvertisescript.asp">MsiProcessAdvertiseScript</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetProductInfoFromScript(System.String)">
+            <summary>
+            Gets product information for an installer script file.
+            </summary>
+            <param name="scriptFile">Path to a script file generated by
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.GenerateAdvertiseScript(System.String,System.String,System.String,System.Int32,System.Reflection.ProcessorArchitecture,System.Boolean)"/></param>
+            <returns>ProductInstallation stub with advertise-related properties filled in.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">An invalid product property was requested</exception>
+            <remarks><p>
+            Only the following properties will be filled in in the returned object:<ul>
+            <li><see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductCode"/></li>
+            <li><see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedLanguage"/></li>
+            <li><see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedVersion"/></li>
+            <li><see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedProductName"/></li>
+            <li><see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedPackageName"/></li>
+            </ul>Other properties will be null.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproductinfofromscript.asp">MsiGetProductInfoFromScript</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetErrorMessage(System.Int32)">
+            <summary>
+            Gets a Windows Installer error message in the system default language.
+            </summary>
+            <param name="errorNumber">The error number.</param>
+            <returns>The message string, or null if the error message is not found.</returns>
+            <remarks><p>
+            The returned string may have tokens such as [2] and [3] that are meant to be substituted
+            with context-specific values.
+            </p><p>
+            Error numbers greater than 2000 refer to MSI "internal" errors, and are always
+            returned in English.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetErrorMessage(System.Int32,System.Globalization.CultureInfo)">
+            <summary>
+            Gets a Windows Installer error message in a specified language.
+            </summary>
+            <param name="errorNumber">The error number.</param>
+            <param name="culture">The locale for the message.</param>
+            <returns>The message string, or null if the error message or locale is not found.</returns>
+            <remarks><p>
+            The returned string may have tokens such as [2] and [3] that are meant to be substituted
+            with context-specific values.
+            </p><p>
+            Error numbers greater than 2000 refer to MSI "internal" errors, and are always
+            returned in English.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetErrorMessage(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Gets a formatted Windows Installer error message in the system default language.
+            </summary>
+            <param name="errorRecord">Error record containing the error number in the first field, and
+            error-specific parameters in the other fields.</param>
+            <returns>The message string, or null if the error message is not found.</returns>
+            <remarks><p>
+            Error numbers greater than 2000 refer to MSI "internal" errors, and are always
+            returned in English.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetErrorMessage(Microsoft.Deployment.WindowsInstaller.Record,System.Globalization.CultureInfo)">
+            <summary>
+            Gets a formatted Windows Installer error message in a specified language.
+            </summary>
+            <param name="errorRecord">Error record containing the error number in the first field, and
+            error-specific parameters in the other fields.</param>
+            <param name="culture">The locale for the message.</param>
+            <returns>The message string, or null if the error message or locale is not found.</returns>
+            <remarks><p>
+            Error numbers greater than 2000 refer to MSI "internal" errors, and are always
+            returned in English.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetFileVersion(System.String)">
+            <summary>
+            Gets the version string of the path specified using the format that the installer
+            expects to find it in in the database.
+            </summary>
+            <param name="path">Path to the file</param>
+            <returns>Version string in the "#.#.#.#" format, or an empty string if the file
+            does not contain version information</returns>
+            <exception cref="T:System.IO.FileNotFoundException">the file does not exist or could not be read</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfileversion.asp">MsiGetFileVersion</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetFileLanguage(System.String)">
+            <summary>
+            Gets the language string of the path specified using the format that the installer
+            expects to find them in in the database.
+            </summary>
+            <param name="path">Path to the file</param>
+            <returns>Language string in the form of a decimal language ID, or an empty string if the file
+            does not contain a language ID</returns>
+            <exception cref="T:System.IO.FileNotFoundException">the file does not exist or could not be read</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfileversion.asp">MsiGetFileVersion</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetFileHash(System.String,System.Int32[])">
+            <summary>
+            Gets a 128-bit hash of the specified file.
+            </summary>
+            <param name="path">Path to the file</param>
+            <param name="hash">Integer array of length 4 which receives the
+            four 32-bit parts of the hash value.</param>
+            <exception cref="T:System.IO.FileNotFoundException">the file does not exist or
+            could not be read</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfilehash.asp">MsiGetFileHash</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetShortcutTarget(System.String)">
+            <summary>
+            Examines a shortcut and returns its product, feature name, and component if available.
+            </summary>
+            <param name="shortcut">Full path to a shortcut</param>
+            <returns>ShortcutTarget structure containing target product code, feature, and component code</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetshortcuttarget.asp">MsiGetShortcutTarget</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.VerifyPackage(System.String)">
+            <summary>
+            Verifies that the given file is an installation package.
+            </summary>
+            <param name="packagePath">Path to the package</param>
+            <returns>True if the file is an installation package; false otherwise.</returns>
+            <exception cref="T:System.IO.FileNotFoundException">the specified package file does not exist</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the package file could not be opened</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiverifypackage.asp">MsiVerifyPackage</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Installer.GetPatchFileList(System.String,System.Collections.Generic.IList{System.String})">
+            <summary>
+            [MSI 4.0] Gets the list of files that can be updated by one or more patches.
+            </summary>
+            <param name="productCode">ProductCode (GUID) of the product which is
+            the target of the patches</param>
+            <param name="patches">list of file paths of one or more patches to be
+            analyzed</param>
+            <returns>List of absolute paths of files that can be updated when the
+            patches are applied on this system.</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetpatchfilelist.asp">MsiGetPatchFileList</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootRequired">
+            <summary>
+            Indicates whether a system reboot is required after running an installation or configuration operation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Installer.RebootInitiated">
+            <summary>
+            Indicates whether a system reboot has been initiated after running an installation or configuration operation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Installer.Version">
+            <summary>
+            Gets the current version of the installer.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection">
+            <summary>
+            Accessor for information about features within the context of an installation session.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection.Contains(System.String)">
+            <summary>
+            Checks if the collection contains a feature.
+            </summary>
+            <param name="feature">name of the feature</param>
+            <returns>true if the feature is in the collection, else false</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection.CopyTo(Microsoft.Deployment.WindowsInstaller.FeatureInfo[],System.Int32)">
+            <summary>
+            Copies the features into an array.
+            </summary>
+            <param name="array">array that receives the features</param>
+            <param name="arrayIndex">offset into the array</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection.GetEnumerator">
+            <summary>
+            Enumerates the features in the collection.
+            </summary>
+            <returns>an enumerator over all features in the collection</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection.Item(System.String)">
+            <summary>
+            Gets information about a feature within the context of an installation session.
+            </summary>
+            <param name="feature">name of the feature</param>
+            <returns>feature object</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfoCollection.Count">
+            <summary>
+            Gets the number of features defined for the product.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.FeatureInfo">
+            <summary>
+            Provides access to information about a feature within the context of an installation session.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.FeatureInfo.GetCost(System.Boolean,System.Boolean,Microsoft.Deployment.WindowsInstaller.InstallState)">
+            <summary>
+            Calculates the disk space required by the feature and its selected children and parent features.
+            </summary>
+            <param name="includeParents">If true, the parent features are included in the cost.</param>
+            <param name="includeChildren">If true, the child features are included in the cost.</param>
+            <param name="installState">Specifies the installation state.</param>
+            <returns>The disk space requirement in bytes.</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeaturecost.asp">MsiGetFeatureCost</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.Name">
+            <summary>
+            Gets the name of the feature (primary key in the Feature table).
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.CurrentState">
+            <summary>
+            Gets the current install state of the feature.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeaturestate.asp">MsiGetFeatureState</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.RequestState">
+            <summary>
+            Gets or sets the action state of the feature.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
+            <remarks><p>
+            When changing the feature action, the action state of all the Components linked to the changed
+            Feature records are also updated appropriately, based on the new feature Select state.
+            All Features can be configured at once by specifying the keyword ALL instead of a specific feature name.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeaturestate.asp">MsiGetFeatureState</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetfeaturestate.asp">MsiSetFeatureState</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.ValidStates">
+            <summary>
+            Gets a list of valid installation states for the feature.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeaturevalidstates.asp">MsiGetFeatureValidStates</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.Attributes">
+            <summary>
+            Gets or sets the attributes of the feature.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeatureinfo.asp">MsiGetFeatureInfo</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetfeatureattributes.asp">MsiSetFeatureAttributes</a>
+            </p><p>
+            Since the lpAttributes paramter of
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeatureinfo.asp">MsiGetFeatureInfo</a>
+            does not contain an equivalent flag for <see cref="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.UIDisallowAbsent"/>, this flag will
+            not be retrieved.
+            </p><p>
+            Since the dwAttributes parameter of 
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetfeatureattributes.asp">MsiSetFeatureAttributes</a>
+            does not contain an equivalent flag for <see cref="F:Microsoft.Deployment.WindowsInstaller.FeatureAttributes.UIDisallowAbsent"/>, the presence
+            of this flag will be ignored.
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.Title">
+            <summary>
+            Gets the title of the feature.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeatureinfo.asp">MsiGetFeatureInfo</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInfo.Description">
+            <summary>
+            Gets the description of the feature.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.ArgumentException">an unknown feature was requested</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeatureinfo.asp">MsiGetFeatureInfo</a>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.FeatureInstallation">
+            <summary>
+            Represents an instance of a feature of an installed product.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.#ctor(System.String,System.String)">
+            <summary>
+            Creates a new FeatureInstallation instance for a feature of a product.
+            </summary>
+            <param name="featureName">feature name</param>
+            <param name="productCode">ProductCode GUID</param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.FeatureName">
+            <summary>
+            Gets the name of the feature.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.State">
+            <summary>
+            Gets the installed state of the feature.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiqueryfeaturestate.asp">MsiQueryFeatureState</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.Parent">
+            <summary>
+            Gets the parent of the feature, or null if the feature has no parent (it is a root feature).
+            </summary>
+            <remarks>
+            Invocation of this property may be slightly costly for products with many features,
+            because it involves an enumeration of all the features in the product.
+            </remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.Usage">
+            <summary>
+            Gets the usage metrics for the feature.
+            </summary>
+            <remarks><p>
+            If no usage metrics are recorded, the <see cref="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.UsageData.UseCount"/> value is 0.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetfeatureusage.asp">MsiGetFeatureUsage</a>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.UsageData">
+            <summary>
+            Holds data about the usage of a feature.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.UsageData.UseCount">
+            <summary>
+            Gets count of the number of times the feature has been used.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.FeatureInstallation.UsageData.LastUsedDate">
+            <summary>
+            Gets the date the feature was last used.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.IEmbeddedUI">
+            <summary>
+            [MSI 4.5] Interface for an embedded external user interface for an installation.
+            </summary>
+            <remarks>
+            Classes which implement this interface must have a public constructor that takes no parameters.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.IEmbeddedUI.Initialize(Microsoft.Deployment.WindowsInstaller.Session,System.String,Microsoft.Deployment.WindowsInstaller.InstallUIOptions@)">
+            <summary>
+            Initializes the embedded UI.
+            </summary>
+            <param name="session">Handle to the installer which can be used to get and set properties.
+            The handle is only valid for the duration of this method call.</param>
+            <param name="resourcePath">Path to the directory that contains all the files from the MsiEmbeddedUI table.</param>
+            <param name="internalUILevel">On entry, contains the current UI level for the installation. After this
+            method returns, the installer resets the UI level to the returned value of this parameter.</param>
+            <returns>True if the embedded UI was successfully initialized; false if the installation
+            should continue without the embedded UI.</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">The installation was canceled by the user.</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The embedded UI failed to initialize and
+            causes the installation to fail.</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/initializeembeddedui.asp">InitializeEmbeddedUI</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.IEmbeddedUI.ProcessMessage(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record,Microsoft.Deployment.WindowsInstaller.MessageButtons,Microsoft.Deployment.WindowsInstaller.MessageIcon,Microsoft.Deployment.WindowsInstaller.MessageDefaultButton)">
+            <summary>
+            Processes information and progress messages sent to the user interface.
+            </summary>
+            <param name="messageType">Message type.</param>
+            <param name="messageRecord">Record that contains message data.</param>
+            <param name="buttons">Message buttons.</param>
+            <param name="icon">Message box icon.</param>
+            <param name="defaultButton">Message box default button.</param>
+            <returns>Result of processing the message.</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/embeddeduihandler.asp">EmbeddedUIHandler</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.IEmbeddedUI.Shutdown">
+            <summary>
+            Shuts down the embedded UI at the end of the installation.
+            </summary>
+            <remarks>
+            If the installation was canceled during initialization, this method will not be called.
+            If the installation was canceled or failed at any later point, this method will be called at the end.
+            <p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/shutdownembeddedui.asp">ShutdownEmbeddedUI</a>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Installation">
+            <summary>
+            Subclasses of this abstract class represent a unique instance of a
+            registered product or patch installation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Installation.UserSid">
+            <summary>
+            Gets the user security identifier (SID) under which this product or patch
+            installation is available.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Installation.Context">
+            <summary>
+            Gets the user context of this product or patch installation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Installation.SourceList">
+            <summary>
+            Gets the source list of this product or patch installation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Installation.IsInstalled">
+            <summary>
+            Gets a value indicating whether this product or patch is installed on the current system.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Installation.Item(System.String)">
+            <summary>
+            Gets a property about the product or patch installation.
+            </summary>
+            <param name="propertyName">Name of the property being retrieved.</param>
+            <returns></returns>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InstallCost">
+            <summary>
+            Represents a per-drive disk space cost for an installation.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.InstallCost.#ctor(System.String,System.Int64,System.Int64)">
+            <summary>
+            Creates a new InstallCost object.
+            </summary>
+            <param name="driveName">name of the drive this cost data applies to</param>
+            <param name="cost">installation cost on this drive, as a number of bytes</param>
+            <param name="tempCost">temporary disk space required on this drive, as a number of bytes</param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallCost.DriveName">
+            <summary>
+            The name of the drive this cost data applies to.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallCost.Cost">
+            <summary>
+            The installation cost on this drive, as a number of bytes.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.InstallCost.TempCost">
+            <summary>
+            The temporary disk space required on this drive, as a number of bytes.
+            </summary>
+            <remarks><p>
+            This temporary space requirement is space needed only for the duration
+            of the installation, over the final footprint on disk.
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler">
+            <summary>
+            Receives an exception from
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)"/>
+            indicating the reason a particular patch is not applicable to a product.
+            </summary>
+            <param name="patch">MSP file path, XML file path, or XML blob that was passed to 
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.DetermineApplicablePatches(System.String,System.String[],Microsoft.Deployment.WindowsInstaller.InapplicablePatchHandler,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)"/></param>
+            <param name="exception">exception indicating the reason the patch is not applicable</param>
+            <remarks><p>
+            If <paramref name="exception"/> is an <see cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException"/> or subclass, then
+            its <see cref="P:Microsoft.Deployment.WindowsInstaller.InstallerException.ErrorCode"/> and <see cref="P:Microsoft.Deployment.WindowsInstaller.InstallerException.Message"/>
+            properties will indicate a more specific reason the patch was not applicable.
+            </p><p>
+            The <paramref name="exception"/> could also be a FileNotFoundException if the
+            patch string was a file path.
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Transaction">
+            <summary>
+            [MSI 4.5] Handle to a multi-session install transaction.
+            </summary>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msibegintransaction.asp">MsiBeginTransaction</a>
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msijointransaction.asp">MsiJoinTransaction</a>
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiendtransaction.asp">MsiEndTransaction</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.#ctor(System.String,Microsoft.Deployment.WindowsInstaller.TransactionAttributes)">
+            <summary>
+            [MSI 4.5] Begins transaction processing of a multi-package installation.
+            </summary>
+            <param name="name">Name of the multi-package installation.</param>
+            <param name="attributes">Select optional behavior when beginning the transaction.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The transaction could not be initialized.</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msibegintransaction.asp">MsiBeginTransaction</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.#ctor(System.String,System.IntPtr[],System.Boolean)">
+            <summary>
+            Internal constructor.
+            </summary>
+            <remarks>
+            The second parameter is an array in order to receive multiple values from the initialization method.
+            </remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.FromHandle(System.IntPtr,System.Boolean)">
+            <summary>
+            Creates a new Transaction object from an integer handle.
+            </summary>
+            <param name="handle">Integer transaction handle</param>
+            <param name="ownsHandle">true to close the handle when this object is disposed</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.Join(Microsoft.Deployment.WindowsInstaller.TransactionAttributes)">
+            <summary>
+            Makes the current process the owner of the multi-package installation transaction.
+            </summary>
+            <param name="attributes">Select optional behavior when joining the transaction.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">The transaction handle is not valid.</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The transaction could not be joined.</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msijointransaction.asp">MsiJoinTransaction</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.Commit">
+            <summary>
+            Ends the install transaction and commits all changes to the system belonging to the transaction.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The transaction could not be committed.</exception>
+            <remarks><p>
+            Runs any Commit Custom Actions and commits to the system any changes to Win32 or common language
+            runtime assemblies. Deletes the rollback script, and after using this option, the transaction's
+            changes can no longer be undone with a Rollback Installation.
+            </p><p>
+            This method can only be called by the current owner of the transaction.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiendtransaction.asp">MsiEndTransaction</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Transaction.Rollback">
+            <summary>
+            Ends the install transaction and undoes changes to the system belonging to the transaction.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The transaction could not be rolled back.</exception>
+            <remarks><p>
+            This method can only be called by the current owner of the transaction.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiendtransaction.asp">MsiEndTransaction</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Transaction.Name">
+            <summary>
+            Gets the name of the transaction.
+            </summary>
+        </member>
+        <member name="E:Microsoft.Deployment.WindowsInstaller.Transaction.OwnerChanged">
+            <summary>
+            Notifies listeners when the process that owns the transaction changed.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.MediaDisk">
+            <summary>
+            Represents a media disk source of a product or a patch.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.MediaDisk.#ctor(System.Int32,System.String,System.String)">
+            <summary>
+            Creates a new media disk.
+            </summary>
+            <param name="diskId"></param>
+            <param name="volumeLabel"></param>
+            <param name="diskPrompt"></param>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.MediaDisk.DiskId">
+            <summary>
+            Gets or sets the disk id of the media disk.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.MediaDisk.VolumeLabel">
+            <summary>
+            Gets or sets the volume label of the media disk.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.MediaDisk.DiskPrompt">
+            <summary>
+            Gets or sets the disk prompt of the media disk.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.PatchInstallation">
+            <summary>
+            The Patch object represents a unique instance of a patch that has been
+            registered or applied.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.PatchInstallation.GetPatches(System.String,System.String,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts,Microsoft.Deployment.WindowsInstaller.PatchStates)">
+            <summary>
+            Enumerates patch installations based on certain criteria.
+            </summary>
+            <param name="patchCode">PatchCode (GUID) of the patch to be enumerated. Only
+            instances of patches within the scope of the context specified by the
+            <paramref name="userSid"/> and <paramref name="context"/> parameters will be
+            enumerated. This parameter may be set to null to enumerate all patches in the specified
+            context.</param>
+            <param name="targetProductCode">ProductCode (GUID) product whose patches are to be
+            enumerated. If non-null, patch enumeration is restricted to instances of this product
+            within the specified context. If null, the patches for all products under the specified
+            context are enumerated.</param>
+            <param name="userSid">Specifies a security identifier (SID) that restricts the context
+            of enumeration. A SID value other than s-1-1-0 is considered a user SID and restricts
+            enumeration to the current user or any user in the system. The special SID string
+            s-1-1-0 (Everyone) specifies enumeration across all users in the system. This parameter
+            can be set to null to restrict the enumeration scope to the current user. When
+            <paramref name="installContext"/> is set to the machine context only,
+            <paramref name="userSid"/> must be null.</param>
+            <param name="context">Specifies the user context.</param>
+            <param name="states">The <see cref="T:Microsoft.Deployment.WindowsInstaller.PatchStates"/> of patches to return.</param>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumpatchesex.asp">MsiEnumPatchesEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.PatchInstallation.#ctor(System.String,System.String)">
+            <summary>
+            Creates a new object for accessing information about a patch installation on the current system.
+            </summary>
+            <param name="patchCode">Patch code (GUID) of the patch.</param>
+            <param name="productCode">ProductCode (GUID) the patch has been applied to.
+            This parameter may be null for patches that are registered only and not yet
+            applied to any product.</param>
+            <remarks><p>
+            All available user contexts will be queried.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.PatchInstallation.#ctor(System.String,System.String,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)">
+            <summary>
+            Creates a new object for accessing information about a patch installation on the current system.
+            </summary>
+            <param name="patchCode">Registered patch code (GUID) of the patch.</param>
+            <param name="productCode">ProductCode (GUID) the patch has been applied to.
+            This parameter may be null for patches that are registered only and not yet
+            applied to any product.</param>
+            <param name="userSid">The specific user, when working in a user context.  This
+            parameter may be null to indicate the current user.  The parameter must be null
+            when working in a machine context.</param>
+            <param name="context">The user context. The calling process must have administrative
+            privileges to get information for a product installed for a user other than the
+            current user.</param>
+            <remarks><p>
+            If the <paramref name="productCode"/> is null, the Patch object may
+            only be used to read and update the patch's SourceList information.
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.AllPatches">
+            <summary>
+            Enumerates all patch installations on the system.
+            </summary>
+            <returns>Enumeration of patch objects.</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumpatches.asp">MsiEnumPatches</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.PatchCode">
+            <summary>
+            Gets the patch code (GUID) of the patch.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.ProductCode">
+            <summary>
+            Gets the ProductCode (GUID) of the product.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.IsInstalled">
+            <summary>
+            Gets a value indicating whether this patch is currently installed.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.IsObsoleted">
+            <summary>
+            Gets a value indicating whether this patch is marked as obsolte.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.IsSuperseded">
+            <summary>
+            Gets a value indicating whether this patch is present but has been
+            superseded by a more recent installed patch.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.State">
+            <summary>
+            Gets the installation state of this instance of the patch.
+            </summary>
+            <exception cref="T:System.ArgumentException">An unknown patch was requested</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.LocalPackage">
+            <summary>
+            Gets the cached patch file that the product uses.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.Transforms">
+            <summary>
+            Gets the set of patch transforms that the last patch
+            installation applied to the product.
+            </summary>
+            <remarks><p>
+            This value may not be available for per-user, non-managed applications
+            if the user is not logged on.
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.InstallDate">
+            <summary>
+            Gets the date and time when the patch is applied to the product.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.Uninstallable">
+            <summary>
+            True patch is marked as possible to uninstall from the product.
+            </summary>
+            <remarks><p>
+            Even if this property is true, the installer can still block the
+            uninstallation if this patch is required by another patch that
+            cannot be uninstalled.
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.DisplayName">
+            <summary>
+            Get the registered display name for the patch.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.MoreInfoUrl">
+            <summary>
+            Gets the registered support information URL for the patch.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.PatchInstallation.Item(System.String)">
+            <summary>
+            Gets information about a specific patch installation. 
+            </summary>
+            <param name="propertyName">The property being retrieved; see remarks for valid properties.</param>
+            <returns>The property value, or an empty string if the property is not set for the patch.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">An unknown patch or property was requested</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetpatchinfo.asp">MsiGetPatchInfo</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetpatchinfoex.asp">MsiGetPatchInfoEx</a>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ProductInstallation">
+            <summary>
+            Represents a unique instance of a product that
+            is either advertised, installed or unknown.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.GetRelatedProducts(System.String)">
+            <summary>
+            Gets the set of all products with a specified upgrade code. This method lists the
+            currently installed and advertised products that have the specified UpgradeCode
+            property in their Property table.
+            </summary>
+            <param name="upgradeCode">Upgrade code of related products</param>
+            <returns>Enumeration of product codes</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumrelatedproducts.asp">MsiEnumRelatedProducts</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.GetProducts(System.String,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)">
+            <summary>
+            Enumerates product installations based on certain criteria.
+            </summary>
+            <param name="productCode">ProductCode (GUID) of the product instances to be enumerated. Only
+            instances of products within the scope of the context specified by the
+            <paramref name="userSid"/> and <paramref name="installContext"/> parameters will be
+            enumerated. This parameter may be set to null to enumerate all products in the specified
+            context.</param>
+            <param name="userSid">Specifies a security identifier (SID) that restricts the context
+            of enumeration. A SID value other than s-1-1-0 is considered a user SID and restricts
+            enumeration to the current user or any user in the system. The special SID string
+            s-1-1-0 (Everyone) specifies enumeration across all users in the system. This parameter
+            can be set to null to restrict the enumeration scope to the current user. When
+            <paramref name="context"/> is set to the machine context only,
+            <paramref name="userSid"/> must be null.</param>
+            <param name="context">Specifies the user context.</param>
+            <returns>An enumeration of product objects for enumerated product instances.</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumproductsex.asp">MsiEnumProductsEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.#ctor(System.String)">
+            <summary>
+            Creates a new object for accessing information about a product installation on the current system.
+            </summary>
+            <param name="productCode">ProductCode (GUID) of the product.</param>
+            <remarks><p>
+            All available user contexts will be queried.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.#ctor(System.String,System.String,Microsoft.Deployment.WindowsInstaller.UserContexts)">
+            <summary>
+            Creates a new object for accessing information about a product installation on the current system.
+            </summary>
+            <param name="productCode">ProductCode (GUID) of the product.</param>
+            <param name="userSid">The specific user, when working in a user context.  This
+            parameter may be null to indicate the current user.  The parameter must be null
+            when working in a machine context.</param>
+            <param name="context">The user context. The calling process must have administrative
+            privileges to get information for a product installed for a user other than the
+            current user.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.GetFeatureState(System.String)">
+            <summary>
+            Gets the installed state for a product feature.
+            </summary>
+            <param name="feature">The feature being queried; identifier from the
+            Feature table</param>
+            <returns>Installation state of the feature for the product instance: either
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Local"/>, <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Source"/>,
+            or <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Advertised"/>.</returns>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiqueryfeaturestate.asp">MsiQueryFeatureState</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiqueryfeaturestateex.asp">MsiQueryFeatureStateEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.GetComponentState(System.String)">
+            <summary>
+            Gets the installed state for a product component.
+            </summary>
+            <param name="component">The component being queried; GUID of the component
+            as found in the ComponentId column of the Component table.</param>
+            <returns>Installation state of the component for the product instance: either
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Local"/> or <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallState.Source"/>.</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiquerycomponnetstate.asp">MsiQueryComponentState</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.CollectUserInfo">
+            <summary>
+            Obtains and stores the user information and product ID from an installation wizard.
+            </summary>
+            <remarks><p>
+            This method is typically called by an application during the first run of the application. The application
+            first gets the <see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductId"/> or <see cref="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.RegOwner"/>.
+            If those properties are missing, the application calls CollectUserInfo.
+            CollectUserInfo opens the product's installation package and invokes a wizard sequence that collects
+            user information. Upon completion of the sequence, user information is registered. Since this API requires
+            an authored user interface, the user interface level should be set to full by calling
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.SetInternalUI(Microsoft.Deployment.WindowsInstaller.InstallUIOptions)"/> as <see cref="F:Microsoft.Deployment.WindowsInstaller.InstallUIOptions.Full"/>.
+            </p><p>
+            The CollectUserInfo method invokes a FirstRun dialog from the product installation database.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msicollectuserinfo.asp">MsiCollectUserInfo</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ParseVersion(System.String)">
+            <summary>
+            Some products might write some invalid/nonstandard version strings to the registry.
+            This method tries to get the best data it can.
+            </summary>
+            <param name="ver">Version string retrieved from the registry.</param>
+            <returns>Version object, or null if the version string is completely invalid.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AllProducts">
+            <summary>
+            Enumerates all product installations on the system.
+            </summary>
+            <returns>An enumeration of product objects.</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumproducts.asp">MsiEnumProducts</a>,
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.Features">
+            <summary>
+            Gets the set of published features for the product.
+            </summary>
+            <returns>Enumeration of published features for the product.</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
+            <remarks><p>
+            Because features are not ordered, any new feature has an arbitrary index, meaning
+            this property can return features in any order.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumfeatures.asp">MsiEnumFeatures</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductCode">
+            <summary>
+            Gets the ProductCode (GUID) of the product.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.IsInstalled">
+            <summary>
+            Gets a value indicating whether this product is installed on the current system.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.IsAdvertised">
+            <summary>
+            Gets a value indicating whether this product is advertised on the current system.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.IsElevated">
+            <summary>
+            Checks whether the product is installed with elevated privileges. An application is called
+            a "managed application" if elevated (system) privileges are used to install the application.
+            </summary>
+            <returns>True if the product is elevated; false otherwise</returns>
+            <remarks><p>
+            Note that this property does not take into account policies such as AlwaysInstallElevated,
+            but verifies that the local system owns the product's registry data.
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.SourceList">
+            <summary>
+            Gets the source list of this product installation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.HelpLink">
+            <summary>
+            The support link.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.HelpTelephone">
+            <summary>
+            The support telephone.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.InstallDate">
+            <summary>
+            Date and time the product was installed.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductName">
+            <summary>
+            The installed product name.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.InstallLocation">
+            <summary>
+            The installation location.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.InstallSource">
+            <summary>
+            The installation source.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.LocalPackage">
+            <summary>
+            The local cached package.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.Publisher">
+            <summary>
+            The publisher.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.UrlInfoAbout">
+            <summary>
+            URL about information.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.UrlUpdateInfo">
+            <summary>
+            The URL update information.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductVersion">
+            <summary>
+            The product version.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.ProductId">
+            <summary>
+            The product identifier.
+            </summary>
+            <remarks><p>
+            For more information, see
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/productid.asp">ProductID</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.RegCompany">
+            <summary>
+            The company that is registered to use the product.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.RegOwner">
+            <summary>
+            The owner who is registered to use the product.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedTransforms">
+            <summary>
+            Transforms.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedLanguage">
+            <summary>
+            Product language.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedProductName">
+            <summary>
+            Human readable product name.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedPerMachine">
+            <summary>
+            True if the product is advertised per-machine;
+            false if it is per-user or not advertised.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedPackageCode">
+            <summary>
+            Identifier of the package that a product is installed from.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedVersion">
+            <summary>
+            Version of the advertised product.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedProductIcon">
+            <summary>
+            Primary icon for the package.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.AdvertisedPackageName">
+            <summary>
+            Name of the installation package for the advertised product.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.PrivilegedPatchingAuthorized">
+            <summary>
+            True if the advertised product can be serviced by
+            non-administrators without elevation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ProductInstallation.Item(System.String)">
+            <summary>
+            Gets information about an installation of a product. 
+            </summary>
+            <param name="propertyName">Name of the property being retrieved.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">An unknown product or property was requested</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The installer configuration data is corrupt</exception>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproductinfo.asp">MsiGetProductInfo</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproductinfoex.asp">MsiGetProductInfoEx</a>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Record">
+            <summary>
+            The Record object is a container for holding and transferring a variable number of values.
+            Fields within the record are numerically indexed and can contain strings, integers, streams,
+            and null values. Record fields are indexed starting with 1.  Field 0 is a special format field.
+            </summary>
+            <remarks><p>
+            Most methods on the Record class have overloads that allow using either a number
+            or a name to designate a field. However note that field names only exist when the
+            Record is directly returned from a query on a database. For other records, attempting
+            to access a field by name will result in an InvalidOperationException.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.#ctor(System.Int32)">
+            <summary>
+            Creates a new record object with the requested number of fields.
+            </summary>
+            <param name="fieldCount">Required number of fields, which may be 0.
+            The maximum number of fields in a record is limited to 65535.</param>
+            <remarks><p>
+            The Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msicreaterecord.asp">MsiCreateRecord</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.#ctor(System.Object[])">
+            <summary>
+            Creates a new record object, providing values for an arbitrary number of fields.
+            </summary>
+            <param name="fields">The values of the record fields.  The parameters should be of type Int16, Int32 or String</param>
+            <remarks><p>
+            The Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msicreaterecord.asp">MsiCreateRecord</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.FromHandle(System.IntPtr,System.Boolean)">
+            <summary>
+            Creates a new Record object from an integer record handle.
+            </summary>
+            <remarks><p>
+            This method is only provided for interop purposes.  A Record object
+            should normally be obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>
+            other methods.
+            <p>The handle will be closed when this object is disposed or finalized.</p>
+            </p></remarks>
+            <param name="handle">Integer record handle</param>
+            <param name="ownsHandle">true to close the handle when this object is disposed or finalized</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.Clear">
+            <summary>
+            Sets all fields in a record to null.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordcleardata.asp">MsiRecordClearData</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.IsNull(System.Int32)">
+            <summary>
+            Reports whether a record field is null.
+            </summary>
+            <param name="field">Specifies the field to check.</param>
+            <returns>True if the field is null, false otherwise.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordisnull.asp">MsiRecordIsNull</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.IsNull(System.String)">
+            <summary>
+            Reports whether a record field is null.
+            </summary>
+            <param name="fieldName">Specifies the field to check.</param>
+            <returns>True if the field is null, false otherwise.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetDataSize(System.Int32)">
+            <summary>
+            Gets the length of a record field. The count does not include the terminating null.
+            </summary>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            The returned data size is 0 if the field is null, non-existent,
+            or an internal object pointer. The method also returns 0 if the handle is not a valid
+            Record handle.
+            </p><p>
+            If the data is in integer format, the property returns 2 or 4.
+            </p><p>
+            If the data is in string format, the property returns the character count
+            (not including the NULL terminator).
+            </p><p>
+            If the data is in stream format, the property returns the byte count.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecorddatasize.asp">MsiRecordDataSize</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetDataSize(System.String)">
+            <summary>
+            Gets the length of a record field. The count does not include the terminating null.
+            </summary>
+            <param name="fieldName">Specifies the field to check.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+            <remarks><p>The returned data size is 0 if the field is null, non-existent,
+            or an internal object pointer. The method also returns 0 if the handle is not a valid
+            Record handle.
+            </p><p>
+            If the data is in integer format, the property returns 2 or 4.
+            </p><p>
+            If the data is in string format, the property returns the character count
+            (not including the NULL terminator).
+            </p><p>
+            If the data is in stream format, the property returns the byte count.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetInteger(System.Int32)">
+            <summary>
+            Gets a field value as an integer.
+            </summary>
+            <param name="field">Specifies the field to retrieve.</param>
+            <returns>Integer value of the field, or 0 if the field is null.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetinteger.asp">MsiRecordGetInteger</a>
+            </p></remarks>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetNullableInteger(System.Int32)"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetInteger(System.String)">
+            <summary>
+            Gets a field value as an integer.
+            </summary>
+            <param name="fieldName">Specifies the field to retrieve.</param>
+            <returns>Integer value of the field, or 0 if the field is null.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetNullableInteger(System.String)"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetNullableInteger(System.Int32)">
+            <summary>
+            Gets a field value as an integer.
+            </summary>
+            <param name="field">Specifies the field to retrieve.</param>
+            <returns>Integer value of the field, or null if the field is null.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetinteger.asp">MsiRecordGetInteger</a>
+            </p></remarks>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetInteger(System.Int32)"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetNullableInteger(System.String)">
+            <summary>
+            Gets a field value as an integer.
+            </summary>
+            <param name="fieldName">Specifies the field to retrieve.</param>
+            <returns>Integer value of the field, or null if the field is null.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetInteger(System.String)"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetInteger(System.Int32,System.Int32)">
+            <summary>
+            Sets the value of a field to an integer.
+            </summary>
+            <param name="field">Specifies the field to set.</param>
+            <param name="value">new value of the field</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetinteger.asp">MsiRecordSetInteger</a>
+            </p></remarks>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetNullableInteger(System.Int32,System.Nullable{System.Int32})"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetInteger(System.String,System.Int32)">
+            <summary>
+            Sets the value of a field to an integer.
+            </summary>
+            <param name="fieldName">Specifies the field to set.</param>
+            <param name="value">new value of the field</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetNullableInteger(System.String,System.Nullable{System.Int32})"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetNullableInteger(System.Int32,System.Nullable{System.Int32})">
+            <summary>
+            Sets the value of a field to a nullable integer.
+            </summary>
+            <param name="field">Specifies the field to set.</param>
+            <param name="value">new value of the field</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetinteger.asp">MsiRecordSetInteger</a>
+            </p></remarks>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetInteger(System.Int32,System.Int32)"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetNullableInteger(System.String,System.Nullable{System.Int32})">
+            <summary>
+            Sets the value of a field to a nullable integer.
+            </summary>
+            <param name="fieldName">Specifies the field to set.</param>
+            <param name="value">new value of the field</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetInteger(System.String,System.Int32)"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetString(System.Int32)">
+            <summary>
+            Gets a field value as a string.
+            </summary>
+            <param name="field">Specifies the field to retrieve.</param>
+            <returns>String value of the field, or an empty string if the field is null.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetstring.asp">MsiRecordGetString</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetString(System.String)">
+            <summary>
+            Gets a field value as a string.
+            </summary>
+            <param name="fieldName">Specifies the field to retrieve.</param>
+            <returns>String value of the field, or an empty string if the field is null.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetString(System.Int32,System.String)">
+            <summary>
+            Sets the value of a field to a string.
+            </summary>
+            <param name="field">Specifies the field to set.</param>
+            <param name="value">new value of the field</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetstring.asp">MsiRecordSetString</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetString(System.String,System.String)">
+            <summary>
+            Sets the value of a field to a string.
+            </summary>
+            <param name="fieldName">Specifies the field to set.</param>
+            <param name="value">new value of the field</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.Int32,System.String)">
+            <summary>
+            Reads a record stream field into a file.
+            </summary>
+            <param name="field">Specifies the field of the Record to get.</param>
+            <param name="filePath">Specifies the path to the file to contain the stream.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <exception cref="T:System.NotSupportedException">Attempt to extract a storage from a database open
+            in read-write mode, or from a database without an associated file path</exception>
+            <remarks><p>
+            This method is capable of directly extracting substorages. To do so, first select both the
+            `Name` and `Data` column of the `_Storages` table, then get the stream of the `Data` field.
+            However, substorages may only be extracted from a database that is open in read-only mode.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordreadstream.asp">MsiRecordReadStream</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.String,System.String)">
+            <summary>
+            Reads a record stream field into a file.
+            </summary>
+            <param name="fieldName">Specifies the field of the Record to get.</param>
+            <param name="filePath">Specifies the path to the file to contain the stream.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+            <exception cref="T:System.NotSupportedException">Attempt to extract a storage from a database open
+            in read-write mode, or from a database without an associated file path</exception>
+            <remarks><p>
+            This method is capable of directly extracting substorages. To do so, first select both the
+            `Name` and `Data` column of the `_Storages` table, then get the stream of the `Data` field.
+            However, substorages may only be extracted from a database that is open in read-only mode.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.Int32)">
+            <summary>
+            Gets a record stream field.
+            </summary>
+            <param name="field">Specifies the field of the Record to get.</param>
+            <returns>A Stream that reads the field data.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            This method is not capable of reading substorages. To extract a substorage,
+            use <see cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.Int32,System.String)"/>.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordreadstream.asp">MsiRecordReadStream</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.String)">
+            <summary>
+            Gets a record stream field.
+            </summary>
+            <param name="fieldName">Specifies the field of the Record to get.</param>
+            <returns>A Stream that reads the field data.</returns>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+            <remarks><p>
+            This method is not capable of reading substorages. To extract a substorage,
+            use <see cref="M:Microsoft.Deployment.WindowsInstaller.Record.GetStream(System.String,System.String)"/>.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.Int32,System.String)">
+            <summary>
+            Sets a record stream field from a file. Stream data cannot be inserted into temporary fields.
+            </summary>
+            <param name="field">Specifies the field of the Record to set.</param>
+            <param name="filePath">Specifies the path to the file containing the stream.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            The contents of the specified file are read into a stream object. The stream persists if
+            the Record is inserted into the Database and the Database is committed.
+            </p><p>
+            To reset the stream to its beginning you must pass in null for filePath.
+            Do not pass an empty string, "", to reset the stream.
+            </p><p>
+            Setting a stream with this method is more efficient than setting a field to a
+            FileStream object.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetstream.asp">MsiRecordsetStream</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.String,System.String)">
+            <summary>
+            Sets a record stream field from a file. Stream data cannot be inserted into temporary fields.
+            </summary>
+            <param name="fieldName">Specifies the field name of the Record to set.</param>
+            <param name="filePath">Specifies the path to the file containing the stream.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+            <remarks><p>
+            The contents of the specified file are read into a stream object. The stream persists if
+            the Record is inserted into the Database and the Database is committed.
+            To reset the stream to its beginning you must pass in null for filePath.
+            Do not pass an empty string, "", to reset the stream.
+            </p><p>
+            Setting a stream with this method is more efficient than setting a field to a
+            FileStream object.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.Int32,System.IO.Stream)">
+            <summary>
+            Sets a record stream field from a Stream object. Stream data cannot be inserted into temporary fields.
+            </summary>
+            <param name="field">Specifies the field of the Record to set.</param>
+            <param name="stream">Specifies the stream data.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            The stream persists if the Record is inserted into the Database and the Database is committed.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetstream.asp">MsiRecordsetStream</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.String,System.IO.Stream)">
+            <summary>
+            Sets a record stream field from a Stream object. Stream data cannot be inserted into temporary fields.
+            </summary>
+            <param name="fieldName">Specifies the field name of the Record to set.</param>
+            <param name="stream">Specifies the stream data.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field name does not match any
+            of the named fields in the Record.</exception>
+            <remarks><p>
+            The stream persists if the Record is inserted into the Database and the Database is committed.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.ToString">
+            <summary>
+            Gets a formatted string representation of the Record.
+            </summary>
+            <returns>A formatted string representation of the Record.</returns>
+            <remarks><p>
+            If field 0 of the Record is set to a nonempty string, it is used to format the data in the Record.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
+            </p></remarks>
+            <seealso cref="P:Microsoft.Deployment.WindowsInstaller.Record.FormatString"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Session.FormatRecord(Microsoft.Deployment.WindowsInstaller.Record)"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.ToString(System.IFormatProvider)">
+            <summary>
+            Gets a formatted string representation of the Record, optionally using a Session to format properties.
+            </summary>
+            <param name="provider">an optional Session instance that will be used to lookup any
+            properties in the Record's format string</param>
+            <returns>A formatted string representation of the Record.</returns>
+            <remarks><p>
+            If field 0 of the Record is set to a nonempty string, it is used to format the data in the Record.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
+            </p></remarks>
+            <seealso cref="P:Microsoft.Deployment.WindowsInstaller.Record.FormatString"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Session.FormatRecord(Microsoft.Deployment.WindowsInstaller.Record)"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.ToString(System.String)">
+            <summary>
+            Gets a formatted string representation of the Record.
+            </summary>
+            <param name="format">String to be used to format the data in the Record,
+            instead of the Record's format string.</param>
+            <returns>A formatted string representation of the Record.</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Record.ToString(System.String,System.IFormatProvider)">
+            <summary>
+            Gets a formatted string representation of the Record, optionally using a Session to format properties.
+            </summary>
+            <param name="format">String to be used to format the data in the Record,
+            instead of the Record's format string.</param>
+            <param name="provider">an optional Session instance that will be used to lookup any
+            properties in the Record's format string</param>
+            <returns>A formatted string representation of the Record.</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
+            </p></remarks>
+            <seealso cref="P:Microsoft.Deployment.WindowsInstaller.Record.FormatString"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Session.FormatRecord(Microsoft.Deployment.WindowsInstaller.Record)"/>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Record.IsFormatStringInvalid">
+            <summary>
+            IsFormatStringInvalid is set from several View methods that invalidate the FormatString
+            and used to determine behavior during Record.ToString().
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Record.FieldCount">
+            <summary>
+            Gets the number of fields in a record.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetfieldcount.asp">MsiRecordGetFieldCount</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Record.FormatString">
+            <summary>
+            Gets or sets field 0 of the Record, which is the format string.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Record.Item(System.String)">
+            <summary>
+            Gets or sets a record field value.
+            </summary>
+            <param name="fieldName">Specifies the name of the field of the Record to get or set.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The name does not match any known field of the Record.</exception>
+            <remarks><p>
+            When getting a field, the type of the object returned depends on the type of the Record field.
+            The object will be one of: Int16, Int32, String, Stream, or null.
+            </p><p>
+            When setting a field, the type of the object provided will be converted to match the View
+            query that returned the record, or if Record was not returned from a view then the type of
+            the object provided will determine the type of the Record field. The object should be one of:
+            Int16, Int32, String, Stream, or null.
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Record.Item(System.Int32)">
+            <summary>
+            Gets or sets a record field value.
+            </summary>
+            <param name="field">Specifies the field of the Record to get or set.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">The field is less than 0 or greater than the
+            number of fields in the Record.</exception>
+            <remarks><p>
+            Record fields are indexed starting with 1.  Field 0 is a special format field.
+            </p><p>
+            When getting a field, the type of the object returned depends on the type of the Record field.
+            The object will be one of: Int16, Int32, String, Stream, or null.  If the Record was returned
+            from a View, the type will match that of the field from the View query.  Otherwise, the type
+            will match the type of the last value set for the field.
+            </p><p>
+            When setting a field, the type of the object provided will be converted to match the View
+            query that returned the Record, or if Record was not returned from a View then the type of
+            the object provided will determine the type of the Record field. The object should be one of:
+            Int16, Int32, String, Stream, or null.
+            </p><p>
+            The type-specific getters and setters are slightly more efficient than this property, since
+            they don't have to do the extra work to infer the value's type every time.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetinteger.asp">MsiRecordGetInteger</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordgetstring.asp">MsiRecordGetString</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetinteger.asp">MsiRecordSetInteger</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msirecordsetstring.asp">MsiRecordSetString</a>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.RemoteMsiFunctionId">
+            <summary>
+            Assigns ID numbers to the MSI APIs that are remotable.
+            </summary>
+            <remarks><p>
+            This enumeration MUST stay in sync with the
+            unmanaged equivalent in RemoteMsiSession.h!
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.MsiRemoteInvoke">
+            <summary>
+            Defines the signature of the native function
+            in SfxCA.dll that implements the remoting call.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.RemotableNativeMethods">
+            <summary>
+            Redirects native API calls to either the normal NativeMethods class
+            or to out-of-proc calls via the remoting channel.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.RemotableNativeMethods.RemotingEnabled">
+            <summary>
+            Checks if the current process is using remoting to access the
+            MSI session and database APIs.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.RemotableNativeMethods.RemotingDelegate">
+            <summary>
+            Sets a delegate that is used to make remote API calls.
+            </summary>
+            <remarks><p>
+            The implementation of this delegate is provided by the
+            custom action host DLL.
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.Session">
+            <summary>
+            The Session object controls the installation process. It opens the
+            install database, which contains the installation tables and data.
+            </summary>
+            <remarks><p>
+            This object is associated with a standard set of action functions,
+            each performing particular operations on data from one or more tables. Additional
+            custom actions may be added for particular product installations. The basic engine
+            function is a sequencer that fetches sequential records from a designated sequence
+            table, evaluates any specified condition expression, and executes the designated
+            action. Actions not recognized by the engine are deferred to the UI handler object
+            for processing, usually dialog box sequences.
+            </p><p>
+            Note that only one Session object can be opened by a single process.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.FromHandle(System.IntPtr,System.Boolean)">
+            <summary>
+            Creates a new Session object from an integer session handle.
+            </summary>
+            <param name="handle">Integer session handle</param>
+            <param name="ownsHandle">true to close the handle when this object is disposed or finalized</param>
+            <remarks><p>
+            This method is only provided for interop purposes.  A Session object
+            should normally be obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.OpenPackage(Microsoft.Deployment.WindowsInstaller.Database,System.Boolean)"/>
+            or <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.OpenProduct(System.String)"/>.
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.Message(Microsoft.Deployment.WindowsInstaller.InstallMessage,Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Performs any enabled logging operations and defers execution to the UI handler
+            object associated with the engine.
+            </summary>
+            <param name="messageType">Type of message to be processed</param>
+            <param name="record">Contains message-specific fields</param>
+            <returns>A message-dependent return value</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session or Record handle is invalid</exception>
+            <exception cref="T:System.ArgumentOutOfRangeException">an invalid message kind is specified</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the message-handler failed for an unknown reason</exception>
+            <remarks><p>
+            Logging may be selectively enabled for the various message types.
+            See the <see cref="M:Microsoft.Deployment.WindowsInstaller.Installer.EnableLog(Microsoft.Deployment.WindowsInstaller.InstallLogModes,System.String)"/> method.
+            </p><p>
+            If record field 0 contains a formatting string, it is used to format the data in
+            the other fields. Else if the message is an error, warning, or user message, an attempt
+            is made to find a message template in the Error table for the current database using the
+            error number found in field 1 of the record for message types and return values.
+            </p><p>
+            The <paramref name="messageType"/> parameter may also include message-box flags from
+            the following enumerations: System.Windows.Forms.MessageBoxButtons,
+            System.Windows.Forms.MessageBoxDefaultButton, System.Windows.Forms.MessageBoxIcon.  These
+            flags can be combined with the InstallMessage with a bitwise OR.
+            </p><p>
+            Note, this method never returns Cancel or Error values.  Instead, appropriate
+            exceptions are thrown in those cases.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprocessmessage.asp">MsiProcessMessage</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.Log(System.String)">
+            <summary>
+            Writes a message to the log, if logging is enabled.
+            </summary>
+            <param name="msg">The line to be written to the log</param>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprocessmessage.asp">MsiProcessMessage</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.Log(System.String,System.Object[])">
+            <summary>
+            Writes a formatted message to the log, if logging is enabled.
+            </summary>
+            <param name="format">The line to be written to the log, containing 0 or more format specifiers</param>
+            <param name="args">An array containing 0 or more objects to be formatted</param>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiprocessmessage.asp">MsiProcessMessage</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.EvaluateCondition(System.String)">
+            <summary>
+            Evaluates a logical expression containing symbols and values.
+            </summary>
+            <param name="condition">conditional expression</param>
+            <returns>The result of the condition evaluation</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.ArgumentNullException">the condition is null or empty</exception>
+            <exception cref="T:System.InvalidOperationException">the conditional expression is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msievaluatecondition.asp">MsiEvaluateCondition</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.EvaluateCondition(System.String,System.Boolean)">
+            <summary>
+            Evaluates a logical expression containing symbols and values, specifying a default
+            value to be returned in case the condition is empty.
+            </summary>
+            <param name="condition">conditional expression</param>
+            <param name="defaultValue">value to return if the condition is empty</param>
+            <returns>The result of the condition evaluation</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.InvalidOperationException">the conditional expression is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msievaluatecondition.asp">MsiEvaluateCondition</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.Format(System.String)">
+            <summary>
+            Formats a string containing installer properties.
+            </summary>
+            <param name="format">A format string containing property tokens</param>
+            <returns>A formatted string containing property data</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Record handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.FormatRecord(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Returns a formatted string from record data.
+            </summary>
+            <param name="record">Record object containing a template and data to be formatted.
+            The template string must be set in field 0 followed by any referenced data parameters.</param>
+            <returns>A formatted string containing the record data</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Record handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.FormatRecord(Microsoft.Deployment.WindowsInstaller.Record,System.String)">
+            <summary>
+            Returns a formatted string from record data using a specified format.
+            </summary>
+            <param name="record">Record object containing a template and data to be formatted</param>
+            <param name="format">Format string to be used instead of field 0 of the Record</param>
+            <returns>A formatted string containing the record data</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Record handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiformatrecord.asp">MsiFormatRecord</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.GetProductProperty(System.String)">
+            <summary>
+            Retrieves product properties (not session properties) from the product database.
+            </summary>
+            <returns>Value of the property, or an empty string if the property is not set.</returns>
+            <remarks><p>
+            Note this is not the correct method for getting ordinary session properties. For that,
+            see the indexer on the Session class.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproductproperty.asp">MsiGetProductProperty</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.VerifyDiskSpace">
+            <summary>
+            Checks to see if sufficient disk space is present for the current installation.
+            </summary>
+            <returns>True if there is sufficient disk space; false otherwise.</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiverifydiskspace.asp">MsiVerifyDiskSpace</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.GetTotalCost">
+            <summary>
+            Gets the total disk space per drive required for the installation.
+            </summary>
+            <returns>A list of InstallCost structures, specifying the cost for each drive</returns>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msienumcomponentcosts.asp">MsiEnumComponentCosts</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.GetMode(Microsoft.Deployment.WindowsInstaller.InstallRunMode)">
+            <summary>
+            Gets the designated mode flag for the current install session.
+            </summary>
+            <param name="mode">The type of mode to be checked.</param>
+            <returns>The value of the designated mode flag.</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.ArgumentOutOfRangeException">an invalid mode flag was specified</exception>
+            <remarks><p>
+            Note that only the following run modes are available to read from
+            a deferred custom action:<list type="bullet">
+            <item><description><see cref="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Scheduled"/></description></item>
+            <item><description><see cref="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Rollback"/></description></item>
+            <item><description><see cref="F:Microsoft.Deployment.WindowsInstaller.InstallRunMode.Commit"/></description></item>
+            </list>
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetmode.asp">MsiGetMode</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.SetMode(Microsoft.Deployment.WindowsInstaller.InstallRunMode,System.Boolean)">
+            <summary>
+            Sets the designated mode flag for the current install session.
+            </summary>
+            <param name="mode">The type of mode to be set.</param>
+            <param name="value">The desired value of the mode.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:System.ArgumentOutOfRangeException">an invalid mode flag was specified</exception>
+            <exception cref="T:System.InvalidOperationException">the mode cannot not be set</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetmode.asp">MsiSetMode</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.GetSourcePath(System.String)">
+            <summary>
+            Gets the full path to the designated folder on the source media or server image.
+            </summary>
+            <exception cref="T:System.ArgumentException">the folder was not found in the Directory table</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetsourcepath.asp">MsiGetSourcePath</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.GetTargetPath(System.String)">
+            <summary>
+            Gets the full path to the designated folder on the installation target drive.
+            </summary>
+            <exception cref="T:System.ArgumentException">the folder was not found in the Directory table</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigettargetpath.asp">MsiGetTargetPath</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.SetTargetPath(System.String,System.String)">
+            <summary>
+            Sets the full path to the designated folder on the installation target drive.
+            </summary>
+            <exception cref="T:System.ArgumentException">the folder was not found in the Directory table</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <remarks><p>
+            Setting the target path of a directory changes the path specification for the directory
+            in the in-memory Directory table. Also, the path specifications of all other path objects
+            in the table that are either subordinate or equivalent to the changed path are updated
+            to reflect the change. The properties for each affected path are also updated.
+            </p><p>
+            If an error occurs in this function, all updated paths and properties revert to
+            their previous values. Therefore, it is safe to treat errors returned by this function
+            as non-fatal.
+            </p><p>
+            Do not attempt to configure the target path if the components using those paths
+            are already installed for the current user or for a different user. Check the
+            ProductState property before setting the target path to determine if the product
+            containing this component is installed.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisettargetpath.asp">MsiSetTargetPath</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.SetInstallLevel(System.Int32)">
+            <summary>
+            Sets the install level for the current installation to a specified value and
+            recalculates the Select and Installed states for all features in the Feature
+            table. Also sets the Action state of each component in the Component table based
+            on the new level.
+            </summary>
+            <param name="installLevel">New install level</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <remarks><p>
+            The SetInstallLevel method sets the following:<list type="bullet">
+            <item><description>The installation level for the current installation to a specified value</description></item>
+            <item><description>The Select and Installed states for all features in the Feature table</description></item>
+            <item><description>The Action state of each component in the Component table, based on the new level</description></item>
+            </list>
+            If 0 or a negative number is passed in the ilnstallLevel parameter,
+            the current installation level does not change, but all features are still
+            updated based on the current installation level.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetinstalllevel.asp">MsiSetInstallLevel</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.DoAction(System.String)">
+            <summary>
+            Executes a built-in action, custom action, or user-interface wizard action.
+            </summary>
+            <param name="action">Name of the action to execute.  Case-sensitive.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
+            <remarks><p>
+            The DoAction method executes the action that corresponds to the name supplied. If the
+            name is not recognized by the installer as a built-in action or as a custom action in
+            the CustomAction table, the name is passed to the user-interface handler object, which
+            can invoke a function or a dialog box. If a null action name is supplied, the installer
+            uses the upper-case value of the ACTION property as the action to perform. If no property
+            value is defined, the default action is performed, defined as "INSTALL".
+            </p><p>
+            Actions that update the system, such as the InstallFiles and WriteRegistryValues
+            actions, cannot be run by calling MsiDoAction. The exception to this rule is if DoAction
+            is called from a custom action that is scheduled in the InstallExecuteSequence table
+            between the InstallInitialize and InstallFinalize actions. Actions that do not update the
+            system, such as AppSearch or CostInitialize, can be called.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidoaction.asp">MsiDoAction</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.DoAction(System.String,Microsoft.Deployment.WindowsInstaller.CustomActionData)">
+            <summary>
+            Executes a built-in action, custom action, or user-interface wizard action.
+            </summary>
+            <param name="action">Name of the action to execute.  Case-sensitive.</param>
+            <param name="actionData">Optional data to be passed to a deferred custom action.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
+            <remarks><p>
+            The DoAction method executes the action that corresponds to the name supplied. If the
+            name is not recognized by the installer as a built-in action or as a custom action in
+            the CustomAction table, the name is passed to the user-interface handler object, which
+            can invoke a function or a dialog box. If a null action name is supplied, the installer
+            uses the upper-case value of the ACTION property as the action to perform. If no property
+            value is defined, the default action is performed, defined as "INSTALL".
+            </p><p>
+            Actions that update the system, such as the InstallFiles and WriteRegistryValues
+            actions, cannot be run by calling MsiDoAction. The exception to this rule is if DoAction
+            is called from a custom action that is scheduled in the InstallExecuteSequence table
+            between the InstallInitialize and InstallFinalize actions. Actions that do not update the
+            system, such as AppSearch or CostInitialize, can be called.
+            </p><p>
+            If the called action is a deferred, rollback, or commit custom action, then the supplied
+            <paramref name="actionData"/> will be available via the <see cref="P:Microsoft.Deployment.WindowsInstaller.Session.CustomActionData"/>
+            property of that custom action's session.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msidoaction.asp">MsiDoAction</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.DoActionSequence(System.String)">
+            <summary>
+            Executes an action sequence described in the specified table.
+            </summary>
+            <param name="sequenceTable">Name of the table containing the action sequence.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallCanceledException">the user exited the installation</exception>
+            <remarks><p>
+            This method queries the specified table, ordering the actions by the numbers in the Sequence column.
+            For each row retrieved, an action is executed, provided that any supplied condition expression does
+            not evaluate to FALSE.
+            </p><p>
+            An action sequence containing any actions that update the system, such as the InstallFiles and
+            WriteRegistryValues actions, cannot be run by calling DoActionSequence. The exception to this rule is if
+            DoActionSequence is called from a custom action that is scheduled in the InstallExecuteSequence table
+            between the InstallInitialize and InstallFinalize actions. Actions that do not update the system, such
+            as AppSearch or CostInitialize, can be called.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisequence.asp">MsiSequence</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.System#IFormatProvider#GetFormat(System.Type)">
+            <summary>
+            Implements formatting for <see cref="T:Microsoft.Deployment.WindowsInstaller.Record"/> data.
+            </summary>
+            <param name="formatType">Type of format object to get.</param>
+            <returns>The the current instance, if <paramref name="formatType"/> is the same type
+            as the current instance; otherwise, null.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.Dispose(System.Boolean)">
+            <summary>
+            Closes the session handle.  Also closes the active database handle, if it is open.
+            After closing a handle, further method calls may throw an <see cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException"/>.
+            </summary>
+            <param name="disposing">If true, the method has been called directly
+            or indirectly by a user's code, so managed and unmanaged resources will
+            be disposed. If false, only unmanaged resources will be disposed.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.Session.ValidateSessionAccess">
+            <summary>
+            Throws an exception if the custom action is not able to access immedate session details.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.Database">
+            <summary>
+            Gets the Database for the install session.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the Database cannot be accessed</exception>
+            <remarks><p>
+            Normally there is no need to close this Database object.  The same object can be
+            used throughout the lifetime of the Session, and it will be closed when the Session
+            is closed.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetactivedatabase.asp">MsiGetActiveDatabase</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.Language">
+            <summary>
+            Gets the numeric language ID used by the current install session.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetlanguage.asp">MsiGetLanguage</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.Item(System.String)">
+            <summary>
+            Gets or sets the string value of a named installer property, as maintained by the
+            Session object in the in-memory Property table, or, if it is prefixed with a percent
+            sign (%), the value of a system environment variable for the current process.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the Session handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetproperty.asp">MsiGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisetproperty.asp">MsiSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.Components">
+            <summary>
+            Gets an accessor for components in the current session.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.Features">
+            <summary>
+            Gets an accessor for features in the current session.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.CustomActionData">
+            <summary>
+            Gets custom action data for the session that was supplied by the caller.
+            </summary>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.Session.DoAction(System.String,Microsoft.Deployment.WindowsInstaller.CustomActionData)"/>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.Session.NonImmediatePropertyNames">
+            <summary>
+            Gets the (short) list of properties that are available from non-immediate custom actions.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ShortcutTarget">
+            <summary>
+            Holds information about the target of a shortcut file.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.op_Equality(Microsoft.Deployment.WindowsInstaller.ShortcutTarget,Microsoft.Deployment.WindowsInstaller.ShortcutTarget)">
+            <summary>
+            Tests whether two shortcut targets have the same product code, feature, and/or component code.
+            </summary>
+            <param name="st1">The first shortcut target to compare.</param>
+            <param name="st2">The second shortcut target to compare.</param>
+            <returns>True if all parts of the targets are the same, else false.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.op_Inequality(Microsoft.Deployment.WindowsInstaller.ShortcutTarget,Microsoft.Deployment.WindowsInstaller.ShortcutTarget)">
+            <summary>
+            Tests whether two shortcut targets have the same product code, feature, and/or component code.
+            </summary>
+            <param name="st1">The first shortcut target to compare.</param>
+            <param name="st2">The second shortcut target to compare.</param>
+            <returns>True if any parts of the targets are different, else false.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.Equals(System.Object)">
+            <summary>
+            Tests whether two shortcut targets have the same product code, feature, and/or component code.
+            </summary>
+            <param name="obj">The shortcut target to compare to the current object.</param>
+            <returns>True if <paramref name="obj"/> is a shortcut target and all parts of the targets are the same, else false.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.GetHashCode">
+            <summary>
+            Generates a hash code using all parts of the shortcut target.
+            </summary>
+            <returns>An integer suitable for hashing the shortcut target.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.ProductCode">
+            <summary>
+            Gets the target product code of the shortcut, or null if not available.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.Feature">
+            <summary>
+            Gets the name of the target feature of the shortcut, or null if not available.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ShortcutTarget.ComponentCode">
+            <summary>
+            Gets the target component code of the shortcut, or null if not available.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.SourceList">
+            <summary>
+            A list of sources for an installed product or patch.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.Add(System.String)">
+            <summary>
+            Adds a network or URL source to the source list of the installed product.
+            </summary>
+            <param name="item">Path to the source to be added. This parameter is
+            expected to contain only the path without the filename.</param>
+            <remarks><p>
+            If this method is called with a new source, the installer adds the source
+            to the end of the source list. 
+            </p><p>
+            If this method is called with a source already existing in the source
+            list, it has no effect.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistaddsource.asp">MsiSourceListAddSource</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistaddsourceex.asp">MsiSourceListAddSourceEx</a>
+            </p></remarks>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.SourceList.Insert(System.String,System.Int32)"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.Insert(System.String,System.Int32)">
+            <summary>
+            Adds or reorders a network or URL source for the product or patch.
+            </summary>
+            <param name="item">Path to the source to be added. This parameter is
+            expected to contain only the path without the filename.</param>
+            <param name="index">Specifies the priority order in which the source
+            will be inserted</param>
+            <remarks><p>
+            If this method is called with a new source and <paramref name="index"/>
+            is set to 0, the installer adds the source to the end of the source list. 
+            </p><p>
+            If this method is called with a source already existing in the source
+            list and <paramref name="index"/> is set to 0, the installer retains the
+            source's existing index.
+            </p><p>
+            If the method is called with an existing source in the source list
+            and <paramref name="index"/> is set to a non-zero value, the source is
+            removed from its current location in the list and inserted at the position
+            specified by Index, before any source that already exists at that position.
+            </p><p>
+            If the method is called with a new source and Index is set to a
+            non-zero value, the source is inserted at the position specified by
+            <paramref name="index"/>, before any source that already exists at
+            that position. The index value for all sources in the list after the
+            index specified by Index are updated to ensure unique index values and
+            the pre-existing order is guaranteed to remain unchanged.
+            </p><p>
+            If <paramref name="index"/> is greater than the number of sources
+            in the list, the source is placed at the end of the list with an index
+            value one larger than any existing source.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistaddsourceex.asp">MsiSourceListAddSourceEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.Clear">
+            <summary>
+            Clears sources of all types: network, url, and media.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearall.asp">MsiSourceListClearAll</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.ClearNetworkSources">
+            <summary>
+            Removes all network sources from the list. URL sources are not affected.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearallex.asp">MsiSourceListClearAllEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.ClearUrlSources">
+            <summary>
+            Removes all URL sources from the list. Network sources are not affected.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearallex.asp">MsiSourceListClearAllEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.Contains(System.String)">
+            <summary>
+            Checks if the specified source exists in the list.
+            </summary>
+            <param name="item">case-insensitive source to look for</param>
+            <returns>true if the source exists in the list, false otherwise</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.CopyTo(System.String[],System.Int32)">
+            <summary>
+            Copies the network and URL sources from this list into an array.
+            </summary>
+            <param name="array">destination array to be filed</param>
+            <param name="arrayIndex">offset into the destination array where copying begins</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.Remove(System.String)">
+            <summary>
+            Removes a network or URL source.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearsource.asp">MsiSourceListClearSource</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.GetEnumerator">
+            <summary>
+            Enumerates the network and URL sources in the source list of the patch or product installation.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistenumsources.asp">MsiSourceListEnumSources</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceList.ForceResolution">
+            <summary>
+            Forces the installer to search the source list for a valid
+            source the next time a source is required. For example, when the
+            installer performs an installation or reinstallation, or when it
+            requires the path for a component that is set to run from source.
+            </summary>
+            <remarks><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistforceresolution.asp">MsiSourceListForceResolution</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistforceresolutionex.asp">MsiSourceListForceResolutionEx</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.MediaList">
+            <summary>
+            Gets the list of disks registered for the media source of
+            the patch or product installation.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.Count">
+            <summary>
+            Gets the number of network and URL sources in the list.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.IsReadOnly">
+            <summary>
+            Gets a boolean value indicating whether the list is read-only.
+            A SourceList is never read-only.
+            </summary>
+            <value>read-only status of the list</value>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.MediaPackagePath">
+            <summary>
+            Gets or sets the path relative to the root of the installation media.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.DiskPrompt">
+            <summary>
+            Gets or sets the prompt template that is used when prompting the user
+            for installation media.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.LastUsedSource">
+            <summary>
+            Gets or sets the most recently used source location for the product.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.PackageName">
+            <summary>
+            Gets or sets the name of the Windows Installer package or patch package
+            on the source.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.LastUsedType">
+            <summary>
+            Gets the type of the last-used source.
+            </summary>
+            <remarks><p>
+            <ul>
+            <li>&quot;n&quot; = network location</li>
+            <li>&quot;u&quot; = URL location</li>
+            <li>&quot;m&quot; = media location</li>
+            <li>(empty string) = no last used source</li>
+            </ul>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceList.Item(System.String)">
+            <summary>
+            Gets or sets source list information properties of a product or patch installation.
+            </summary>
+            <param name="property">The source list information property name.</param>
+            <exception cref="T:System.ArgumentOutOfRangeException">An unknown product, patch, or property was requested</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistgetinfo.asp">MsiSourceListGetInfo</a>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.SourceMediaList">
+            <summary>
+            A list of source media for an installed product or patch.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.Add(Microsoft.Deployment.WindowsInstaller.MediaDisk)">
+            <summary>
+            Adds or updates a disk of the media source for the product or patch.
+            </summary>
+            <remarks><p>
+            To change the disk prompt only, get the existing volume label from the
+            registry and provide it in this call along with the new disk prompt.
+            Passing a null or empty string for <paramref name="volumeLabel"/>
+            registers an empty string as the volume label.
+            <p>To change the volume label only, get the existing disk prompt
+            that is registered and provide it when calling SourceListAddMediaDisk
+            along with the new volume label. Passing null or an empty string
+            registers an empty string as the disk prompt.</p>
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistaddmediadisk.asp">MsiSourceListAddMediaDisk</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.Clear">
+            <summary>
+            Removes all source media from the list.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearallex.asp">MsiSourceListClearAllEx</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.Contains(System.Int32)">
+            <summary>
+            Checks if the specified media disk id exists in the list.
+            </summary>
+            <param name="diskId">disk id of the media to look for</param>
+            <returns>true if the media exists in the list, false otherwise</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.CopyTo(Microsoft.Deployment.WindowsInstaller.MediaDisk[],System.Int32)">
+            <summary>
+            Copies the source media info from this list into an array.
+            </summary>
+            <param name="array">destination array to be filed</param>
+            <param name="arrayIndex">offset into the destination array where copying begins</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.Remove(System.Int32)">
+            <summary>
+            Removes a specified disk from the set of registered disks.
+            </summary>
+            <param name="diskId">ID of the disk to remove</param>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistclearmediadisk.asp">MsiSourceListClearMediaDisk</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SourceMediaList.GetEnumerator">
+            <summary>
+            Enumerates the source media in the source list of the patch or product installation.
+            </summary>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisourcelistenummediadisks.asp">MsiSourceListEnumMediaDisks</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceMediaList.Count">
+            <summary>
+            Gets the number of source media in the list.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SourceMediaList.IsReadOnly">
+            <summary>
+            Gets a boolean value indicating whether the list is read-only.
+            A SourceMediaList is never read-only.
+            </summary>
+            <value>read-only status of the list</value>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.SummaryInfo">
+            <summary>
+            Provides access to summary information of a Windows Installer database.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SummaryInfo.#ctor(System.String,System.Boolean)">
+            <summary>
+            Gets a SummaryInfo object that can be used to examine, update, and add
+            properties to the summary information stream of a package or transform.
+            </summary>
+            <param name="packagePath">Path to the package (database) or transform</param>
+            <param name="enableWrite">True to reserve resources for writing summary information properties.</param>
+            <exception cref="T:System.IO.FileNotFoundException">the package does not exist or could not be read</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the package is an invalid format</exception>
+            <remarks><p>
+            The SummaryInfo object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msigetsummaryinformation.asp">MsiGetSummaryInformation</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Persist">
+            <summary>
+            Formats and writes the previously stored properties into the standard summary information stream.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The stream cannot be successfully written.</exception>
+            <remarks><p>
+            This method may only be called once after all the property values have been set. Properties may
+            still be read after the stream is written.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfopersist.asp">MsiSummaryInfoPersist</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Title">
+            <summary>Gets or sets the Title summary information property.</summary>
+            <remarks><p>
+            The Title summary information property briefly describes the type of installer package. Phrases
+            such as "Installation Database" or "Transform" or "Patch" may be used for this property.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Subject">
+            <summary>Gets or sets the Subject summary information property.</summary>
+            <remarks><p>
+            The Subject summary information property conveys to a file browser the product that can be installed using
+            the logic and data in this installer database. For example, the value of the summary property for
+            Microsoft Office 97 would be "Microsoft Office 97 Professional". This value is typically set from the
+            installer property ProductName.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Author">
+            <summary>Gets or sets the Author summary information property.</summary>
+            <remarks><p>
+            The Author summary information property conveys to a file browser the manufacturer of the installation
+            database. This value is typically set from the installer property Manufacturer.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Keywords">
+            <summary>Gets or sets the Keywords summary information property.</summary>
+            <remarks><p>
+            The Keywords summary information property is used by file browsers to hold keywords that permit the
+            database file to be found in a keyword search. The set of keywords typically includes "Installer" as
+            well as product-specific keywords, and may be localized.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Comments">
+            <summary>Gets or sets the Comments summary information property.</summary>
+            <remarks><p>
+            The Comments summary information property conveys the general purpose of the installer database. By convention,
+            the value for this summary property is set to the following:
+            </p><p>
+            "This installer database contains the logic and data required to install &lt;product name&gt;."
+            </p><p>
+            where &lt;product name&gt; is the name of the product being installed. In general the value for this summary
+            property only changes in the product name, nothing else.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Template">
+            <summary>Gets or sets the Template summary information property.</summary>
+            <remarks><p>
+            The Template summary information propery indicates the platform and language versions supported by the database.
+            </p><p>
+            The syntax of the Template Summary property information is:
+            [platform property][,platform property][,...];[language id][,language id][,...]
+            </p><p>
+            For example, the following are all valid values for the Template Summary property:
+            <list type="bullet">
+            <item>Intel;1033</item>
+            <item>Intel64;1033</item>
+            <item>;1033</item>
+            <item>;</item>
+            <item>Intel ;1033,2046</item>
+            <item>Intel64;1033,2046</item>
+            <item>Intel;0</item>
+            </list>
+            </p><p>
+            If this is a 64-bit Windows Installer, enter Intel64 in the Template summary information property. Note that an
+            installation package cannot have both the Intel and Intel64 properties set.
+            </p><p>
+            If the current platform does not match one of the platforms specified then the installer will not process the
+            package. Not specifying a platform implies that the package is platform-independent.
+            </p><p>
+            Entering 0 in the language ID field of the Template summary information property, or leaving this field empty,
+            indicates that the package is language neutral.
+            </p><p>
+            There are variations of this property depending on whether it is in a source installer database or a transform.
+            </p><p>
+            Source Installer Database - Only one language can be specified in a source installer database. Merge Modules are
+            the only packages that may have multiple languages. For more information, see Multiple Language Merge Modules.
+            </p><p>
+            Transform - In a transform file, only one language may be specified. The specified platform and language determine
+            whether a transform can be applied to a particular database. The platform property and the language property can
+            be left blank if no transform restriction relies on them to validate the transform.
+            </p><p>
+            This summary property is REQUIRED.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.LastSavedBy">
+            <summary>Gets or sets the LastSavedBy summary information property.</summary>
+            <remarks><p>
+            The installer sets the Last Saved By summary information property to the value of the LogonUser property during
+            an administrative installation. The installer never uses this property and a user never needs to modify it.
+            Developers of a database editing tool may use this property to track the last person to modify the database.
+            This property should be left set to null in a final shipping database.
+            </p><p>
+            In a transform, this summary property contains the platform and language ID(s) that a database should have
+            after it has been transformed. The property specifies to what the Template should be set in the new database.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.RevisionNumber">
+            <summary>Gets or sets the RevisionNumber summary information property.</summary>
+            <remarks><p>
+            The Revision Number summary information property contains the package code for the installer package. The
+            package code is a unique identifier of the installer package. 
+            </p><p>
+            The Revision Number summary information  property of a patch package specifies the GUID patch code for
+            the patch. This is followed by a list of patch code GUIDs for obsolete patches that are removed when this
+            patch is applied. The patch codes are concatenated with no delimiters separating GUIDs in the list.
+            </p><p>
+            The Revision Number summary information  property of a transform package lists the product code GUIDs
+            and version of the new and original products and the upgrade code GUID. The list is separated with
+            semicolons as follows.
+            </p><p>
+            Original-Product-Code Original-Product-Version ; New-Product Code New-Product-Version; Upgrade-Code
+            </p><p>
+            This summary property is REQUIRED.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.CreatingApp">
+            <summary>Gets or sets the CreatingApp summary information property.</summary>
+            <remarks><p>
+            The CreatingApp summary information property conveys which application created the installer database.
+            In general the value for this summary property is the name of the software used to author this database.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.LastPrintTime">
+            <summary>Gets or sets the LastPrintTime summary information property.</summary>
+            <remarks><p>
+            The LastPrintTime summary information property can be set to the date and time during an administrative
+            installation to record when the administrative image was created. For non-administrative installations
+            this property is the same as the CreateTime summary information property.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.CreateTime">
+            <summary>Gets or sets the CreateTime summary information property.</summary>
+            <remarks><p>
+            The CreateTime summary information property conveys when the installer database was created.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.LastSaveTime">
+            <summary>Gets or sets the LastSaveTime summary information property.</summary>
+            <remarks><p>
+            The LastSaveTime summary information property conveys when the last time the installer database was
+            modified. Each time a user changes an installation the value for this summary property is updated to
+            the current system time/date at the time the installer database was saved. Initially the value for
+            this summary property is set to null to indicate that no changes have yet been made.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.CodePage">
+            <summary>Gets or sets the CodePage summary information property.</summary>
+            <remarks><p>
+            The Codepage summary information property is the numeric value of the ANSI code page used for any
+            strings that are stored in the summary information. Note that this is not the same code page for
+            strings in the installation database. The Codepage summary information property is used to translate
+            the strings in the summary information into Unicode when calling the Unicode API functions. The
+            Codepage summary information property must be set before any string properties are set in the
+            summary information.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.PageCount">
+            <summary>Gets or sets the PageCount summary information property.</summary>
+            <remarks><p>
+            For an installation package, the PageCount summary information property contains the minimum
+            installer version required. For Windows Installer version 1.0, this property must be set to the
+            integer 100. For 64-bit Windows Installer Packages, this property must be set to the integer 200.
+            </p><p>
+            For a transform package, the PageCount summary information property contains minimum installer
+            version required to process the transform. Set to the greater of the two PageCount summary information
+            property values belonging to the databases used to generate the transform.
+            </p><p>
+            The PageCount summary information property is set to null in patch packages.
+            </p><p>
+            This summary property is REQUIRED.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.WordCount">
+            <summary>Gets or sets the WordCount summary information property.</summary>
+            <remarks><p>
+            The WordCount summary information property indicates the type of source file image. If this property is
+            not present, it defaults to 0. Note that this property is stored in place of the standard Count property.
+            </p><p>
+            This property is a bit field. New bits may be added in the future. At present the following bits are
+            available:
+            <list type="bullet">
+            <item>Bit 0: 0 = long file names, 1 = short file names</item>
+            <item>Bit 1: 0 = source is uncompressed, 1 = source is compressed</item>
+            <item>Bit 2: 0 = source is original media, 1 = source is administrative installation</item>
+            <item>[MSI 4.0] Bit 3: 0 = elevated privileges can be required to install, 1 = elevated privileges are not required to install</item>
+            </list>
+            </p><p>
+            These are combined to give the WordCount summary information property one of the following values
+            indicating a type of source file image:
+            <list type="bullet">
+            <item>0 - Original source using long file names. Matches tree in Directory table.</item>
+            <item>1 - Original source using short file names. Matches tree in Directory table.</item>
+            <item>2 - Compressed source files using long file names. Matches cabinets and files in the Media table.</item>
+            <item>3 - Compressed source files using short file names. Matches cabinets and files in the Media table.</item>
+            <item>4 - Administrative image using long file names. Matches tree in Directory table.</item>
+            <item>5 - Administrative image using short file names. Matches tree in Directory table.</item>
+            </list>
+            </p><p>
+            Note that if the package is marked as compressed (bit 1 is set), the installer only installs files
+            located at the root of the source. In this case, even files marked as uncompressed in the File table must
+            be located at the root to be installed. To specify a source image that has both a cabinet file (compressed
+            files) and uncompressed files that match the tree in the Directory table, mark the package as uncompressed
+            by leaving bit 1 unset (value=0) in the WordCount summary information property and set
+            <see cref="F:Microsoft.Deployment.WindowsInstaller.FileAttributes.Compressed"/> (value=16384) in the Attributes column of the File table
+            for each file in the cabinet.
+            </p><p>
+            For a patch package, the WordCount summary information property specifies the patch engine that was used
+            to create the patch files. The default value is 1 and indicates that MSPATCH was used to create the patch
+            A value of "2" means that the patch is using smaller, optimized, files available only with Windows Installer
+            version 1.2 or later. A patch with a WordCount of "2" fails immediately if used with a Windows Installer
+            version earlier than 1.2. A patch with a WordCount of "3" fails immediately if used with a Windows Installer
+            version earlier than 2.0.
+            </p><p>
+            This summary property is REQUIRED.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.CharacterCount">
+            <summary>Gets or sets the CharacterCount summary information property.</summary>
+            <remarks><p>
+            The CharacterCount summary information property is only used in transforms. This part of the summary
+            information stream is divided into two 16-bit words. The upper word contains the transform validation
+            flags. The lower word contains the transform error condition flags.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.SummaryInfo.Security">
+            <summary>Gets or sets the Security summary information property.</summary>
+            <remarks><p>
+            The Security summary information property conveys whether the package should be opened as read-only. The database
+            editing tool should not modify a read-only enforced database and should issue a warning at attempts to modify a
+            read-only recommended database. The following values of this property are applicable to Windows Installer files:
+            <list type="bullet">
+            <item>0 - no restriction</item>
+            <item>2 - read only recommended</item>
+            <item>4 - read only enforced</item>
+            </list>
+            </p><p>
+            This property should be set to read-only recommended (2) for an installation database and to read-only
+            enforced (4) for a transform or patch.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfogetproperty.asp">MsiSummaryInfoGetProperty</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msisummaryinfosetproperty.asp">MsiSummaryInfoSetProperty</a>
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.TableCollection">
+            <summary>
+            Contains information about all the tables in a Windows Installer database.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.Add(Microsoft.Deployment.WindowsInstaller.TableInfo)">
+            <summary>
+            Adds a new table to the database.
+            </summary>
+            <param name="item">information about the table to be added</param>
+            <exception cref="T:System.InvalidOperationException">a table with the same name already exists in the database</exception>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.Clear">
+            <summary>
+            Removes all tables (and all data) from the database.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.Contains(System.String)">
+            <summary>
+            Checks if the database contains a table with the given name.
+            </summary>
+            <param name="item">case-sensitive name of the table to search for</param>
+            <returns>True if the table exists, false otherwise.</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.CopyTo(Microsoft.Deployment.WindowsInstaller.TableInfo[],System.Int32)">
+            <summary>
+            Copies the table information from this collection into an array.
+            </summary>
+            <param name="array">destination array to be filed</param>
+            <param name="arrayIndex">offset into the destination array where copying begins</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.Remove(System.String)">
+            <summary>
+            Removes a table from the database.
+            </summary>
+            <param name="item">case-sensitive name of the table to be removed</param>
+            <returns>true if the table was removed, false if the table did not exist</returns>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.TableCollection.GetEnumerator">
+            <summary>
+            Enumerates the tables in the database.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.TableCollection.Count">
+            <summary>
+            Gets the number of tables in the database.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.TableCollection.IsReadOnly">
+            <summary>
+            Gets a boolean value indicating whether the collection is read-only.
+            A TableCollection is read-only when the database is read-only.
+            </summary>
+            <value>read-only status of the collection</value>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.TableCollection.Item(System.String)">
+            <summary>
+            Gets information about a given table.
+            </summary>
+            <param name="table">case-sensitive name of the table</param>
+            <returns>information about the requested table, or null if the table does not exist in the database</returns>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.TableInfo">
+            <summary>
+            Defines a table in an installation database.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.TableInfo.#ctor(System.String,System.Collections.Generic.ICollection{Microsoft.Deployment.WindowsInstaller.ColumnInfo},System.Collections.Generic.IList{System.String})">
+            <summary>
+            Creates a table definition.
+            </summary>
+            <param name="name">Name of the table.</param>
+            <param name="columns">Columns in the table.</param>
+            <param name="primaryKeys">The primary keys of the table.</param>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.TableInfo.ToString">
+            <summary>
+            Gets a string representation of the table.
+            </summary>
+            <returns>The name of the table.</returns>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.Name">
+            <summary>
+            Gets the name of the table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.Columns">
+            <summary>
+            Gets information about the columns in this table.
+            </summary>
+            <remarks><p>
+            This property queries the database every time it is called,
+            to ensure the returned values are up-to-date. For best performance,
+            hold onto the returned collection if using it more than once.
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.PrimaryKeys">
+            <summary>
+            Gets the names of the columns that are primary keys of the table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.SqlCreateString">
+            <summary>
+            Gets an SQL CREATE string that can be used to create the table.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.SqlInsertString">
+            <summary>
+            Gets an SQL INSERT string that can be used insert a new record into the table.
+            </summary>
+            <remarks><p>
+            The values are expressed as question-mark tokens, to be supplied by the record.
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.TableInfo.SqlSelectString">
+            <summary>
+            Gets an SQL SELECT string that can be used to select all columns of the table.
+            </summary>
+            <remarks><p>
+            The columns are listed explicitly in the SELECT string, as opposed to using "SELECT *".
+            </p></remarks>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.ValidationErrorInfo">
+            <summary>
+            Contains specific information about an error encountered by the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Validate(Microsoft.Deployment.WindowsInstaller.Record)"/>,
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateNew(Microsoft.Deployment.WindowsInstaller.Record)"/>, or <see cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateFields(Microsoft.Deployment.WindowsInstaller.Record)"/> methods of the
+            <see cref="T:Microsoft.Deployment.WindowsInstaller.View"/> class.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ValidationErrorInfo.Error">
+            <summary>
+            Gets the type of validation error encountered.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.ValidationErrorInfo.Column">
+            <summary>
+            Gets the column containing the error, or null if the error applies to the whole row.
+            </summary>
+        </member>
+        <member name="T:Microsoft.Deployment.WindowsInstaller.View">
+            <summary>
+            A View represents a result set obtained when processing a query using the
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.Database.OpenView(System.String,System.Object[])"/> method of a
+            <see cref="P:Microsoft.Deployment.WindowsInstaller.View.Database"/>. Before any data can be transferred,
+            the query must be executed using the <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Execute(Microsoft.Deployment.WindowsInstaller.Record)"/> method, passing to
+            it all replaceable parameters designated within the SQL query string.
+            </summary>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Execute(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Executes a SQL View query and supplies any required parameters. The query uses the
+            question mark token to represent parameters as described in SQL Syntax. The values of
+            these parameters are passed in as the corresponding fields of a parameter record.
+            </summary>
+            <param name="executeParams">Optional Record that supplies the parameters. This
+            Record contains values to replace the parameter tokens in the SQL query.</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Execute">
+            <summary>
+            Executes a SQL View query.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View could not be executed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewexecute.asp">MsiViewExecute</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Fetch">
+            <summary>
+            Fetches the next sequential record from the view, or null if there are no more records.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View is not in an active state</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            The Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Updates a fetched Record.
+            </summary>
+            <param name="mode">specifies the modify mode</param>
+            <param name="record">the Record to modify</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the modification failed,
+            or a validation was requested and the data did not pass</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            You can update or delete a record immediately after inserting, or seeking provided you
+            have NOT modified the 0th field of the inserted or sought record.
+            </p><p>
+            To execute any SQL statement, a View must be created. However, a View that does not
+            create a result set, such as CREATE TABLE, or INSERT INTO, cannot be used with any of
+            the Modify methods to update tables though the view.
+            </p><p>
+            You cannot fetch a record containing binary data from one database and then use
+            that record to insert the data into another database. To move binary data from one database
+            to another, you should export the data to a file and then import it into the new database
+            using a query and the <see cref="M:Microsoft.Deployment.WindowsInstaller.Record.SetStream(System.Int32,System.String)"/>. This ensures that each database has
+            its own copy of the binary data.
+            </p><p>
+            Note that custom actions can only add, modify, or remove temporary rows, columns,
+            or tables from a database. Custom actions cannot modify persistent data in a database,
+            such as data that is a part of the database stored on disk.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
+            </p></remarks>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Refresh(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Insert(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Update(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Assign(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Replace(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Delete(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.InsertTemporary(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Seek(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Merge(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.Validate(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateNew(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateFields(Microsoft.Deployment.WindowsInstaller.Record)"/>
+            <seealso cref="M:Microsoft.Deployment.WindowsInstaller.View.ValidateDelete(Microsoft.Deployment.WindowsInstaller.Record)"/>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Refresh(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Refreshes the data in a Record.
+            </summary>
+            <param name="record">the Record to be refreshed</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the refresh failed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            The Record must have been obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>. Fails with
+            a deleted Record. Works only with read-write Records.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Insert(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Inserts a Record into the view.
+            </summary>
+            <param name="record">the Record to be inserted</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the insertion failed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            Fails if a row with the same primary keys exists. Fails with a read-only database.
+            This method cannot be used with a View containing joins.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Update(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Updates the View with new data from the Record.
+            </summary>
+            <param name="record">the new data</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the update failed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            Only non-primary keys can be updated. The Record must have been obtained by calling
+            <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>. Fails with a deleted Record. Works only with read-write Records.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Assign(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Updates or inserts a Record into the View.
+            </summary>
+            <param name="record">the Record to be assigned</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the assignment failed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            Updates record if the primary keys match an existing row and inserts if they do not match.
+            Fails with a read-only database. This method cannot be used with a View containing joins.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Replace(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Updates or deletes and inserts a Record into the View.
+            </summary>
+            <param name="record">the Record to be replaced</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the replacement failed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            The Record must have been obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>. Updates record if the
+            primary keys are unchanged. Deletes old row and inserts new if primary keys have changed.
+            Fails with a read-only database. This method cannot be used with a View containing joins.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Delete(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Deletes a Record from the View.
+            </summary>
+            <param name="record">the Record to be deleted</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the deletion failed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            The Record must have been obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>. Fails if the row has been
+            deleted. Works only with read-write records. This method cannot be used with a View containing joins.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.InsertTemporary(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Inserts a Record into the View.  The inserted data is not persistent.
+            </summary>
+            <param name="record">the Record to be inserted</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the insertion failed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            Fails if a row with the same primary key exists. Works only with read-write records.
+            This method cannot be used with a View containing joins.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Seek(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Refreshes the information in the supplied record without changing the position
+            in the result set and without affecting subsequent fetch operations.
+            </summary>
+            <param name="record">the Record to be filled with the result of the seek</param>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the seek failed</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            After seeking, the Record may then be used for subsequent Update, Delete, and Refresh
+            operations.  All primary key columns of the table must be in the query and the Record must
+            have at least as many fields as the query. Seek cannot be used with multi-table queries.
+            This method cannot be used with a View containing joins.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Merge(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Inserts or validates a record.
+            </summary>
+            <param name="record">the Record to be merged</param>
+            <returns>true if the record was inserted or validated, false if there is an existing
+            record with the same primary keys that is not identical</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the merge failed (for a reason other than invalid data)</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            Works only with read-write records. This method cannot be used with a
+            View containing joins.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.Validate(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Validates a record, returning information about any errors.
+            </summary>
+            <param name="record">the Record to be validated</param>
+            <returns>null if the record was validated; if there is an existing record with
+            the same primary keys that has conflicting data then error information is returned</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the validation failed (for a reason other than invalid data)</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            The Record must have been obtained by calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>.
+            Works with read-write and read-only records. This method cannot be used
+            with a View containing joins.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewgeterror.asp">MsiViewGetError</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.ValidateNew(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Validates a new record, returning information about any errors.
+            </summary>
+            <param name="record">the Record to be validated</param>
+            <returns>null if the record was validated; if there is an existing
+            record with the same primary keys then error information is returned</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the validation failed (for a reason other than invalid data)</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            Checks for duplicate keys. The Record must have been obtained by
+            calling <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Fetch"/>. Works with read-write and read-only records.
+            This method cannot be used with a View containing joins.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewgeterror.asp">MsiViewGetError</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.ValidateFields(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Validates fields of a fetched or new record, returning information about any errors.
+            Can validate one or more fields of an incomplete record.
+            </summary>
+            <param name="record">the Record to be validated</param>
+            <returns>null if the record was validated; if there is an existing record with
+            the same primary keys that has conflicting data then error information is returned</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the validation failed (for a reason other than invalid data)</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            Works with read-write and read-only records. This method cannot be used with
+            a View containing joins.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewgeterror.asp">MsiViewGetError</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.ValidateDelete(Microsoft.Deployment.WindowsInstaller.Record)">
+            <summary>
+            Validates a record that will be deleted later, returning information about any errors.
+            </summary>
+            <param name="record">the Record to be validated</param>
+            <returns>null if the record is safe to delete; if another row refers to
+            the primary keys of this row then error information is returned</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the validation failed (for a reason other than invalid data)</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            Validation does not check for the existence of the primary keys of this row in properties
+            or strings. Does not check if a column is a foreign key to multiple tables. Works with
+            read-write and read-only records. This method cannot be used with a View containing joins.
+            </p><p>
+            See <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Modify(Microsoft.Deployment.WindowsInstaller.ViewModifyMode,Microsoft.Deployment.WindowsInstaller.Record)"/> for more remarks.
+            </p><p>
+            Win32 MSI APIs:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewmodify.asp">MsiViewModify</a>,
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewgeterror.asp">MsiViewGetError</a>
+            </p></remarks>
+        </member>
+        <member name="M:Microsoft.Deployment.WindowsInstaller.View.GetEnumerator">
+            <summary>
+            Enumerates over the Records retrieved by the View.
+            </summary>
+            <returns>An enumerator of Record objects.</returns>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">The View was not <see cref="M:Microsoft.Deployment.WindowsInstaller.View.Execute(Microsoft.Deployment.WindowsInstaller.Record)"/>d before attempting the enumeration.</exception>
+            <remarks><p>
+            Each Record object should be <see cref="M:Microsoft.Deployment.WindowsInstaller.InstallerHandle.Close"/>d after use.
+            It is best that the handle be closed manually as soon as it is no longer
+            needed, as leaving lots of unused handles open can degrade performance.
+            However, note that it is not necessary to complete the enumeration just
+            for the purpose of closing handles, because Records are fetched lazily
+            on each step of the enumeration.
+            </p><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewfetch.asp">MsiViewFetch</a>
+            </p></remarks>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.View.Database">
+            <summary>
+            Gets the Database on which this View was opened.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.View.QueryString">
+            <summary>
+            Gets the SQL query string used to open this View.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.View.Tables">
+            <summary>
+            Gets the set of tables that were included in the SQL query for this View.
+            </summary>
+        </member>
+        <member name="P:Microsoft.Deployment.WindowsInstaller.View.Columns">
+            <summary>
+            Gets the set of columns that were included in the query for this View,
+            or null if this view is not a SELECT query.
+            </summary>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InstallerException">the View is not in an active state</exception>
+            <exception cref="T:Microsoft.Deployment.WindowsInstaller.InvalidHandleException">the View handle is invalid</exception>
+            <remarks><p>
+            Win32 MSI API:
+            <a href="http://msdn.microsoft.com/library/en-us/msi/setup/msiviewgetcolumninfo.asp">MsiViewGetColumnInfo</a>
+            </p></remarks>
+        </member>
+    </members>
+</doc>
diff --git a/sdk/MsgGen.exe b/sdk/MsgGen.exe
new file mode 100755
index 0000000..8747f1c
--- /dev/null
+++ b/sdk/MsgGen.exe
Binary files differ
diff --git a/sdk/XsdGen.exe b/sdk/XsdGen.exe
new file mode 100755
index 0000000..4b8073f
--- /dev/null
+++ b/sdk/XsdGen.exe
Binary files differ
diff --git a/sdk/XsdStitch.exe b/sdk/XsdStitch.exe
new file mode 100755
index 0000000..ce23986
--- /dev/null
+++ b/sdk/XsdStitch.exe
Binary files differ
diff --git a/sdk/inc/aclutil.h b/sdk/inc/aclutil.h
new file mode 100644
index 0000000..c19e3ab
--- /dev/null
+++ b/sdk/inc/aclutil.h
@@ -0,0 +1,144 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="aclutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Access Control List helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#include <aclapi.h>
+#include <sddl.h>
+
+#define ReleaseSid(x) if (x) { AclFreeSid(x); }
+#define ReleaseNullSid(x) if (x) { AclFreeSid(x); x = NULL; }
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// structs
+struct ACL_ACCESS
+{
+    BOOL fDenyAccess;
+    DWORD dwAccessMask;
+
+    // TODO: consider using a union
+    LPCWSTR pwzAccountName;   // NOTE: the last three items in this structure are ignored if this is not NULL
+
+    SID_IDENTIFIER_AUTHORITY sia;  // used if pwzAccountName is NULL
+    BYTE nSubAuthorityCount;
+    DWORD nSubAuthority[8];
+};
+
+struct ACL_ACE
+{
+    DWORD dwFlags;
+    DWORD dwMask;
+    PSID psid;
+};
+
+
+// functions
+HRESULT DAPI AclCheckAccess(
+    __in HANDLE hToken, 
+    __in ACL_ACCESS* paa
+    );
+HRESULT DAPI AclCheckAdministratorAccess(
+    __in HANDLE hToken
+    );
+HRESULT DAPI AclCheckLocalSystemAccess(
+    __in HANDLE hToken
+    );
+
+HRESULT DAPI AclGetWellKnownSid(
+    __in WELL_KNOWN_SID_TYPE wkst,
+    __deref_out PSID* ppsid
+    );
+HRESULT DAPI AclGetAccountSid(
+    __in_opt LPCWSTR wzSystem,
+    __in_z LPCWSTR wzAccount,
+    __deref_out PSID* ppsid
+    );
+HRESULT DAPI AclGetAccountSidString(
+    __in_z LPCWSTR wzSystem,
+    __in_z LPCWSTR wzAccount,
+    __deref_out_z LPWSTR* ppwzSid
+    );
+
+HRESULT DAPI AclCreateDacl(
+    __in_ecount(cDeny) ACL_ACE rgaaDeny[],
+    __in DWORD cDeny,
+    __in_ecount(cAllow) ACL_ACE rgaaAllow[],
+    __in DWORD cAllow,
+    __deref_out ACL** ppAcl
+    );
+HRESULT DAPI AclAddToDacl(
+    __in ACL* pAcl,
+    __in_ecount_opt(cDeny) const ACL_ACE rgaaDeny[],
+    __in DWORD cDeny,
+    __in_ecount_opt(cAllow) const ACL_ACE rgaaAllow[],
+    __in DWORD cAllow,
+    __deref_out ACL** ppAclNew
+    );
+HRESULT DAPI AclMergeDacls(
+    __in const ACL* pAcl1,
+    __in const ACL* pAcl2,
+    __deref_out ACL** ppAclNew
+    );
+HRESULT DAPI AclCreateDaclOld(
+    __in_ecount(cAclAccesses) ACL_ACCESS* paa,
+    __in DWORD cAclAccesses,
+    __deref_out ACL** ppAcl
+    );
+HRESULT DAPI AclCreateSecurityDescriptor(
+    __in_ecount(cAclAccesses) ACL_ACCESS* paa,
+    __in DWORD cAclAccesses,
+    __deref_out SECURITY_DESCRIPTOR** ppsd
+    );
+HRESULT DAPI AclCreateSecurityDescriptorFromDacl(
+    __in ACL* pACL,
+    __deref_out SECURITY_DESCRIPTOR** ppsd
+    );
+HRESULT __cdecl AclCreateSecurityDescriptorFromString(
+    __deref_out SECURITY_DESCRIPTOR** ppsd,
+    __in_z __format_string LPCWSTR wzSddlFormat,
+    ...
+    );
+HRESULT DAPI AclDuplicateSecurityDescriptor(
+    __in SECURITY_DESCRIPTOR* psd,
+    __deref_out SECURITY_DESCRIPTOR** ppsd
+    );
+HRESULT DAPI AclGetSecurityDescriptor(
+    __in_z LPCWSTR wzObject,
+    __in SE_OBJECT_TYPE sot,
+    __deref_out SECURITY_DESCRIPTOR** ppsd
+    );
+
+HRESULT DAPI AclFreeSid(
+    __in PSID psid
+    );
+HRESULT DAPI AclFreeDacl(
+    __in ACL* pACL
+    );
+HRESULT DAPI AclFreeSecurityDescriptor(
+    __in SECURITY_DESCRIPTOR* psd
+    );
+
+HRESULT DAPI AclAddAdminToSecurityDescriptor(
+    __in SECURITY_DESCRIPTOR* pSecurity,
+    __deref_out SECURITY_DESCRIPTOR** ppSecurityNew
+    );
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/apuputil.h b/sdk/inc/apuputil.h
new file mode 100644
index 0000000..0bc870f
--- /dev/null
+++ b/sdk/inc/apuputil.h
@@ -0,0 +1,97 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="apuputil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for Application Update helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseApupChain(p) if (p) { ApupFreeChain(p); p = NULL; }
+#define ReleaseNullApupChain(p) if (p) { ApupFreeChain(p); p = NULL; }
+
+
+const LPCWSTR APPLICATION_SYNDICATION_NAMESPACE = L"http://appsyndication.org/2006/appsyn";
+
+enum APUP_HASH_ALGORITHM
+{
+    APUP_HASH_ALGORITHM_UNKNOWN,
+    APUP_HASH_ALGORITHM_MD5,
+    APUP_HASH_ALGORITHM_SHA1,
+    APUP_HASH_ALGORITHM_SHA256,
+};
+
+
+struct APPLICATION_UPDATE_ENCLOSURE
+{
+    LPWSTR wzUrl;
+    LPWSTR wzLocalName;
+    DWORD64 dw64Size;
+
+    BYTE* rgbDigest;
+    DWORD cbDigest;
+    APUP_HASH_ALGORITHM digestAlgorithm;
+
+    BOOL fInstaller;
+};
+
+
+struct APPLICATION_UPDATE_ENTRY
+{
+    LPWSTR wzApplicationId;
+    LPWSTR wzApplicationType;
+
+    DWORD64 dw64Version;
+    LPWSTR wzUpgradeId;
+    DWORD64 dw64UpgradeVersion;
+    BOOL fUpgradeExclusive;
+
+    DWORD64 dw64TotalSize;
+
+    DWORD cEnclosures;
+    APPLICATION_UPDATE_ENCLOSURE* rgEnclosures;
+};
+
+
+struct APPLICATION_UPDATE_CHAIN
+{
+    LPWSTR wzDefaultApplicationId;
+    LPWSTR wzDefaultApplicationType;
+
+    DWORD cEntries;
+    APPLICATION_UPDATE_ENTRY* rgEntries;
+};
+
+
+HRESULT DAPI ApupAllocChainFromAtom(
+    __in ATOM_FEED* pFeed,
+    __out APPLICATION_UPDATE_CHAIN** ppChain
+    );
+
+HRESULT DAPI ApupFilterChain(
+    __in APPLICATION_UPDATE_CHAIN* pChain,
+    __in DWORD64 dw64Version,
+    __out APPLICATION_UPDATE_CHAIN** ppFilteredChain
+    );
+
+void DAPI ApupFreeChain(
+    __in APPLICATION_UPDATE_CHAIN* pChain
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/atomutil.h b/sdk/inc/atomutil.h
new file mode 100644
index 0000000..e194a8f
--- /dev/null
+++ b/sdk/inc/atomutil.h
@@ -0,0 +1,163 @@
+//-------------------------------------------------------------------------------------------------
+// <copyright file="atomutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    ATOM helper funtions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#pragma once
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseAtomFeed(p) if (p) { AtomFreeFeed(p); }
+#define ReleaseNullAtomFeed(p) if (p) { AtomFreeFeed(p); p = NULL; }
+
+
+struct ATOM_UNKNOWN_ATTRIBUTE
+{
+    LPWSTR wzNamespace;
+    LPWSTR wzAttribute;
+    LPWSTR wzValue;
+
+    ATOM_UNKNOWN_ATTRIBUTE* pNext;
+};
+
+struct ATOM_UNKNOWN_ELEMENT
+{
+    LPWSTR wzNamespace;
+    LPWSTR wzElement;
+    LPWSTR wzValue;
+
+    ATOM_UNKNOWN_ATTRIBUTE* pAttributes;
+    ATOM_UNKNOWN_ELEMENT* pNext;
+};
+
+struct ATOM_LINK
+{
+    LPWSTR wzRel;
+    LPWSTR wzTitle;
+    LPWSTR wzType;
+    LPWSTR wzUrl;
+    LPWSTR wzValue;
+    DWORD64 dw64Length;
+
+    ATOM_UNKNOWN_ATTRIBUTE* pUnknownAttributes;
+    ATOM_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+struct ATOM_CONTENT
+{
+    LPWSTR wzType;
+    LPWSTR wzUrl;
+    LPWSTR wzValue;
+
+    ATOM_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+struct ATOM_AUTHOR
+{
+    LPWSTR wzName;
+    LPWSTR wzEmail;
+    LPWSTR wzUrl;
+};
+
+struct ATOM_CATEGORY
+{
+    LPWSTR wzLabel;
+    LPWSTR wzScheme;
+    LPWSTR wzTerm;
+
+    ATOM_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+struct ATOM_ENTRY
+{
+    LPWSTR wzId;
+    LPWSTR wzSummary;
+    LPWSTR wzTitle;
+    FILETIME ftPublished;
+    FILETIME ftUpdated;
+
+    ATOM_CONTENT* pContent;
+
+    DWORD cAuthors;
+    ATOM_AUTHOR* rgAuthors;
+
+    DWORD cCategories;
+    ATOM_CATEGORY* rgCategories;
+
+    DWORD cLinks;
+    ATOM_LINK* rgLinks;
+
+    IXMLDOMNode* pixn;
+    ATOM_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+struct ATOM_FEED
+{
+    LPWSTR wzGenerator;
+    LPWSTR wzIcon;
+    LPWSTR wzId;
+    LPWSTR wzLogo;
+    LPWSTR wzSubtitle;
+    LPWSTR wzTitle;
+    FILETIME ftUpdated;
+
+    DWORD cAuthors;
+    ATOM_AUTHOR* rgAuthors;
+
+    DWORD cCategories;
+    ATOM_CATEGORY* rgCategories;
+
+    DWORD cEntries;
+    ATOM_ENTRY* rgEntries;
+
+    DWORD cLinks;
+    ATOM_LINK* rgLinks;
+
+    IXMLDOMNode* pixn;
+    ATOM_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+HRESULT DAPI AtomInitialize(
+    );
+
+void DAPI AtomUninitialize(
+    );
+
+HRESULT DAPI AtomParseFromString(
+    __in_z LPCWSTR wzAtomString,
+    __out ATOM_FEED **ppFeed
+    );
+
+HRESULT DAPI AtomParseFromFile(
+    __in_z LPCWSTR wzAtomFile,
+    __out ATOM_FEED **ppFeed
+    );
+
+HRESULT DAPI AtomParseFromDocument(
+    __in IXMLDOMDocument* pixdDocument,
+    __out ATOM_FEED **ppFeed
+    );
+
+void DAPI AtomFreeFeed(
+    __in_xcount(pFeed->cItems) ATOM_FEED *pFEED
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/buffutil.h b/sdk/inc/buffutil.h
new file mode 100644
index 0000000..a6d9109
--- /dev/null
+++ b/sdk/inc/buffutil.h
@@ -0,0 +1,86 @@
+//-------------------------------------------------------------------------------------------------
+// <copyright file="buffutil.h" company="Microsoft">
+//    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.
+// </copyright>
+//
+// <summary>
+//    Binary serialization helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#pragma once
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+// macro definitions
+
+#define ReleaseBuffer ReleaseMem
+#define ReleaseNullBuffer ReleaseNullMem
+#define BuffFree MemFree
+
+
+// function declarations
+
+HRESULT BuffReadNumber(
+    __in_bcount(cbBuffer) const BYTE* pbBuffer,
+    __in SIZE_T cbBuffer,
+    __inout SIZE_T* piBuffer,
+    __out DWORD* pdw
+    );
+HRESULT BuffReadNumber64(
+    __in_bcount(cbBuffer) const BYTE* pbBuffer,
+    __in SIZE_T cbBuffer,
+    __inout SIZE_T* piBuffer,
+    __out DWORD64* pdw64
+    );
+HRESULT BuffReadString(
+    __in_bcount(cbBuffer) const BYTE* pbBuffer,
+    __in SIZE_T cbBuffer,
+    __inout SIZE_T* piBuffer,
+    __deref_out_z LPWSTR* pscz
+    );
+HRESULT BuffReadStream(
+    __in_bcount(cbBuffer) const BYTE* pbBuffer,
+    __in SIZE_T cbBuffer,
+    __inout SIZE_T* piBuffer,
+    __deref_out_bcount(*pcbStream) BYTE** ppbStream,
+    __out SIZE_T* pcbStream
+    );
+
+HRESULT BuffWriteNumber(
+    __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
+    __inout SIZE_T* piBuffer,
+    __in DWORD dw
+    );
+HRESULT BuffWriteNumber64(
+    __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
+    __inout SIZE_T* piBuffer,
+    __in DWORD64 dw64
+    );
+HRESULT BuffWriteString(
+    __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
+    __inout SIZE_T* piBuffer,
+    __in_z LPCWSTR scz
+    );
+HRESULT BuffWriteStream(
+    __deref_out_bcount(*piBuffer) BYTE** ppbBuffer,
+    __inout SIZE_T* piBuffer,
+    __in_bcount(cbStream) const BYTE* pbStream,
+    __in SIZE_T cbStream
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/cabcutil.h b/sdk/inc/cabcutil.h
new file mode 100644
index 0000000..e6a9d74
--- /dev/null
+++ b/sdk/inc/cabcutil.h
@@ -0,0 +1,68 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="cabcutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for cabinet creation helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#include <fci.h>
+#include <fcntl.h>
+#include <msi.h>
+
+#define CAB_MAX_SIZE 0x7FFFFFFF   // (see KB: Q174866)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// time vs. space trade-off
+enum COMPRESSION_TYPE 
+{ 
+    COMPRESSION_TYPE_NONE, // fastest
+    COMPRESSION_TYPE_LOW, 
+    COMPRESSION_TYPE_MEDIUM,
+    COMPRESSION_TYPE_HIGH, // smallest
+    COMPRESSION_TYPE_MSZIP
+};
+
+// functions
+HRESULT DAPI CabCBegin(
+    __in_z LPCWSTR wzCab,
+    __in_z LPCWSTR wzCabDir,
+    __in DWORD dwMaxFiles,
+    __in DWORD dwMaxSize,
+    __in DWORD dwMaxThresh,
+    __in COMPRESSION_TYPE ct,
+    __out HANDLE *phContext
+    );
+HRESULT DAPI CabCNextCab(
+    __in HANDLE hContext
+    );
+HRESULT DAPI CabCAddFile(
+    __in_z LPCWSTR wzFile,
+    __in_z_opt LPCWSTR wzToken,
+    __in_opt PMSIFILEHASHINFO pmfHash,
+    __in HANDLE hContext
+    );
+HRESULT DAPI CabCFinish(
+    __in HANDLE hContext
+    );
+void DAPI CabCCancel(
+    __in HANDLE hContext
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/cabutil.h b/sdk/inc/cabutil.h
new file mode 100644
index 0000000..0ae23d5
--- /dev/null
+++ b/sdk/inc/cabutil.h
@@ -0,0 +1,71 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="cabutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for cabinet decompression helper functions
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#include <fdi.h>
+#include <sys\stat.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// structs
+
+
+// callback function prototypes
+typedef HRESULT (*CAB_CALLBACK_OPEN_FILE)(LPCWSTR wzFile, INT_PTR* ppFile);
+typedef HRESULT (*CAB_CALLBACK_READ_FILE)(INT_PTR pFile, LPVOID pvData, DWORD cbData, DWORD* pcbRead);
+typedef HRESULT (*CAB_CALLBACK_WRITE_FILE)(INT_PTR pFile, LPVOID pvData, DWORD cbData, DWORD* pcbRead);
+typedef LONG (*CAB_CALLBACK_SEEK_FILE)(INT_PTR pFile, DWORD dwMove, DWORD dwMoveMethod);
+typedef HRESULT (*CAB_CALLBACK_CLOSE_FILE)(INT_PTR pFile);
+
+typedef HRESULT (*CAB_CALLBACK_BEGIN_FILE)(LPCWSTR wzFileId, FILETIME* pftFileTime, DWORD cbFileSize, LPVOID pvContext, INT_PTR* ppFile);
+typedef HRESULT (*CAB_CALLBACK_END_FILE)(LPCWSTR wzFileId, LPVOID pvContext, INT_PTR pFile);
+typedef HRESULT (*CAB_CALLBACK_PROGRESS)(BOOL fBeginFile, LPCWSTR wzFileId, LPVOID pvContext);
+
+// function type with calling convention of __stdcall that .NET 1.1 understands only
+// .NET 2.0 will not need this
+typedef INT_PTR (FAR __stdcall *STDCALL_PFNFDINOTIFY)(FDINOTIFICATIONTYPE fdint, PFDINOTIFICATION pfdin);
+
+
+// functions
+HRESULT DAPI CabInitialize(
+    __in BOOL fDelayLoad
+    );
+void DAPI CabUninitialize(
+    );
+
+HRESULT DAPI CabExtract(
+    __in_z LPCWSTR wzCabinet,
+    __in_z LPCWSTR wzExtractFile,
+    __in_z LPCWSTR wzExtractDir,
+    __in_opt CAB_CALLBACK_PROGRESS pfnProgress,
+    __in_opt LPVOID pvContext,
+    __in DWORD64 dw64EmbeddedOffset
+    );
+
+HRESULT DAPI CabEnumerate(
+    __in_z LPCWSTR wzCabinet,
+    __in_z LPCWSTR wzEnumerateFile,
+    __in STDCALL_PFNFDINOTIFY pfnNotify,
+    __in DWORD64 dw64EmbeddedOffset
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/certutil.h b/sdk/inc/certutil.h
new file mode 100644
index 0000000..dc07179
--- /dev/null
+++ b/sdk/inc/certutil.h
@@ -0,0 +1,71 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="certutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Certificate helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI CertReadProperty(
+    __in PCCERT_CONTEXT pCertContext,
+    __in DWORD dwProperty,
+    __deref_out_bound LPVOID pvValue
+    );
+
+HRESULT DAPI GetCryptProvFromCert(
+      __in_opt HWND hwnd,
+      __in PCCERT_CONTEXT pCert,
+      __out HCRYPTPROV *phCryptProv,
+      __out DWORD *pdwKeySpec,
+      __in BOOL *pfDidCryptAcquire,
+      __deref_opt_out LPWSTR *ppwszTmpContainer,
+      __deref_opt_out LPWSTR *ppwszProviderName,
+      __out DWORD *pdwProviderType
+      );
+
+HRESULT DAPI FreeCryptProvFromCert(
+    __in BOOL fAcquired,
+    __in HCRYPTPROV hProv,
+    __in_opt LPWSTR pwszCapiProvider,
+    __in DWORD dwProviderType,
+    __in_opt LPWSTR pwszTmpContainer
+    );
+
+HRESULT DAPI GetProvSecurityDesc(
+      __in HCRYPTPROV hProv,
+      __deref_out SECURITY_DESCRIPTOR** pSecurity
+      );
+
+HRESULT DAPI SetProvSecurityDesc(
+    __in HCRYPTPROV hProv,
+    __in SECURITY_DESCRIPTOR* pSecurity
+    );
+
+BOOL DAPI CertHasPrivateKey(
+    __in PCCERT_CONTEXT pCertContext,
+    __out_opt DWORD* pdwKeySpec
+    );
+
+HRESULT DAPI CertInstallSingleCertificate(
+    __in HCERTSTORE hStore,
+    __in PCCERT_CONTEXT pCertContext,
+    __in LPCWSTR wzName
+    );
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/conutil.h b/sdk/inc/conutil.h
new file mode 100644
index 0000000..791a545
--- /dev/null
+++ b/sdk/inc/conutil.h
@@ -0,0 +1,115 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="conutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Console helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ConsoleExitOnFailure(x, c, f) if (FAILED(x)) { ConsoleWriteError(x, c, f); ExitTrace(x, f); goto LExit; }
+#define ConsoleExitOnFailure1(x, c, f, s) if (FAILED(x)) { ConsoleWriteError(x, c, f, s, NULL); ExitTrace1(x, f, s); goto LExit; }
+#define ConsoleExitOnFailure2(x, c, f, s, t) if (FAILED(x)) { ConsoleWriteError(x, c, f, s, t); ExitTrace2(x, f, s, t); goto LExit; }
+#define ConsoleExitOnFailure3(x, c, f, s, t, u) if (FAILED(x)) { ConsoleWriteError(x, c, f, s, t, u); ExitTrace3(x, f, s, t, u); goto LExit; }
+
+#define ConsoleExitOnLastError(x, c, f) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ConsoleWriteError(x, c, f); ExitTrace(x, f); goto LExit; } }
+#define ConsoleExitOnLastError1(x, c, f, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ConsoleWriteError(x, c, f, s, NULL); ExitTrace1(x, f, s); goto LExit; } }
+#define ConsoleExitOnLastError2(x, c, f, s, t) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ConsoleWriteError(x, c, f, s, t); ExitTrace2(x, f, s, t); goto LExit; } }
+#define ConsoleExitOnLastError3(x, c, f, s, t, u) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ConsoleWriteError(x, c, f, s, t, u); ExitTrace3(x, f, s, t, u); goto LExit; } }
+
+#define ConsoleExitOnNull(p, x, e, c, f) if (NULL == p) { x = e; ConsoleWriteError(x, c, f); ExitTrace(x, f); goto LExit; }
+#define ConsoleExitOnNull1(p, x, e, c, f, s) if (NULL == p) { x = e; ConsoleWriteError(x, c, f, s, NULL); ExitTrace1(x, f, s); goto LExit; }
+#define ConsoleExitOnNull2(p, x, e, c, f, s, t) if (NULL == p) { x = e; ConsoleWriteError(x, c, f, s, t); ExitTrace2(x, f, s, t); goto LExit; }
+#define ConsoleExitOnNull3(p, x, e, c, f, s, t, u) if (NULL == p) { x = e; ConsoleWriteError(x, c, f, s, t, u); ExitTrace2(x, f, s, t, u); goto LExit; }
+
+
+// the following macros need to go away
+#define ConsoleTrace(l, f) { ConsoleWriteLine(CONSOLE_COLOR_NORMAL, f); Trace(l, f); }
+#define ConsoleTrace1(l, f, s) { ConsoleWriteLine(CONSOLE_COLOR_NORMAL, f, s); Trace1(l, f, s); }
+#define ConsoleTrace2(l, f, s, t) { ConsoleWriteLine(CONSOLE_COLOR_NORMAL, f, s, t); Trace2(l, f, s, t); }
+#define ConsoleTrace3(l, f, s, t, u) { ConsoleWriteLine(CONSOLE_COLOR_NORMAL, f, s, t, u); Trace3(l, f, s, t, u); }
+
+#define ConsoleWarning(f) { ConsoleWriteLine(CONSOLE_COLOR_YELLOW, f); Trace(REPORT_STANDARD, f); }
+#define ConsoleWarning1(f, s) { ConsoleWriteLine(CONSOLE_COLOR_YELLOW, f, s); Trace1(REPORT_STANDARD, f, s); }
+#define ConsoleWarning2(f, s, t) { ConsoleWriteLine(CONSOLE_COLOR_YELLOW, f, s, t); Trace2(REPORT_STANDARD, f, s, t); }
+#define ConsoleWarning3(f, s, t, u) { ConsoleWriteLine(CONSOLE_COLOR_YELLOW, f, s, t, u); Trace3(REPORT_STANDARD, f, s, t, u); }
+
+#define ConsoleError(x, f) { ConsoleWriteError(x, CONSOLE_COLOR_RED, f); TraceError(x, f); }
+#define ConsoleError1(x, f, s) { ConsoleWriteError(x, CONSOLE_COLOR_RED, f, s); TraceError1(x, f, s); }
+#define ConsoleError2(x, f, s, t) { ConsoleWriteError(x, CONSOLE_COLOR_RED, f, s, t); TraceError2(x, f, s, t); }
+#define ConsoleError3(x, f, s, t, u) { ConsoleWriteError(x, CONSOLE_COLOR_RED, f, s, t, u); TraceError3(x, f, s, t, u); }
+
+
+// enums
+enum CONSOLE_COLOR { CONSOLE_COLOR_NORMAL, CONSOLE_COLOR_RED, CONSOLE_COLOR_YELLOW, CONSOLE_COLOR_GREEN };
+
+// structs
+
+// functions
+HRESULT DAPI ConsoleInitialize();
+void DAPI ConsoleUninitialize();
+
+void DAPI ConsoleGreen();
+void DAPI ConsoleRed();
+void DAPI ConsoleYellow();
+void DAPI ConsoleNormal();
+
+HRESULT DAPI ConsoleWrite(
+    CONSOLE_COLOR cc,
+    __in_z __format_string LPCSTR szFormat,
+    ...
+    );
+HRESULT DAPI ConsoleWriteLine(
+    CONSOLE_COLOR cc,
+    __in_z __format_string LPCSTR szFormat,
+    ...
+    );
+HRESULT DAPI ConsoleWriteError(
+    HRESULT hrError,
+    CONSOLE_COLOR cc,
+    __in_z __format_string LPCSTR szFormat,
+    ...
+    );
+
+HRESULT DAPI ConsoleReadW(
+    __deref_out_z LPWSTR* ppwzBuffer
+    );
+
+HRESULT DAPI ConsoleReadStringA(
+    __deref_out_ecount_part(cchCharBuffer,*pcchNumCharReturn) LPSTR* szCharBuffer,
+    CONST DWORD cchCharBuffer,
+    __out DWORD* pcchNumCharReturn
+    );
+HRESULT DAPI ConsoleReadStringW(
+    __deref_out_ecount_part(cchCharBuffer,*pcchNumCharReturn) LPWSTR* szCharBuffer,
+    CONST DWORD cchCharBuffer,
+    __out DWORD* pcchNumCharReturn
+    );
+
+HRESULT DAPI ConsoleReadNonBlockingW(
+    __deref_out_ecount_opt(*pcchSize) LPWSTR* ppwzBuffer,
+    __out DWORD* pcchSize,
+    BOOL fReadLine
+    );
+
+HRESULT ConsoleSetReadHidden(void);
+HRESULT ConsoleSetReadNormal(void);
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/cryputil.h b/sdk/inc/cryputil.h
new file mode 100644
index 0000000..2009269
--- /dev/null
+++ b/sdk/inc/cryputil.h
@@ -0,0 +1,49 @@
+//-------------------------------------------------------------------------------------------------
+// <copyright file="cryputil.h" company="Microsoft">
+//    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.
+// </copyright>
+//
+// <summary>
+//    Cryptography helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#pragma once
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+// function declarations
+
+HRESULT CrypHashFile(
+    __in_z LPCWSTR wzFilePath,
+    __in DWORD dwProvType,
+    __in ALG_ID algid,
+    __out_bcount(cbHash) BYTE* pbHash,
+    __in DWORD cbHash,
+    __out_opt DWORD64* pqwBytesHashed
+    );
+
+HRESULT CrypHashFileHandle(
+    __in HANDLE hFile,
+    __in DWORD dwProvType,
+    __in ALG_ID algid,
+    __out_bcount(cbHash) BYTE* pbHash,
+    __in DWORD cbHash,
+    __out_opt DWORD64* pqwBytesHashed
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/dictutil.h b/sdk/inc/dictutil.h
new file mode 100644
index 0000000..ed54bb1
--- /dev/null
+++ b/sdk/inc/dictutil.h
@@ -0,0 +1,47 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="dictutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for string dict helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void* STRINGDICT_HANDLE;
+
+HRESULT DAPI DictCreate(
+    __out void **ppvHandle,
+    __in DWORD dwNumExpectedItems,
+    __in size_t cByteOffset
+    );
+HRESULT DAPI DictAdd(
+    __in void *pvHandle,
+    __in_z LPCWSTR szString,
+    __in void *pvValue
+    );
+HRESULT DAPI DictGet(
+    __in void *pvHandle,
+    __in_z LPCWSTR szString,
+    __out void **ppvValue
+    );
+void DAPI DictDestroy(
+    __in void *pvHandle
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/dirutil.h b/sdk/inc/dirutil.h
new file mode 100644
index 0000000..4dc8ee7
--- /dev/null
+++ b/sdk/inc/dirutil.h
@@ -0,0 +1,58 @@
+//-------------------------------------------------------------------------------------------------
+// <copyright file="dirutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Directory helper funtions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+BOOL DAPI DirExists(
+    __in_z LPCWSTR wzPath, 
+    __out_opt DWORD *pdwAttributes
+    );
+
+HRESULT DAPI DirCreateTempPath(
+    __in_z LPCWSTR wzPrefix,
+    __out_ecount_z(cchPath) LPWSTR wzPath,
+    __in DWORD cchPath
+    );
+
+HRESULT DAPI DirEnsureExists(
+    __in_z LPCWSTR wzPath, 
+    __in_opt LPSECURITY_ATTRIBUTES psa
+    );
+
+HRESULT DAPI DirEnsureDelete(
+    __in_z LPCWSTR wzPath,
+    __in BOOL fDeleteFiles,
+    __in BOOL fRecurse
+    );
+
+HRESULT DAPI DirGetCurrent(
+    __deref_out_z LPWSTR* psczCurrentDirectory
+    );
+
+HRESULT DAPI DirSetCurrent(
+    __in_z LPCWSTR wzDirectory
+    );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/dutil.h b/sdk/inc/dutil.h
new file mode 100644
index 0000000..cc1b4db
--- /dev/null
+++ b/sdk/inc/dutil.h
@@ -0,0 +1,212 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="dutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for utility layer that provides standard support for asserts, exit macros
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#define DAPI __stdcall
+#define DAPIV __cdecl // used only for functions taking variable length arguments
+
+#define DAPI_(type) EXTERN_C type DAPI
+#define DAPIV_(type) EXTERN_C type DAPIV
+
+
+// enums
+enum REPORT_LEVEL
+{
+    REPORT_NONE,      // turns off report (only valid for XXXSetLevel())
+    REPORT_STANDARD,  // written if reporting is on
+    REPORT_VERBOSE,   // written only if verbose reporting is on
+    REPORT_DEBUG,     // reporting useful when debugging code
+    REPORT_ERROR,     // always gets reported, but can never be specified
+};
+
+// asserts and traces
+typedef BOOL (DAPI *DUTIL_ASSERTDISPLAYFUNCTION)(__in_z LPCSTR sz);
+
+extern "C" void DAPI Dutil_SetAssertModule(__in HMODULE hAssertModule);
+extern "C" void DAPI Dutil_SetAssertDisplayFunction(__in DUTIL_ASSERTDISPLAYFUNCTION pfn);
+extern "C" void DAPI Dutil_Assert(__in_z LPCSTR szFile, __in int iLine);
+extern "C" void DAPI Dutil_AssertSz(__in_z LPCSTR szFile, __in int iLine, __in_z LPCSTR szMsg);
+
+extern "C" void DAPI Dutil_TraceSetLevel(__in REPORT_LEVEL ll, __in BOOL fTraceFilenames);
+extern "C" REPORT_LEVEL DAPI Dutil_TraceGetLevel();
+extern "C" void __cdecl Dutil_Trace(__in_z LPCSTR szFile, __in int iLine, __in REPORT_LEVEL rl, __in_z __format_string LPCSTR szMessage, ...);
+extern "C" void __cdecl Dutil_TraceError(__in_z LPCSTR szFile, __in int iLine, __in REPORT_LEVEL rl, __in HRESULT hr, __in_z __format_string LPCSTR szMessage, ...);
+extern "C" void DAPI Dutil_RootFailure(__in_z LPCSTR szFile, __in int iLine, __in HRESULT hrError);
+
+#ifdef DEBUG
+
+#define AssertSetModule(m) (void)Dutil_SetAssertModule(m)
+#define AssertSetDisplayFunction(pfn) (void)Dutil_SetAssertDisplayFunction(pfn)
+#define Assert(f)          ((f)    ? (void)0 : (void)Dutil_Assert(__FILE__, __LINE__))
+#define AssertSz(f, sz)    ((f)    ? (void)0 : (void)Dutil_AssertSz(__FILE__, __LINE__, sz))
+
+#define TraceSetLevel(l, f) (void)Dutil_TraceSetLevel(l, f)
+#define TraceGetLevel() (REPORT_LEVEL)Dutil_TraceGetLevel()
+#define Trace(l, f) (void)Dutil_Trace(__FILE__, __LINE__, l, f, NULL)
+#define Trace1(l, f, s) (void)Dutil_Trace(__FILE__, __LINE__, l, f, s)
+#define Trace2(l, f, s, t) (void)Dutil_Trace(__FILE__, __LINE__, l, f, s, t)
+#define Trace3(l, f, s, t, u) (void)Dutil_Trace(__FILE__, __LINE__, l, f, s, t, u)
+
+#define TraceError(x, f) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_ERROR, x, f, NULL)
+#define TraceError1(x, f, s) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_ERROR, x, f, s)
+#define TraceError2(x, f, s, t) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_ERROR, x, f, s, t)
+#define TraceError3(x, f, s, t, u) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_ERROR, x, f, s, t, u)
+
+#define TraceErrorDebug(x, f) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_DEBUG, x, f, NULL)
+#define TraceErrorDebug1(x, f, s) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_DEBUG, x, f, s)
+#define TraceErrorDebug2(x, f, s, t) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_DEBUG, x, f, s, t)
+#define TraceErrorDebug3(x, f, s, t, u) (void)Dutil_TraceError(__FILE__, __LINE__, REPORT_DEBUG, x, f, s, t, u)
+
+#else // !DEBUG
+
+#define AssertSetModule(m)
+#define AssertSetDisplayFunction(pfn)
+#define Assert(f)
+#define AssertSz(f, sz)
+
+#define TraceSetLevel(l, f)
+#define Trace(l, f)
+#define Trace1(l, f, s)
+#define Trace2(l, f, s, t)
+#define Trace3(l, f, s, t, u)
+
+#define TraceError(x, f)
+#define TraceError1(x, f, s)
+#define TraceError2(x, f, s, t)
+#define TraceError3(x, f, s, t, u)
+
+#define TraceErrorDebug(x, f)
+#define TraceErrorDebug1(x, f, s)
+#define TraceErrorDebug2(x, f, s, t)
+#define TraceErrorDebug3(x, f, s, t, u)
+
+#endif // DEBUG
+
+
+// ExitTrace can be overriden
+#ifndef ExitTrace
+#define ExitTrace TraceError
+#endif
+#ifndef ExitTrace1
+#define ExitTrace1 TraceError1
+#endif
+#ifndef ExitTrace2
+#define ExitTrace2 TraceError2
+#endif
+#ifndef ExitTrace3
+#define ExitTrace3 TraceError3
+#endif
+
+// Exit macros
+#define ExitFunction()        { goto LExit; }
+#define ExitFunction1(x)          { x; goto LExit; }
+
+#define ExitOnLastError(x, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; } }
+#define ExitOnLastError1(x, f, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; } }
+#define ExitOnLastError2(x, f, s, t) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; } }
+
+#define ExitOnLastErrorDebugTrace(x, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug(x, s); goto LExit; } }
+#define ExitOnLastErrorDebugTrace1(x, f, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug1(x, f, s); goto LExit; } }
+#define ExitOnLastErrorDebugTrace2(x, f, s, t) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug2(x, f, s, t); goto LExit; } }
+
+#define ExitWithLastError(x, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; }
+#define ExitWithLastError1(x, f, s) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
+#define ExitWithLastError2(x, f, s, t) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; }
+#define ExitWithLastError3(x, f, s, t, u) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace3(x, f, s, t, u); goto LExit; }
+
+#define ExitOnFailure(x, s)   if (FAILED(x)) { ExitTrace(x, s);  goto LExit; }
+#define ExitOnFailure1(x, f, s)   if (FAILED(x)) { ExitTrace1(x, f, s);  goto LExit; }
+#define ExitOnFailure2(x, f, s, t)   if (FAILED(x)) { ExitTrace2(x, f, s, t);  goto LExit; }
+#define ExitOnFailure3(x, f, s, t, u) if (FAILED(x)) { ExitTrace3(x, f, s, t, u);  goto LExit; }
+
+#define ExitOnRootFailure(x, s)   if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s);  goto LExit; }
+#define ExitOnRootFailure1(x, f, s)   if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s);  goto LExit; }
+#define ExitOnRootFailure2(x, f, s, t)   if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t);  goto LExit; }
+#define ExitOnRootFailure3(x, f, s, t, u) if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace3(x, f, s, t, u);  goto LExit; }
+
+#define ExitOnFailureDebugTrace(x, s)   if (FAILED(x)) { TraceErrorDebug(x, s);  goto LExit; }
+#define ExitOnFailureDebugTrace1(x, f, s)   if (FAILED(x)) { TraceErrorDebug1(x, f, s);  goto LExit; }
+#define ExitOnFailureDebugTrace2(x, f, s, t)   if (FAILED(x)) { TraceErrorDebug2(x, f, s, t);  goto LExit; }
+#define ExitOnFailureDebugTrace3(x, f, s, t, u) if (FAILED(x)) { TraceErrorDebug3(x, f, s, t, u);  goto LExit; }
+
+#define ExitOnNull(p, x, e, s)   if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s);  goto LExit; }
+#define ExitOnNull1(p, x, e, f, s)   if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s);  goto LExit; }
+#define ExitOnNull2(p, x, e, f, s, t)   if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t);  goto LExit; }
+
+#define ExitOnNullWithLastError(p, x, s) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; }
+#define ExitOnNullWithLastError1(p, x, f, s) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
+
+#define ExitOnNullDebugTrace(p, x, e, s)   if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug(x, s);  goto LExit; }
+#define ExitOnNullDebugTrace1(p, x, e, f, s)   if (NULL == p) { x = e; Dutil_RootFailure(__FILE__, __LINE__, x); TraceErrorDebug1(x, f, s);  goto LExit; }
+
+#define ExitOnInvalidHandleWithLastError(p, x, s) if (INVALID_HANDLE_VALUE == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; }
+#define ExitOnInvalidHandleWithLastError1(p, x, f, s) if (INVALID_HANDLE_VALUE == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
+
+#define ExitOnWin32Error(e, x, s) if (ERROR_SUCCESS != e) { x = HRESULT_FROM_WIN32(e); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; }
+#define ExitOnWin32Error1(e, x, f, s) if (ERROR_SUCCESS != e) { x = HRESULT_FROM_WIN32(e); if (!FAILED(x)) { x = E_FAIL; } Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; }
+
+// release macros
+#define ReleaseObject(x) if (x) { x->Release(); }
+#define ReleaseObjectArray(prg, cel) if (prg) { for (DWORD Dutil_ReleaseObjectArrayIndex = 0; Dutil_ReleaseObjectArrayIndex < cel; ++Dutil_ReleaseObjectArrayIndex) { ReleaseObject(prg[Dutil_ReleaseObjectArrayIndex]); } ReleaseMem(prg); }
+#define ReleaseVariant(x) { ::VariantClear(&x); }
+#define ReleaseNullObject(x) if (x) { (x)->Release(); x = NULL; }
+#define ReleaseCertificate(x) if (x) { ::CertFreeCertificateContext(x); x=NULL; }
+#define ReleaseHandle(x) if (x) { ::CloseHandle(x); x = NULL; }
+
+
+// useful defines and macros
+#define Unused(x) ((void)x)
+
+#ifndef countof
+#if 1
+#define countof(ary) (sizeof(ary) / sizeof(ary[0]))
+#else
+#ifndef __cplusplus
+#define countof(ary) (sizeof(ary) / sizeof(ary[0]))
+#else
+template<typename T> static char countofVerify(void const *, T) throw() { return 0; }
+template<typename T> static void countofVerify(T *const, T *const *) throw() {};
+#define countof(arr) (sizeof(countofVerify(arr,&(arr))) * sizeof(arr)/sizeof(*(arr)))
+#endif
+#endif
+#endif
+
+#define roundup(x, n) roundup_typed(x, n, DWORD)
+#define roundup_typed(x, n, t) (((t)(x) + ((t)(n) - 1)) & ~((t)(n) - 1))
+
+#define HRESULT_FROM_RPC(x) ((HRESULT) ((x) | FACILITY_RPC))
+
+#ifndef MAXSIZE_T
+#define MAXSIZE_T ((SIZE_T)~((SIZE_T)0))
+#endif
+
+typedef const BYTE* LPCBYTE;
+
+#define E_FILENOTFOUND HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
+#define E_INVALIDSTATE HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
+#define E_MOREDATA HRESULT_FROM_WIN32(ERROR_MORE_DATA)
+#define E_NOMOREITEMS HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS)
+#define E_NOTFOUND HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
+#define E_MODNOTFOUND HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND)
+
+#define AddRefAndRelease(x) { x->AddRef(); x->Release(); }
+
+#define MAKEQWORDVERSION(mj, mi, b, r) (((DWORD64)MAKELONG(r, b)) | (((DWORD64)MAKELONG(mi, mj)) << 32))
+
+// other functions
+extern "C" HRESULT DAPI LoadSystemLibrary(__in_z LPCWSTR wzModuleName, __out HMODULE *phModule);
diff --git a/sdk/inc/eseutil.h b/sdk/inc/eseutil.h
new file mode 100644
index 0000000..27ec027
--- /dev/null
+++ b/sdk/inc/eseutil.h
@@ -0,0 +1,212 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="eseutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for Extensible Storage Engine (Jetblue) helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct COLUMN_SCHEMA
+{
+    JET_COLUMNID jcColumn;
+    LPCWSTR pszName;
+    JET_COLTYP jcColumnType;
+    BOOL fKey; // If this column is part of the key of the table
+    BOOL fFixed;
+    BOOL fNullable;
+    BOOL fAutoIncrement;
+};
+
+struct TABLE_SCHEMA
+{
+    JET_TABLEID jtTable;
+    LPCWSTR pszName;
+    DWORD dwColumns;
+    COLUMN_SCHEMA *pcsColumns;
+};
+
+struct DATABASE_SCHEMA
+{
+    DWORD dwTables;
+    TABLE_SCHEMA *ptsTables;
+};
+
+typedef void* ESE_QUERY_HANDLE;
+
+HRESULT DAPI EseBeginSession(
+    __out JET_INSTANCE *pjiInstance,
+    __out JET_SESID *pjsSession,
+    __in_z LPCWSTR pszInstance,
+    __in_z LPCWSTR pszPath
+    );
+HRESULT DAPI EseEndSession(
+    __in JET_INSTANCE jiInstance,
+    __in JET_SESID jsSession
+    );
+HRESULT DAPI EseEnsureDatabase(
+    __in JET_SESID jsSession,
+    __in_z LPCWSTR pszFile,
+    __in DATABASE_SCHEMA *pdsSchema,
+    __out JET_DBID* pjdbDb,
+    __in BOOL fExclusive,
+    __in BOOL fReadonly
+    );
+HRESULT DAPI EseCloseDatabase(
+    __in JET_SESID jsSession,
+    __in JET_DBID jdbDb
+    );
+HRESULT DAPI EseCreateTable(
+    __in JET_SESID jsSession,
+    __in JET_DBID jdbDb,
+    __in_z LPCWSTR pszTable,
+    __out JET_TABLEID *pjtTable
+    );
+HRESULT DAPI EseOpenTable(
+    __in JET_SESID jsSession,
+    __in JET_DBID jdbDb,
+    __in_z LPCWSTR pszTable,
+    __out JET_TABLEID *pjtTable
+    );
+HRESULT DAPI EseCloseTable(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable
+    );
+HRESULT DAPI EseEnsureColumn(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in_z LPCWSTR pszColumnName,
+    __in JET_COLTYP jcColumnType,
+    __in ULONG ulColumnSize,
+    __in BOOL fFixed,
+    __in BOOL fNullable,
+    __out_opt JET_COLUMNID *pjcColumn
+    );
+HRESULT DAPI EseGetColumn(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in_z LPCWSTR pszColumnName,
+    __out JET_COLUMNID *pjcColumn
+    );
+HRESULT DAPI EseMoveCursor(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in LONG lRow
+    );
+HRESULT DAPI EseDeleteRow(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable
+    );
+HRESULT DAPI EseBeginTransaction(
+    __in JET_SESID jsSession
+    );
+HRESULT DAPI EseCommitTransaction(
+    __in JET_SESID jsSession
+    );
+HRESULT DAPI EsePrepareUpdate(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in ULONG ulPrep
+    );
+HRESULT DAPI EseFinishUpdate(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable
+    );
+HRESULT DAPI EseSetColumnDword(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in JET_COLUMNID jcColumn,
+    __in DWORD dwValue
+    );
+// Sets a column value without the need to call begintransaction, prepareupdate, finishupdate, or committransaction (all of these are called in sequence for you)
+HRESULT DAPI EseSetColumnDwordFull(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in JET_COLUMNID jcColumn,
+    __in DWORD dwValue
+    );
+HRESULT DAPI EseSetColumnString(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in JET_COLUMNID jcColumn,
+    __in_z LPCWSTR pszValue
+    );
+// Sets a column value without the need to call begintransaction, prepareupdate, finishupdate, or committransaction (all of these are called in sequence for you)
+HRESULT DAPI EseSetColumnStringFull(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in JET_COLUMNID jcColumn,
+    __in_z LPCWSTR pszValue
+    );
+HRESULT DAPI EseSetColumnEmpty(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in JET_COLUMNID jcColumn
+    );
+HRESULT DAPI EseSetColumnEmptyFull(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in JET_COLUMNID jcColumn
+    );
+HRESULT DAPI EseGetColumnDword(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in JET_COLUMNID jcColumn,
+    __out DWORD *pdwValue
+    );
+HRESULT DAPI EseGetColumnString(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in JET_COLUMNID jcColumn,
+    __out LPWSTR *ppszValue
+    );
+
+// Call this once for each key column in the table
+HRESULT DAPI EseBeginQuery(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in BOOL fExact,
+    __out ESE_QUERY_HANDLE *peqhHandle
+    );
+HRESULT DAPI EseSetQueryColumnDword(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in ESE_QUERY_HANDLE eqhHandle,
+    __in DWORD dwData,
+    __in BOOL fFinal // If this is true, all other key columns in the query will be set to "*"
+    );
+HRESULT DAPI EseSetQueryColumnString(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in ESE_QUERY_HANDLE eqhHandle,
+    __in_z LPCWSTR pszString,
+    __in BOOL fFinal // If this is true, all other key columns in the query will be set to "*"
+    );
+// This frees the query handle without actually running the query
+void DAPI EseFreeQuery(
+    __in ESE_QUERY_HANDLE eqhHandle
+    );
+// Once all columns have been set up, call this and read the result
+HRESULT DAPI EseRunQuery(
+    __in JET_SESID jsSession,
+    __in JET_TABLEID jtTable,
+    __in ESE_QUERY_HANDLE eqhHandle
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/fileutil.h b/sdk/inc/fileutil.h
new file mode 100644
index 0000000..327a358
--- /dev/null
+++ b/sdk/inc/fileutil.h
@@ -0,0 +1,176 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="fileutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for file helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseFile(h) if (INVALID_HANDLE_VALUE != h) { ::CloseHandle(h); h = INVALID_HANDLE_VALUE; }
+#define ReleaseFileHandle(h) if (INVALID_HANDLE_VALUE != h) { ::CloseHandle(h); h = INVALID_HANDLE_VALUE; }
+#define ReleaseFileFindHandle(h) if (INVALID_HANDLE_VALUE != h) { ::FindClose(h); h = INVALID_HANDLE_VALUE; }
+
+enum FILE_ARCHITECTURE
+{
+    FILE_ARCHITECTURE_UNKNOWN,
+    FILE_ARCHITECTURE_X86,
+    FILE_ARCHITECTURE_X64,
+    FILE_ARCHITECTURE_IA64,
+};
+
+
+LPWSTR DAPI FileFromPath(
+    __in_z LPCWSTR wzPath
+    );
+HRESULT DAPI FileResolvePath(
+    __in_z LPCWSTR wzRelativePath,
+    __out LPWSTR *ppwzFullPath
+    );
+HRESULT DAPI FileStripExtension(
+    __in_z LPCWSTR wzFileName,
+    __out LPWSTR *ppwzFileNameNoExtension
+    );
+HRESULT DAPI FileChangeExtension(
+    __in_z LPCWSTR wzFileName,
+    __in_z LPCWSTR wzNewExtension,
+    __out LPWSTR *ppwzFileNameNewExtension
+    );
+HRESULT DAPI FileAddSuffixToBaseName(
+    __in_z LPCWSTR wzFileName,
+    __in_z LPCWSTR wzSuffix,
+    __out_z LPWSTR* psczNewFileName
+    );
+HRESULT DAPI FileVersionFromString(
+    __in_z LPCWSTR wzVersion, 
+    __out DWORD *pdwVerMajor, 
+    __out DWORD* pdwVerMinor
+    );
+HRESULT DAPI FileVersionFromStringEx(
+    __in_z LPCWSTR wzVersion,
+    __in DWORD cchVersion,
+    __out DWORD64* pqwVersion
+    );
+HRESULT DAPI FileSetPointer(
+    __in HANDLE hFile,
+    __in DWORD64 dw64Move,
+    __out_opt DWORD64* pdw64NewPosition,
+    __in DWORD dwMoveMethod
+    );
+HRESULT DAPI FileSize(
+    __in_z LPCWSTR pwzFileName,
+    __out LONGLONG* pllSize
+    );
+HRESULT DAPI FileSizeByHandle(
+    __in HANDLE hFile, 
+    __out LONGLONG* pllSize
+    );
+BOOL DAPI FileExistsEx(
+    __in_z LPCWSTR wzPath, 
+    __out_opt DWORD *pdwAttributes
+    );
+HRESULT DAPI FileRead(
+    __deref_out_bcount_full(*pcbDest) LPBYTE* ppbDest,
+    __out DWORD* pcbDest,
+    __in_z LPCWSTR wzSrcPath
+    );
+HRESULT DAPI FileReadUntil(
+    __deref_out_bcount_full(*pcbDest) LPBYTE* ppbDest,
+    __out_range(<=, cbMaxRead) DWORD* pcbDest,
+    __in_z LPCWSTR wzSrcPath,
+    __in DWORD cbMaxRead
+    );
+HRESULT DAPI FileReadPartial(
+    __deref_out_bcount_full(*pcbDest) LPBYTE* ppbDest,
+    __out_range(<=, cbMaxRead) DWORD* pcbDest,
+    __in_z LPCWSTR wzSrcPath,
+    __in BOOL fSeek,
+    __in DWORD cbStartPosition,
+    __in DWORD cbMaxRead,
+    __in BOOL fPartialOK
+    );
+HRESULT DAPI FileWrite(
+    __in_z LPCWSTR pwzFileName,
+    __in DWORD dwFlagsAndAttributes,
+    __in_bcount(cbData) LPCBYTE pbData,
+    __in DWORD cbData,
+    __out_opt HANDLE* pHandle
+    );
+HRESULT DAPI FileWriteHandle(
+    __in HANDLE hFile,
+    __in_bcount(cbData) LPCBYTE pbData,
+    __in DWORD cbData
+    );
+HRESULT DAPI FileEnsureCopy(
+    __in_z LPCWSTR wzSource,
+    __in_z LPCWSTR wzTarget,
+    __in BOOL fOverwrite
+    );
+HRESULT DAPI FileEnsureMove(
+    __in_z LPCWSTR wzSource, 
+    __in_z LPCWSTR wzTarget, 
+    __in BOOL fOverwrite,
+    __in BOOL fAllowCopy
+    );
+HRESULT DAPI FileCreateTemp(
+    __in_z LPCWSTR wzPrefix,
+    __in_z LPCWSTR wzExtension,
+    __deref_opt_out_z LPWSTR* ppwzTempFile,
+    __out_opt HANDLE* phTempFile
+    );
+HRESULT DAPI FileCreateTempW(
+    __in_z LPCWSTR wzPrefix,
+    __in_z LPCWSTR wzExtension,
+    __deref_opt_out_z LPWSTR* ppwzTempFile,
+    __out_opt HANDLE* phTempFile
+    );
+HRESULT DAPI FileVersion(
+    __in_z LPCWSTR wzFilename, 
+    __out DWORD *pdwVerMajor, 
+    __out DWORD* pdwVerMinor
+    );
+HRESULT DAPI FileIsSame(
+    __in_z LPCWSTR wzFile1,
+    __in_z LPCWSTR wzFile2,
+    __out LPBOOL lpfSameFile
+    );
+HRESULT DAPI FileEnsureDelete(
+    __in_z LPCWSTR wzFile
+    );
+HRESULT DAPI FileGetTime(
+    __in_z LPCWSTR wzFile,  
+    __out_opt  LPFILETIME lpCreationTime,
+    __out_opt  LPFILETIME lpLastAccessTime,
+    __out_opt  LPFILETIME lpLastWriteTime
+    );
+HRESULT DAPI FileSetTime(
+    __in_z LPCWSTR wzFile,
+    __in_opt  const FILETIME *lpCreationTime,
+    __in_opt  const FILETIME *lpLastAccessTime,
+    __in_opt  const FILETIME *lpLastWriteTime
+    );
+HRESULT DAPI FileResetTime(
+    __in_z LPCWSTR wzFile
+    );
+HRESULT FileExecutableArchitecture(
+    __in_z LPCWSTR wzFile,
+    __out FILE_ARCHITECTURE *pArchitecture
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/gdiputil.h b/sdk/inc/gdiputil.h
new file mode 100644
index 0000000..c7b622e
--- /dev/null
+++ b/sdk/inc/gdiputil.h
@@ -0,0 +1,46 @@
+//-------------------------------------------------------------------------------------------------
+// <copyright file="gdiputil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    GDI+ helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#pragma once
+
+#define ExitOnGdipFailure(g, x, s) { x = GdipHresultFromStatus(g); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace(x, s); goto LExit; } }
+#define ExitOnGdipFailure1(g, x, f, s) { x = GdipHresultFromStatus(g); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace1(x, f, s); goto LExit; } }
+#define ExitOnGdipFailure2(g, x, f, s, t) { x = GdipHresultFromStatus(g); if (FAILED(x)) { Dutil_RootFailure(__FILE__, __LINE__, x); ExitTrace2(x, f, s, t); goto LExit; } }
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI GdipBitmapFromResource(
+    __in_opt HINSTANCE hinst,
+    __in_z LPCSTR szId,
+    __out Gdiplus::Bitmap **ppBitmap
+    );
+
+HRESULT DAPI GdipBitmapFromFile(
+    __in_z LPCWSTR wzFileName,
+    __out Gdiplus::Bitmap **ppBitmap
+    );
+
+HRESULT DAPI GdipHresultFromStatus(
+    __in Gdiplus::Status gs
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/inetutil.h b/sdk/inc/inetutil.h
new file mode 100644
index 0000000..59836b5
--- /dev/null
+++ b/sdk/inc/inetutil.h
@@ -0,0 +1,54 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="inetutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Internet utilites.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseInternet(h) if (h) { ::InternetCloseHandle(h); h = NULL; }
+#define ReleaseNullInternet(h) if (h) { ::InternetCloseHandle(h); h = NULL; }
+
+
+// functions
+HRESULT DAPI InternetGetSizeByHandle(
+    __in HINTERNET hiFile,
+    __out LONGLONG* pllSize
+    );
+
+HRESULT DAPI InternetGetCreateTimeByHandle(
+    __in HINTERNET hiFile,
+    __out LPFILETIME pft
+    );
+
+HRESULT DAPI InternetQueryInfoString(
+    __in HINTERNET h,
+    __in DWORD dwInfo,
+    __deref_out_z LPWSTR* psczValue
+    );
+
+HRESULT DAPI InternetQueryInfoNumber(
+    __in HINTERNET h,
+    __in DWORD dwInfo,
+    __out LONG* plInfo
+    );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/jsonutil.h b/sdk/inc/jsonutil.h
new file mode 100644
index 0000000..2ce9c9f
--- /dev/null
+++ b/sdk/inc/jsonutil.h
@@ -0,0 +1,94 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="jsonutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    JavaScript Object Notation (JSON) helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum JSON_WRITER_TOKEN
+{
+    JSON_WRITER_TOKEN_NONE,
+    JSON_WRITER_TOKEN_ARRAY_START,
+    JSON_WRITER_TOKEN_ARRAY_VALUE,
+    JSON_WRITER_TOKEN_ARRAY_END,
+    JSON_WRITER_TOKEN_OBJECT_START,
+    JSON_WRITER_TOKEN_OBJECT_KEY,
+    JSON_WRITER_TOKEN_OBJECT_VALUE,
+    JSON_WRITER_TOKEN_OBJECT_END,
+    JSON_WRITER_TOKEN_VALUE,
+};
+
+typedef struct _JSON_WRITER
+{
+    CRITICAL_SECTION cs;
+    LPWSTR sczJson;
+
+    JSON_WRITER_TOKEN* rgTokenStack;
+    DWORD cTokens;
+    DWORD cMaxTokens;
+} JSON_WRITER;
+
+
+DAPI_(HRESULT) JsonInitializeWriter(
+    __in JSON_WRITER* pWriter
+    );
+
+DAPI_(void) JsonUninitializeWriter(
+    __in JSON_WRITER* pWriter
+    );
+
+DAPI_(HRESULT) JsonWriteBool(
+    __in JSON_WRITER* pWriter,
+    __in BOOL fValue
+    );
+
+DAPI_(HRESULT) JsonWriteNumber(
+    __in JSON_WRITER* pWriter,
+    __in DWORD dwValue
+    );
+
+DAPI_(HRESULT) JsonWriteString(
+    __in JSON_WRITER* pWriter,
+    __in_z_opt LPCWSTR wzValue
+    );
+
+DAPI_(HRESULT) JsonWriteArrayStart(
+    __in JSON_WRITER* pWriter
+    );
+
+DAPI_(HRESULT) JsonWriteArrayEnd(
+    __in JSON_WRITER* pWriter
+    );
+
+DAPI_(HRESULT) JsonWriteObjectStart(
+    __in JSON_WRITER* pWriter
+    );
+
+DAPI_(HRESULT) JsonWriteObjectKey(
+    __in JSON_WRITER* pWriter,
+    __in_z LPCWSTR wzKey
+    );
+
+DAPI_(HRESULT) JsonWriteObjectEnd(
+    __in JSON_WRITER* pWriter
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/locutil.h b/sdk/inc/locutil.h
new file mode 100644
index 0000000..d69f305
--- /dev/null
+++ b/sdk/inc/locutil.h
@@ -0,0 +1,53 @@
+//-------------------------------------------------------------------------------------------------
+// <copyright file="locutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for localization helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct LOC_STRING
+{
+    LPWSTR wzID;
+    LPWSTR wzText;
+    BOOL bOverridable;
+};
+
+struct LOC_STRINGSET
+{
+    DWORD cLocStrings;
+    LOC_STRING* rgLocStrings;
+};
+
+HRESULT DAPI LocLoadFromFile(
+    __in_z LPCWSTR wzWxlFile,
+    __out LOC_STRINGSET** ppLocStringSet
+    );
+
+HRESULT DAPI LocLocalizeString(
+    __in const LOC_STRINGSET* pLocStringSet,
+    __inout LPWSTR* ppInput
+    );
+
+void DAPI LocFree(
+    __in_opt LOC_STRINGSET* pLocStringSet
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/logutil.h b/sdk/inc/logutil.h
new file mode 100644
index 0000000..bf5f15c
--- /dev/null
+++ b/sdk/inc/logutil.h
@@ -0,0 +1,182 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="logutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for string helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define LogExitOnFailure(x, i, f) if (FAILED(x)) { LogErrorId(x, i, NULL, NULL, NULL); ExitTrace(x, f); goto LExit; }
+#define LogExitOnFailure1(x, i, f, s) if (FAILED(x)) { LogErrorId(x, i, s, NULL, NULL); ExitTrace1(x, f, s); goto LExit; }
+#define LogExitOnFailure2(x, i, f, s, t) if (FAILED(x)) { LogErrorId(x, i, s, t, NULL); ExitTrace2(x, f, s, t); goto LExit; }
+#define LogExitOnFailure3(x, i, f, s, t, u) if (FAILED(x)) { LogErrorId(x, i, s, t, u); ExitTrace3(x, f, s, t, u); goto LExit; }
+
+// enums
+
+// structs
+
+// functions
+BOOL DAPI IsLogInitialized();
+
+HRESULT DAPI LogInitialize(
+    __in HMODULE hModule,
+    __in_z LPCWSTR wzLog,
+    __in_z_opt LPCWSTR wzExt,
+    __in BOOL fAppend,
+    __in BOOL fHeader
+    );
+
+HRESULT DAPI LogRename(
+    __in_z LPCWSTR wzNewPath
+    );
+
+void DAPI LogUninitialize(
+    __in BOOL fFooter
+    );
+
+BOOL DAPI LogIsOpen();
+
+HRESULT DAPI LogSetSpecialParams(
+    __in_z LPCSTR wzSpecialBeginLine,
+    __in_z LPCSTR wzSpecialAfterTimeStamp,
+    __in_z LPCSTR wzSpecialEndLine
+    );
+
+REPORT_LEVEL DAPI LogSetLevel(
+    __in REPORT_LEVEL rl,
+    __in BOOL fLogChange
+    );
+
+REPORT_LEVEL DAPI LogGetLevel();
+
+HRESULT DAPI LogGetPath(
+    __out_ecount_z(cchLogPath) LPWSTR pwzLogPath, 
+    __in DWORD cchLogPath
+    );
+
+HANDLE DAPI LogGetHandle();
+
+HRESULT DAPIV LogString(
+    __in REPORT_LEVEL rl,
+    __in_z __format_string LPCSTR szFormat,
+    ...
+    );
+
+HRESULT DAPI LogStringArgs(
+    __in REPORT_LEVEL rl,
+    __in_z __format_string LPCSTR szFormat,
+    __in va_list args
+    );
+
+HRESULT DAPIV LogStringLine(
+    __in REPORT_LEVEL rl,
+    __in_z __format_string LPCSTR szFormat,
+    ...
+    );
+
+HRESULT DAPI LogStringLineArgs(
+    __in REPORT_LEVEL rl,
+    __in_z __format_string LPCSTR szFormat,
+    __in va_list args
+    );
+
+HRESULT DAPI LogIdModuleArgs(
+    __in REPORT_LEVEL rl,
+    __in DWORD dwLogId,
+    __in_opt HMODULE hModule,
+    __in va_list args
+    );
+
+/* 
+ * Wraps LogIdModuleArgs, so inline to save the function call
+ */
+
+inline HRESULT LogId(
+    __in REPORT_LEVEL rl,
+    __in DWORD dwLogId,
+    ...
+    )
+{
+    HRESULT hr = S_OK;
+    va_list args;
+
+    va_start(args, dwLogId);
+    hr = LogIdModuleArgs(rl, dwLogId, NULL, args);
+    va_end(args);
+
+    return hr;
+}
+
+
+/* 
+ * Wraps LogIdModuleArgs, so inline to save the function call
+ */
+ 
+inline HRESULT LogIdArgs(
+    __in REPORT_LEVEL rl,
+    __in DWORD dwLogId,
+    __in va_list args
+    )
+{
+    return LogIdModuleArgs(rl, dwLogId, NULL, args);
+}
+
+HRESULT DAPIV LogErrorString(
+    __in HRESULT hrError,
+    __in_z __format_string LPCSTR szFormat,
+    ...
+    );
+
+HRESULT DAPI LogErrorStringArgs(
+    __in HRESULT hrError,
+    __in_z __format_string LPCSTR szFormat,
+    __in va_list args
+    );
+
+HRESULT DAPI LogErrorIdModule(
+    __in HRESULT hrError,
+    __in DWORD dwLogId,
+    __in_opt HMODULE hModule,
+    __in_z_opt LPCWSTR wzString1,
+    __in_z_opt LPCWSTR wzString2,
+    __in_z_opt LPCWSTR wzString3
+    );
+
+inline HRESULT LogErrorId(
+    __in HRESULT hrError,
+    __in DWORD dwLogId,
+    __in_z_opt LPCWSTR wzString1,
+    __in_z_opt LPCWSTR wzString2,
+    __in_z_opt LPCWSTR wzString3
+    )
+{
+    return LogErrorIdModule(hrError, dwLogId, NULL, wzString1, wzString2, wzString3);
+}
+
+HRESULT DAPI LogHeader();
+
+HRESULT DAPI LogFooter();
+
+// begin the switch of LogXXX to LogStringXXX
+#define Log LogString
+#define LogLine LogStringLine
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/memutil.h b/sdk/inc/memutil.h
new file mode 100644
index 0000000..b41a07c
--- /dev/null
+++ b/sdk/inc/memutil.h
@@ -0,0 +1,65 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="memutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for memory helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseMem(p) if (p) { MemFree(p); }
+#define ReleaseNullMem(p) if (p) { MemFree(p); p = NULL; }
+
+#define MEM_ENSURE_ARRAY_SIZE(type, pointer, count, max, grow, hresult, errMsg) \
+    if (max <= count) { \
+        LPVOID pv = NULL; DWORD cNewMax = count + grow; \
+        if (0 == max) pv = MemAlloc(sizeof(type) * cNewMax, TRUE); else pv = MemReAlloc(pointer, sizeof(type) * cNewMax, TRUE); \
+        ExitOnNull(pv, hresult, E_OUTOFMEMORY, errMsg); \
+        max = cNewMax; pointer = static_cast<type*>(pv); \
+    }
+
+HRESULT DAPI MemInitialize();
+void DAPI MemUninitialize();
+
+LPVOID DAPI MemAlloc(
+    __in SIZE_T cbSize,
+    __in BOOL fZero
+    );
+LPVOID DAPI MemReAlloc(
+    __in LPVOID pv,
+    __in SIZE_T cbSize,
+    __in BOOL fZero
+    );
+
+HRESULT DAPI MemEnsureArraySize(
+    __inout_ecount(cArray) LPVOID* ppvArray,
+    __in DWORD cArray,
+    __in SIZE_T cbArrayType,
+    __in DWORD dwGrowthCount
+    );
+
+HRESULT DAPI MemFree(
+    __in LPVOID pv
+    );
+SIZE_T DAPI MemSize(
+    __in LPCVOID pv
+    );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/metautil.h b/sdk/inc/metautil.h
new file mode 100644
index 0000000..e594760
--- /dev/null
+++ b/sdk/inc/metautil.h
@@ -0,0 +1,67 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="metautil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    IIS Metabase helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#include <iadmw.h>
+#include <iiscnfg.h>
+#include <iwamreg.h>
+#include <mddefw.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// structs
+
+// prototypes
+HRESULT DAPI MetaFindWebBase(
+    __in IMSAdminBaseW* piMetabase, 
+    __in_z LPCWSTR wzIP, 
+    __in int iPort, 
+    __in_z LPCWSTR wzHeader,
+    __in BOOL fSecure,
+    __out_ecount(cchWebBase) LPWSTR wzWebBase, 
+    __in DWORD cchWebBase
+    );
+HRESULT DAPI MetaFindFreeWebBase(
+    __in IMSAdminBaseW* piMetabase, 
+    __out_ecount(cchWebBase) LPWSTR wzWebBase, 
+    __in DWORD cchWebBase
+    );
+
+HRESULT DAPI MetaOpenKey(
+    __in IMSAdminBaseW* piMetabase, 
+    __in METADATA_HANDLE mhKey, 
+    __in_z LPCWSTR wzKey,
+    __in DWORD dwAccess,
+    __in DWORD cRetries,
+    __out METADATA_HANDLE* pmh
+    );
+HRESULT DAPI MetaGetValue(
+    __in IMSAdminBaseW* piMetabase, 
+    __in METADATA_HANDLE mhKey, 
+    __in_z LPCWSTR wzKey, 
+    __inout METADATA_RECORD* pmr
+    );
+void DAPI MetaFreeValue(
+    __in METADATA_RECORD* pmr
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/osutil.h b/sdk/inc/osutil.h
new file mode 100644
index 0000000..785e4ab
--- /dev/null
+++ b/sdk/inc/osutil.h
@@ -0,0 +1,48 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="osutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Operating system helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum OS_VERSION
+{
+    OS_VERSION_UNKNOWN,
+    OS_VERSION_WINNT,
+    OS_VERSION_WIN2000,
+    OS_VERSION_WINXP,
+    OS_VERSION_WIN2003,
+    OS_VERSION_VISTA,
+    OS_VERSION_WIN2008,
+    OS_VERSION_WIN7,
+    OS_VERSION_WIN2008_R2,
+    OS_VERSION_FUTURE
+};
+
+void DAPI OsGetVersion(
+    __out OS_VERSION* pVersion,
+    __out DWORD* pdwServicePack
+    );
+HRESULT OsIsRunningPrivileged(
+    __out BOOL* pfPrivileged
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/pathutil.h b/sdk/inc/pathutil.h
new file mode 100644
index 0000000..f886c99
--- /dev/null
+++ b/sdk/inc/pathutil.h
@@ -0,0 +1,90 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="pathutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for path helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum PATH_EXPAND
+{
+    PATH_EXPAND_ENVIRONMENT = 0x0001,
+    PATH_EXPAND_FULLPATH    = 0x0002,
+};
+
+LPWSTR DAPI PathFile(
+    __in_z LPCWSTR wzPath
+    );
+HRESULT DAPI PathGetDirectory(
+    __in_z LPCWSTR wzPath,
+    __out LPWSTR *psczDirectory
+    );
+HRESULT DAPI PathExpand(
+    __out LPWSTR *psczFullPath,
+    __in_z LPCWSTR wzRelativePath,
+    __in DWORD dwResolveFlags
+    );
+HRESULT DAPI PathPrefix(
+    __inout LPWSTR *psczFullPath
+    );
+HRESULT DAPI PathBackslashTerminate(
+    __inout LPWSTR* psczPath
+    );
+HRESULT DAPI PathFixedBackslashTerminate(
+    __inout_ecount_z(cchPath) LPWSTR wzPath,
+    __in DWORD_PTR cchPath
+    );
+HRESULT DAPI PathForCurrentProcess(
+    __inout LPWSTR *psczFullPath,
+    __in_opt HMODULE hModule
+    );
+HRESULT DAPI PathRelativeToModule(
+    __inout LPWSTR *psczFullPath,
+    __in_opt LPCWSTR wzFileName,
+    __in_opt HMODULE hModule
+    );
+HRESULT DAPI PathCreateTempFile(
+    __in_opt LPCWSTR wzDirectory,
+    __in_opt __format_string LPCWSTR wzFileNameTemplate,
+    __in DWORD dwUniqueCount,
+    __in DWORD dwFileAttributes,
+    __out_opt LPWSTR* psczTempFile,
+    __out_opt HANDLE* phTempFile
+    );
+HRESULT DAPI PathCreateTempDirectory(
+    __in_opt LPCWSTR wzDirectory,
+    __in __format_string LPCWSTR wzDirectoryNameTemplate,
+    __in DWORD dwUniqueCount,
+    __out LPWSTR* psczTempDirectory
+    );
+HRESULT DAPI PathGetKnownFolder(
+    __in int csidl,
+    __out LPWSTR* psczKnownFolder
+    );
+BOOL DAPI PathIsAbsolute(
+    __in_z LPCWSTR wzPath
+    );
+HRESULT DAPI PathConcat(
+    __in_opt LPCWSTR wzPath1,
+    __in_opt LPCWSTR wzPath2,
+    __deref_out_z LPWSTR* psczCombined
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/perfutil.h b/sdk/inc/perfutil.h
new file mode 100644
index 0000000..9c7c87a
--- /dev/null
+++ b/sdk/inc/perfutil.h
@@ -0,0 +1,39 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="perfutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Performance helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// structs
+
+
+// functions
+void DAPI PerfInitialize(
+    );
+void DAPI PerfClickTime(
+    __out_opt LARGE_INTEGER* pliElapsed
+    );
+double DAPI PerfConvertToSeconds(
+    __in const LARGE_INTEGER* pli
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/procutil.h b/sdk/inc/procutil.h
new file mode 100644
index 0000000..007dd3e
--- /dev/null
+++ b/sdk/inc/procutil.h
@@ -0,0 +1,54 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="procutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for proces helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI ProcExecute(
+    __in_z LPWSTR wzCommand,
+    __out HANDLE *phProcess,
+    __out_opt HANDLE *phChildStdIn,
+    __out_opt HANDLE *phChildStdOutErr
+    );
+HRESULT DAPI ProcWaitForCompletion(
+    __in HANDLE hProcess,
+    __in DWORD dwTimeout,
+    __out DWORD *pReturnCode
+    );
+HRESULT DAPI ProcWaitForIds(
+    __in_ecount(cProcessIds) const DWORD* pdwProcessIds,
+    __in DWORD cProcessIds,
+    __in DWORD dwMilliseconds
+    );
+HRESULT DAPI ProcCloseIds(
+    __in_ecount(cProcessIds) const DWORD* pdwProcessIds,
+    __in DWORD cProcessIds
+    );
+
+// following code in proc2utl.cpp due to dependency on PSAPI.DLL.
+HRESULT DAPI ProcFindAllIdsFromExeName(
+    __in_z LPCWSTR wzExeName,
+    __out DWORD** ppdwProcessIds,
+    __out DWORD* pcProcessIds
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/regutil.h b/sdk/inc/regutil.h
new file mode 100644
index 0000000..65f8b1f
--- /dev/null
+++ b/sdk/inc/regutil.h
@@ -0,0 +1,32 @@
+//-------------------------------------------------------------------------------------------------
+// <copyright file="regutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Registry helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#pragma once
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseRegKey(h) if (h) { ::RegCloseKey(h); h = NULL; }
+
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/resrutil.h b/sdk/inc/resrutil.h
new file mode 100644
index 0000000..1f13099
--- /dev/null
+++ b/sdk/inc/resrutil.h
@@ -0,0 +1,60 @@
+//-------------------------------------------------------------------------------------------------
+// <copyright file="resrutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Resource read helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#pragma once
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI ResGetStringLangId(
+    __in_opt LPCWSTR wzPath,
+    __in UINT uID,
+    __out WORD *pwLangId
+    );
+
+HRESULT DAPI ResReadString(
+    __in HINSTANCE hinst,
+    __in UINT uID,
+    __deref_out_z LPWSTR* ppwzString
+    );
+
+HRESULT DAPI ResReadStringAnsi(
+    __in HINSTANCE hinst,
+    __in UINT uID,
+    __deref_out_z LPSTR* ppszString
+    );
+
+HRESULT DAPI ResReadData(
+    __in_opt HINSTANCE hinst,
+    __in_z LPCSTR szDataName,
+    __deref_out_bcount(*pcb) PVOID *ppv,
+    __out DWORD *pcb
+    );
+
+HRESULT DAPI ResExportDataToFile(
+    __in_z LPCSTR szDataName,
+    __in_z LPCWSTR wzTargetFile,
+    __in DWORD dwCreationDisposition
+    );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/reswutil.h b/sdk/inc/reswutil.h
new file mode 100644
index 0000000..746c949
--- /dev/null
+++ b/sdk/inc/reswutil.h
@@ -0,0 +1,48 @@
+//-------------------------------------------------------------------------------------------------
+// <copyright file="reswutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Resource writer helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#pragma once
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI ResWriteString(
+    __in_z LPCWSTR wzResourceFile,
+    __in DWORD dwDataId,
+    __in_z LPCWSTR wzData,
+    __in WORD wLangId
+    );
+
+HRESULT DAPI ResWriteData(
+    __in_z LPCWSTR wzResourceFile,
+    __in_z LPCSTR szDataName,
+    __in PVOID pData,
+    __in DWORD cbData
+    );
+
+HRESULT DAPI ResImportDataFromFile(
+    __in_z LPCWSTR wzTargetFile,
+    __in_z LPCWSTR wzSourceFile,
+    __in_z LPCSTR szDataName
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/rexutil.h b/sdk/inc/rexutil.h
new file mode 100644
index 0000000..503a3c9
--- /dev/null
+++ b/sdk/inc/rexutil.h
@@ -0,0 +1,69 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="rexutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Resource Cabinet Extract Utilities
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#include <sys\stat.h>
+#include <fdi.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// defines
+#define FILETABLESIZE 40
+
+// structs
+struct MEM_FILE 
+{
+    LPCBYTE vpStart;
+    UINT  uiCurrent;
+    UINT  uiLength;
+};
+
+enum FAKE_FILE_TYPE { NORMAL_FILE, MEMORY_FILE };
+
+typedef HRESULT (*REX_CALLBACK_PROGRESS)(BOOL fBeginFile, LPCWSTR wzFileId, LPVOID pvContext);
+typedef VOID (*REX_CALLBACK_WRITE)(UINT cb);
+
+
+struct FAKE_FILE // used __in internal file table
+{
+    BOOL fUsed;
+    FAKE_FILE_TYPE fftType;
+    MEM_FILE mfFile; // State for memory file
+    HANDLE hFile; // Handle for disk  file
+};
+
+// functions
+HRESULT RexInitialize();
+void RexUninitialize();
+
+HRESULT RexExtract(
+    __in_z LPCSTR szResource,
+    __in_z LPCWSTR wzExtractId,
+    __in_z LPCWSTR wzExtractDir,
+    __in_z LPCWSTR wzExtractName,
+    __in REX_CALLBACK_PROGRESS pfnProgress,
+    __in REX_CALLBACK_WRITE pfnWrite,
+    __in LPVOID pvContext
+    );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/rssutil.h b/sdk/inc/rssutil.h
new file mode 100644
index 0000000..e9ee4fe
--- /dev/null
+++ b/sdk/inc/rssutil.h
@@ -0,0 +1,106 @@
+//-------------------------------------------------------------------------------------------------
+// <copyright file="rssutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    RSS helper funtions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#pragma once
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseRssChannel(p) if (p) { RssFreeChannel(p); }
+#define ReleaseNullRssChannel(p) if (p) { RssFreeChannel(p); p = NULL; }
+
+
+struct RSS_UNKNOWN_ATTRIBUTE
+{
+    LPWSTR wzNamespace;
+    LPWSTR wzAttribute;
+    LPWSTR wzValue;
+
+    RSS_UNKNOWN_ATTRIBUTE* pNext;
+};
+
+struct RSS_UNKNOWN_ELEMENT
+{
+    LPWSTR wzNamespace;
+    LPWSTR wzElement;
+    LPWSTR wzValue;
+
+    RSS_UNKNOWN_ATTRIBUTE* pAttributes;
+    RSS_UNKNOWN_ELEMENT* pNext;
+};
+
+struct RSS_ITEM
+{
+    LPWSTR wzTitle;
+    LPWSTR wzLink;
+    LPWSTR wzDescription;
+
+    LPWSTR wzGuid;
+    FILETIME ftPublished;
+
+    LPWSTR wzEnclosureUrl;
+    DWORD dwEnclosureSize;
+    LPWSTR wzEnclosureType;
+
+    RSS_UNKNOWN_ELEMENT* pUnknownElements;
+};
+
+struct RSS_CHANNEL
+{
+    LPWSTR wzTitle;
+    LPWSTR wzLink;
+    LPWSTR wzDescription;
+    DWORD dwTimeToLive;
+
+    RSS_UNKNOWN_ELEMENT* pUnknownElements;
+
+    DWORD cItems;
+    RSS_ITEM rgItems[1];
+};
+
+HRESULT DAPI RssInitialize(
+    );
+
+void DAPI RssUninitialize(
+    );
+
+HRESULT DAPI RssParseFromString(
+    __in_z LPCWSTR wzRssString,
+    __out RSS_CHANNEL **ppChannel
+    );
+
+HRESULT DAPI RssParseFromFile(
+    __in_z LPCWSTR wzRssFile,
+    __out RSS_CHANNEL **ppChannel
+    );
+
+// Adding this until we have the updated specstrings.h
+#ifndef __in_xcount
+#define __in_xcount(size) 
+#endif
+
+void DAPI RssFreeChannel(
+    __in_xcount(pChannel->cItems) RSS_CHANNEL *pChannel
+    );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/shelutil.h b/sdk/inc/shelutil.h
new file mode 100644
index 0000000..2b24c73
--- /dev/null
+++ b/sdk/inc/shelutil.h
@@ -0,0 +1,58 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="shelutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for proces helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifndef REFKNOWNFOLDERID
+#define REFKNOWNFOLDERID REFGUID
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI ShelExec(
+    __in_z LPCWSTR wzTargetPath,
+    __in_opt LPCWSTR wzParameters,
+    __in_opt LPCWSTR wzVerb,
+    __in_opt LPCWSTR wzWorkingDirectory,
+    __in int nShowCmd,
+    __out_opt HINSTANCE* phInstance
+    );
+
+HRESULT DAPI ShelExecEx(
+    __in_z LPCWSTR wzTargetPath,
+    __in_z_opt LPCWSTR wzParameters,
+    __in_z_opt LPCWSTR wzVerb,
+    __in_z_opt LPCWSTR wzWorkingDirectory,
+    __in int nShowCmd,
+    __out_opt HINSTANCE* phInstance
+    );
+
+HRESULT DAPI ShelGetFolder(
+    __out_z LPWSTR* psczFolderPath,
+    __in int csidlFolder
+    );
+
+HRESULT DAPI ShelGetKnownFolder(
+    __out_z LPWSTR* psczFolderPath,
+    __in REFKNOWNFOLDERID rfidFolder
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/sqlutil.h b/sdk/inc/sqlutil.h
new file mode 100644
index 0000000..bfb04e1
--- /dev/null
+++ b/sdk/inc/sqlutil.h
@@ -0,0 +1,151 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="sqlutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    SQL helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#include <cguid.h>
+#include <oledberr.h>
+#include <sqloledb.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// Adding this until the SQL annotations are published to specstrings.h
+#ifndef __sql_command
+#define __sql_command
+#endif
+
+// structs
+struct SQL_FILESPEC
+{
+    WCHAR wzName[MAX_PATH];
+    WCHAR wzFilename[MAX_PATH];
+    WCHAR wzSize[MAX_PATH];
+    WCHAR wzMaxSize[MAX_PATH];
+    WCHAR wzGrow[MAX_PATH];
+};
+
+
+// functions
+HRESULT DAPI SqlConnectDatabase(
+    __in_z LPCWSTR wzServer, 
+    __in_z LPCWSTR wzInstance,
+    __in_z LPCWSTR wzDatabase, 
+    __in BOOL fIntegratedAuth, 
+    __in_z LPCWSTR wzUser, 
+    __in_z LPCWSTR wzPassword, 
+    __out IDBCreateSession** ppidbSession
+    );
+HRESULT DAPI SqlStartTransaction(
+    __in IDBCreateSession* pidbSession,
+    __out IDBCreateCommand** ppidbCommand,
+    __out ITransaction** ppit
+    );
+HRESULT DAPI SqlEndTransaction(
+    __in ITransaction* pit,
+    __in BOOL fCommit
+    );
+HRESULT DAPI SqlDatabaseExists(
+    __in_z LPCWSTR wzServer,
+    __in_z LPCWSTR wzInstance,
+    __in_z LPCWSTR wzDatabase,
+    __in BOOL fIntegratedAuth,
+    __in_z LPCWSTR wzUser,
+    __in_z LPCWSTR wzPassword,
+    __out_opt BSTR* pbstrErrorDescription
+    );
+HRESULT DAPI SqlSessionDatabaseExists(
+    __in IDBCreateSession* pidbSession,
+    __in_z LPCWSTR wzDatabase,
+    __out_opt BSTR* pbstrErrorDescription
+    );
+HRESULT DAPI SqlDatabaseEnsureExists(
+    __in_z LPCWSTR wzServer,
+    __in_z LPCWSTR wzInstance,
+    __in_z LPCWSTR wzDatabase,
+    __in BOOL fIntegratedAuth,
+    __in_z LPCWSTR wzUser,
+    __in_z LPCWSTR wzPassword,
+    __in_opt const SQL_FILESPEC* psfDatabase,
+    __in_opt const SQL_FILESPEC* psfLog,
+    __out_opt BSTR* pbstrErrorDescription
+    );
+HRESULT DAPI SqlSessionDatabaseEnsureExists(
+    __in IDBCreateSession* pidbSession,
+    __in_z LPCWSTR wzDatabase,
+    __in_opt const SQL_FILESPEC* psfDatabase,
+    __in_opt const SQL_FILESPEC* psfLog,
+    __out_opt BSTR* pbstrErrorDescription
+    );
+HRESULT DAPI SqlCreateDatabase(
+    __in_z LPCWSTR wzServer,
+    __in_z LPCWSTR wzInstance,
+    __in_z LPCWSTR wzDatabase,
+    __in BOOL fIntegratedAuth,
+    __in_z LPCWSTR wzUser,
+    __in_z LPCWSTR wzPassword,
+    __in_opt const SQL_FILESPEC* psfDatabase,
+    __in_opt const SQL_FILESPEC* psfLog,
+    __out_opt BSTR* pbstrErrorDescription
+    );
+HRESULT DAPI SqlSessionCreateDatabase(
+    __in IDBCreateSession* pidbSession,
+    __in_z LPCWSTR wzDatabase,
+    __in_opt const SQL_FILESPEC* psfDatabase,
+    __in_opt const SQL_FILESPEC* psfLog,
+    __out_opt BSTR* pbstrErrorDescription
+    );
+HRESULT DAPI SqlDropDatabase(
+    __in_z LPCWSTR wzServer,
+    __in_z LPCWSTR wzInstance,
+    __in_z LPCWSTR wzDatabase,
+    __in BOOL fIntegratedAuth,
+    __in_z LPCWSTR wzUser,
+    __in_z LPCWSTR wzPassword,
+    __out_opt BSTR* pbstrErrorDescription
+    );
+HRESULT DAPI SqlSessionDropDatabase(
+    __in IDBCreateSession* pidbSession,
+    __in_z LPCWSTR wzDatabase,
+    __out_opt BSTR* pbstrErrorDescription
+    );
+HRESULT DAPI SqlSessionExecuteQuery(
+    __in IDBCreateSession* pidbSession, 
+    __in __sql_command LPCWSTR wzSql, 
+    __out_opt IRowset** ppirs,
+    __out_opt DBROWCOUNT* pcRows,
+    __out_opt BSTR* pbstrErrorDescription
+    );
+HRESULT DAPI SqlCommandExecuteQuery(
+    __in IDBCreateCommand* pidbCommand, 
+    __in __sql_command LPCWSTR wzSql, 
+    __out IRowset** ppirs,
+    __out DBROWCOUNT* pcRows
+    );
+HRESULT DAPI SqlGetErrorInfo(
+    __in IUnknown* pObjectWithError,
+    __in REFIID IID_InterfaceWithError,
+    __in DWORD dwLocaleId,
+    __out_opt BSTR* pbstrErrorSource,
+    __out_opt BSTR* pbstrErrorDescription
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/strutil.h b/sdk/inc/strutil.h
new file mode 100644
index 0000000..07b0f58
--- /dev/null
+++ b/sdk/inc/strutil.h
@@ -0,0 +1,256 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="strutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for string helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ReleaseStr(pwz) if (pwz) { StrFree(pwz); }
+#define ReleaseNullStr(pwz) if (pwz) { StrFree(pwz); pwz = NULL; }
+#define ReleaseBSTR(bstr) if (bstr) { ::SysFreeString(bstr); }
+#define ReleaseNullBSTR(bstr) if (bstr) { ::SysFreeString(bstr); bstr = NULL; }
+#define ReleaseNullStrArray(rg, c) { if (rg) { StrArrayFree(rg, c); c = 0; rg = NULL; } }
+
+#define DeclareConstBSTR(bstr_const, wz) const WCHAR bstr_const[] = { 0x00, 0x00, sizeof(wz)-sizeof(WCHAR), 0x00, wz }
+#define UseConstBSTR(bstr_const) const_cast<BSTR>(bstr_const + 4)
+
+HRESULT DAPI StrAlloc(
+    __deref_out_ecount_part(cch, 0) LPWSTR* ppwz,
+    __in DWORD_PTR cch
+    );
+HRESULT DAPI StrTrimCapacity(
+    __deref_out LPWSTR* ppwz
+    );
+HRESULT DAPI StrAnsiAlloc(
+    __deref_out_ecount_part(cch, 0) LPSTR* ppz,
+    __in DWORD_PTR cch
+    );
+HRESULT DAPI StrAnsiTrimCapacity(
+    __deref_out LPSTR* ppz
+    );
+HRESULT DAPI StrAllocString(
+    __deref_out_ecount_z(cchSource+1) LPWSTR* ppwz,
+    __in_z LPCWSTR wzSource,
+    __in DWORD_PTR cchSource
+    );
+HRESULT DAPI StrAnsiAllocString(
+    __deref_out_ecount_z(cchSource+1) LPSTR* ppsz,
+    __in_z LPCWSTR wzSource,
+    __in DWORD_PTR cchSource,
+    __in UINT uiCodepage
+    );
+HRESULT DAPI StrAllocStringAnsi(
+    __deref_out_ecount_z(cchSource+1) LPWSTR* ppwz,
+    __in_z LPCSTR szSource,
+    __in DWORD_PTR cchSource,
+    __in UINT uiCodepage
+    );
+HRESULT DAPI StrAllocPrefix(
+    __deref_out_z LPWSTR* ppwz,
+    __in_z LPCWSTR wzPrefix,
+    __in DWORD_PTR cchPrefix
+    );
+HRESULT DAPI StrAllocConcat(
+    __deref_out_z LPWSTR* ppwz,
+    __in_z LPCWSTR wzSource,
+    __in DWORD_PTR cchSource
+    );
+HRESULT DAPI StrAnsiAllocConcat(
+    __deref_out_z LPSTR* ppz,
+    __in_z LPCSTR pzSource,
+    __in DWORD_PTR cchSource
+    );
+HRESULT __cdecl StrAllocFormatted(
+    __deref_out_z LPWSTR* ppwz,
+    __in __format_string LPCWSTR wzFormat,
+    ...
+    );
+HRESULT __cdecl StrAnsiAllocFormatted(
+    __deref_out_z LPSTR* ppsz,
+    __in __format_string LPCSTR szFormat,
+    ...
+    );
+HRESULT DAPI StrAllocFormattedArgs(
+    __deref_out_z LPWSTR* ppwz,
+    __in __format_string LPCWSTR wzFormat,
+    __in va_list args
+    );
+HRESULT DAPI StrAnsiAllocFormattedArgs(
+    __deref_out_z LPSTR* ppsz,
+    __in __format_string LPCSTR szFormat,
+    __in va_list args
+    );
+HRESULT DAPI StrAllocFromError(
+    __inout LPWSTR *ppwzMessage,
+    __in HRESULT hrError,
+    __in_opt HMODULE hModule,
+    ...
+    );
+
+HRESULT DAPI StrMaxLength(
+    __in LPCVOID p,
+    __out DWORD_PTR* pcch
+    );
+HRESULT DAPI StrSize(
+    __in LPCVOID p,
+    __out DWORD_PTR* pcb
+    );
+
+HRESULT DAPI StrFree(
+    __in LPVOID p
+    );
+
+HRESULT DAPI StrCurrentTime(
+    __deref_out_z LPWSTR* ppwz,
+    __in BOOL fGMT
+    );
+HRESULT DAPI StrCurrentDateTime(
+    __deref_out_z LPWSTR* ppwz,
+    __in BOOL fGMT
+    );
+
+HRESULT DAPI StrReplaceStringAll(
+    __inout LPWSTR* ppwzOriginal,
+    __in_z LPCWSTR wzOldSubString,
+    __in_z LPCWSTR wzNewSubString
+    );
+HRESULT DAPI StrReplaceString(
+    __inout LPWSTR* ppwzOriginal,
+    __inout DWORD* pdwStartIndex,
+    __in_z LPCWSTR wzOldSubString,
+    __in_z LPCWSTR wzNewSubString
+    );
+
+HRESULT DAPI StrHexEncode(
+    __in_ecount(cbSource) const BYTE* pbSource,
+    __in DWORD_PTR cbSource,
+    __out_ecount(cchDest) LPWSTR wzDest,
+    __in DWORD_PTR cchDest
+    );
+HRESULT DAPI StrHexDecode(
+    __in_z LPCWSTR wzSource,
+    __out_bcount(cbDest) BYTE* pbDest,
+    __in DWORD_PTR cbDest
+    );
+
+HRESULT DAPI StrAllocBase85Encode(
+    __in_bcount(cbSource) const BYTE* pbSource,
+    __in DWORD_PTR cbSource,
+    __deref_out_z LPWSTR* pwzDest
+    );
+HRESULT DAPI StrAllocBase85Decode(
+    __in_z LPCWSTR wzSource,
+    __deref_out_bcount(*pcbDest) BYTE** hbDest,
+    __out DWORD_PTR* pcbDest
+    );
+
+HRESULT DAPI MultiSzLen(
+    __in_z LPCWSTR pwzMultiSz,
+    __out DWORD_PTR* pcch
+    );
+HRESULT DAPI MultiSzPrepend(
+    __deref_inout_z LPWSTR* ppwzMultiSz,
+    __inout_opt DWORD_PTR *pcchMultiSz,
+    __in_z LPCWSTR pwzInsert
+    );
+HRESULT DAPI MultiSzFindSubstring(
+    __in_z LPCWSTR pwzMultiSz,
+    __in_z LPCWSTR pwzSubstring,
+    __out_opt DWORD_PTR* pdwIndex,
+    __deref_opt_out_z LPCWSTR* ppwzFoundIn
+    );
+HRESULT DAPI MultiSzFindString(
+    __in_z LPCWSTR pwzMultiSz,
+    __in_z LPCWSTR pwzString,
+    __out_opt DWORD_PTR* pdwIndex,
+    __deref_opt_out_z LPCWSTR* ppwzFound
+    );
+HRESULT DAPI MultiSzRemoveString(
+    __deref_inout_z LPWSTR* ppwzMultiSz,
+    __in DWORD_PTR dwIndex
+    );
+HRESULT DAPI MultiSzInsertString(
+    __deref_inout_z LPWSTR* ppwzMultiSz,
+    __inout_opt DWORD_PTR *pcchMultiSz,
+    __in DWORD_PTR dwIndex,
+    __in_z LPCWSTR pwzInsert
+    );
+HRESULT DAPI MultiSzReplaceString(
+    __deref_inout_z LPWSTR* ppwzMultiSz,
+    __in DWORD_PTR dwIndex,
+    __in_z LPCWSTR pwzString
+    );
+
+LPCWSTR wcsistr(
+    __in_z LPCWSTR wzString,
+    __in_z LPCWSTR wzCharSet
+    );
+
+HRESULT DAPI StrStringToInt16(
+    __in_z LPCWSTR wzIn,
+    __in DWORD cchIn,
+    __out SHORT* psOut
+    );
+HRESULT DAPI StrStringToUInt16(
+    __in_z LPCWSTR wzIn,
+    __in DWORD cchIn,
+    __out USHORT* pusOut
+    );
+HRESULT DAPI StrStringToInt32(
+    __in_z LPCWSTR wzIn,
+    __in DWORD cchIn,
+    __out INT* piOut
+    );
+HRESULT DAPI StrStringToUInt32(
+    __in_z LPCWSTR wzIn,
+    __in DWORD cchIn,
+    __out UINT* puiOut
+    );
+HRESULT DAPI StrStringToInt64(
+    __in_z LPCWSTR wzIn,
+    __in DWORD cchIn,
+    __out LONGLONG* pllOut
+    );
+HRESULT DAPI StrStringToUInt64(
+    __in_z LPCWSTR wzIn,
+    __in DWORD cchIn,
+    __out ULONGLONG* pullOut
+    );
+void DAPI StrStringToUpper(
+    __inout_z LPWSTR wzIn
+    );
+void DAPI StrStringToLower(
+    __inout_z LPWSTR wzIn
+    );
+
+HRESULT DAPI StrArrayAllocString(
+    __deref_inout_ecount(*pcStrArray) LPWSTR **prgsczStrArray,
+    __inout LPUINT pcStrArray,
+    __in_z LPCWSTR wzSource,
+    __in DWORD_PTR cchSource
+    );
+
+HRESULT DAPI StrArrayFree(
+    __in_ecount(cStrArray) LPWSTR *rgsczStrArray,
+    __in UINT cStrArray
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/thmutil.h b/sdk/inc/thmutil.h
new file mode 100644
index 0000000..6f1b310
--- /dev/null
+++ b/sdk/inc/thmutil.h
@@ -0,0 +1,191 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="thmutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//  Theme helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum THEME_CONTROL_DATA
+{
+    THEME_CONTROL_DATA_HOVER = 1,
+};
+
+enum THEME_CONTROL_TYPE
+{
+    THEME_CONTROL_TYPE_UNKNOWN,
+    THEME_CONTROL_TYPE_BUTTON,
+    THEME_CONTROL_TYPE_CHECKBOX,
+    THEME_CONTROL_TYPE_EDITBOX,
+    THEME_CONTROL_TYPE_HYPERLINK,
+    THEME_CONTROL_TYPE_IMAGE,
+    THEME_CONTROL_TYPE_PROGRESSBAR,
+    THEME_CONTROL_TYPE_RICHEDIT,
+    THEME_CONTROL_TYPE_STATIC,
+    THEME_CONTROL_TYPE_TEXT,
+};
+
+struct THEME_CONTROL
+{
+    THEME_CONTROL_TYPE type;
+
+    LPWSTR wzText;
+    int nX;
+    int nY;
+    int nHeight;
+    int nWidth;
+    int nSourceX;
+    int nSourceY;
+
+    DWORD dwStyle;
+    DWORD dwFontId;
+    DWORD dwFontHoverId;
+    DWORD dwFontSelectedId;
+    HWND hWnd;
+};
+
+
+struct THEME_FONT
+{
+    HFONT hFont;
+    COLORREF crForeground;
+    HBRUSH hForeground;
+    COLORREF crBackground;
+    HBRUSH hBackground;
+};
+
+
+struct THEME
+{
+    DWORD dwStyle;
+    DWORD dwFontId;
+    HANDLE hIcon;
+    LPWSTR wzCaption;
+    int nHeight;
+    int nWidth;
+    int nSourceX;
+    int nSourceY;
+
+    HBITMAP hImage;
+
+    DWORD cFonts;
+    THEME_FONT* rgFonts;
+
+    DWORD cControls;
+    THEME_CONTROL* rgControls;
+
+    // state variables that should be ignored
+    HWND hwndHover; // currently 
+};
+
+
+HRESULT DAPI ThemeInitialize(
+    __in HMODULE hModule
+    );
+
+void DAPI ThemeUninitialize();
+
+HRESULT DAPI ThemeLoadFromFile(
+    __in_z LPCWSTR wzThemeFile,
+    __out THEME** ppTheme
+    );
+
+HRESULT DAPI ThemeLoadFromResource(
+    __in_opt HMODULE hModule,
+    __in_z LPCSTR szResource,
+    __out THEME** ppTheme
+    );
+
+void DAPI ThemeFree(
+    __in THEME* pTheme
+    );
+
+HRESULT DAPI ThemeLoadControls(
+    __in THEME* pTheme,
+    __in HWND hwndParent
+    );
+
+HRESULT DAPI ThemeDrawBackground(
+    __in THEME* pTheme,
+    __in PAINTSTRUCT* pps
+    );
+
+HRESULT DAPI ThemeDrawControl(
+    __in THEME* pTheme,
+    __in DRAWITEMSTRUCT* pdis
+    );
+
+void DAPI ThemeHoverControl(
+    __in THEME* pTheme,
+    __in HWND hwndParent,
+    __in HWND hwndControl
+    );
+
+BOOL DAPI ThemeIsControlChecked(
+    __in THEME* pTheme,
+    __in DWORD dwControl
+    );
+
+BOOL DAPI ThemeSetControlColor(
+    __in THEME* pTheme,
+    __in HDC hdc,
+    __in HWND hWnd,
+    __out HBRUSH* phBackgroundBrush
+    );
+
+HRESULT DAPI ThemeSetProgressControl(
+    __in THEME* pTheme,
+    __in DWORD dwControl,
+    __in DWORD dwProgressPercentage
+    );
+
+HRESULT DAPI ThemeSetProgressControlColor(
+    __in THEME* pTheme,
+    __in DWORD dwControl,
+    __in DWORD dwColorIndex
+    );
+
+HRESULT DAPI ThemeSetTextControl(
+    __in THEME* pTheme,
+    __in DWORD dwControl,
+    __in_z LPCWSTR wzText
+    );
+
+HRESULT DAPI ThemeGetTextControl(
+    __in const THEME* pTheme,
+    __in DWORD dwControl,
+    __out LPWSTR* psczText
+    );
+
+HRESULT DAPI ThemeLoadRichEditFromFile(
+    __in THEME* pTheme,
+    __in DWORD dwControl,
+    __in_z LPCWSTR wzFileName, 
+    __in HMODULE hModule
+    );
+
+HRESULT DAPI ThemeLoadLocFromFile(
+    __in THEME* pTheme,
+    __in_z LPCWSTR wzFileName,
+    __in HMODULE hModule
+    );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/timeutil.h b/sdk/inc/timeutil.h
new file mode 100644
index 0000000..cc92d17
--- /dev/null
+++ b/sdk/inc/timeutil.h
@@ -0,0 +1,33 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="timeutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//  Time helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI TimeFromString(
+    __in_z LPCWSTR wzTime,
+    __out FILETIME* pFileTime
+    );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/uriutil.h b/sdk/inc/uriutil.h
new file mode 100644
index 0000000..86ab80c
--- /dev/null
+++ b/sdk/inc/uriutil.h
@@ -0,0 +1,93 @@
+//-------------------------------------------------------------------------------------------------
+// <copyright file="uriutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    URI helper funtions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#pragma once
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum URI_PROTOCOL
+{
+    URI_PROTOCOL_UNKNOWN,
+    URI_PROTOCOL_FILE,
+    URI_PROTOCOL_FTP,
+    URI_PROTOCOL_HTTP,
+    URI_PROTOCOL_LOCAL,
+    URI_PROTOCOL_UNC
+};
+
+
+HRESULT DAPI UriCanonicalize(
+    __inout_z LPWSTR* psczUri
+    );
+
+HRESULT DAPI UriCrack(
+    __in_z LPCWSTR wzUri,
+    __out_opt INTERNET_SCHEME* pScheme,
+    __deref_opt_out_z LPWSTR* psczHostName,
+    __out_opt INTERNET_PORT* pPort,
+    __deref_opt_out_z LPWSTR* psczUser,
+    __deref_opt_out_z LPWSTR* psczPassword,
+    __deref_opt_out_z LPWSTR* psczPath,
+    __deref_opt_out_z LPWSTR* psczQueryString
+    );
+
+HRESULT DAPI UriCreate(
+    __inout_z LPWSTR* psczUri,
+    __in INTERNET_SCHEME scheme,
+    __in_z_opt LPWSTR wzHostName,
+    __in INTERNET_PORT port,
+    __in_z_opt LPWSTR wzUser,
+    __in_z_opt LPWSTR wzPassword,
+    __in_z_opt LPWSTR wzPath,
+    __in_z_opt LPWSTR wzQueryString
+    );
+
+HRESULT DAPI UriCanonicalize(
+    __inout_z LPWSTR* psczUri
+    );
+
+HRESULT DAPI UriFile(
+    __deref_out_z LPWSTR* psczFile,
+    __in_z LPCWSTR wzUri
+    );
+
+HRESULT DAPI UriProtocol(
+    __in_z LPCWSTR wzUri,
+    __out URI_PROTOCOL* pProtocol
+    );
+
+HRESULT DAPI UriRoot(
+    __in_z LPCWSTR wzUri,
+    __out LPWSTR* ppwzRoot,
+    __out_opt URI_PROTOCOL* pProtocol
+    );
+
+HRESULT DAPI UriResolve(
+    __in_z LPCWSTR wzUri,
+    __in_opt LPCWSTR wzBaseUri,
+    __out LPWSTR* ppwzResolvedUri,
+    __out_opt const URI_PROTOCOL* pResolvedProtocol
+    );
+
+#ifdef __cplusplus
+}
+#endif
+
diff --git a/sdk/inc/userutil.h b/sdk/inc/userutil.h
new file mode 100644
index 0000000..05d2936
--- /dev/null
+++ b/sdk/inc/userutil.h
@@ -0,0 +1,47 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="userutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    User helper funtions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI UserBuildDomainUserName(
+    __out_ecount_z(cchDest) LPWSTR wzDest,
+    __in int cchDest,
+    __in_z LPCWSTR pwzName,
+    __in_z LPCWSTR pwzDomain
+    );
+
+HRESULT DAPI UserCheckIsMember(
+    __in_z LPCWSTR pwzName,
+    __in_z LPCWSTR pwzDomain,
+    __in_z LPCWSTR pwzGroupName,
+    __in_z LPCWSTR pwzGroupDomain,
+    __out LPBOOL lpfMember
+    );
+
+HRESULT DAPI UserCreateADsPath(
+    __in_z LPCWSTR wzObjectDomain, 
+    __in_z LPCWSTR wzObjectName,
+    __out BSTR *pbstrAdsPath
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/wcautil.h b/sdk/inc/wcautil.h
new file mode 100644
index 0000000..95e8cef
--- /dev/null
+++ b/sdk/inc/wcautil.h
@@ -0,0 +1,379 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="wcautil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Windows Installer XML CustomAction utility library.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define WIXAPI __stdcall
+#define ExitTrace WcaLogError
+#define ExitTrace1 WcaLogError
+#define ExitTrace2 WcaLogError
+#define ExitTrace3 WcaLogError
+
+#include "dutil.h"
+
+#define MessageExitOnLastError(x, e, s)      { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ExitTrace(x, "%s", s); WcaErrorMessage(e, x, MB_OK, 0);  goto LExit; } }
+#define MessageExitOnLastError1(x, e, f, s)  { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (FAILED(x)) { ExitTrace1(x, f, s); WcaErrorMessage(e, x, MB_OK, 1, s);  goto LExit; } }
+
+#define MessageExitOnFailure(x, e, s)           if (FAILED(x)) { ExitTrace(x, "%s", s); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 0);  goto LExit; }
+#define MessageExitOnFailure1(x, e, f, s)       if (FAILED(x)) { ExitTrace1(x, f, s); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 1, s);  goto LExit; }
+#define MessageExitOnFailure2(x, e, f, s, t)    if (FAILED(x)) { ExitTrace2(x, f, s, t); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 2, s, t);  goto LExit; }
+#define MessageExitOnFailure3(x, e, f, s, t, u) if (FAILED(x)) { ExitTrace2(x, f, s, t, u); WcaErrorMessage(e, x, INSTALLMESSAGE_ERROR | MB_OK, 3, s, t, u);  goto LExit; }
+
+#define MessageExitOnNullWithLastError(p, x, e, s) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } ExitTrace(x, "%s", s); WcaErrorMessage(e, x, MB_OK, 0);  goto LExit; }
+#define MessageExitOnNullWithLastError1(p, x, e, f, s) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } ExitTrace(x, f, s); WcaErrorMessage(e, x, MB_OK, 1, s);  goto LExit; }
+#define MessageExitOnNullWithLastError2(p, x, e, f, s, t) if (NULL == p) { x = ::GetLastError(); x = HRESULT_FROM_WIN32(x); if (!FAILED(x)) { x = E_FAIL; } ExitTrace(x, f, s, t); WcaErrorMessage(e, x, MB_OK, 2, s, t);  goto LExit; }
+
+// Generic action enum.
+enum WCA_ACTION
+{
+    WCA_ACTION_NONE,
+    WCA_ACTION_INSTALL,
+    WCA_ACTION_UNINSTALL,
+};
+
+enum WCA_CASCRIPT
+{
+    WCA_CASCRIPT_SCHEDULED,
+    WCA_CASCRIPT_ROLLBACK,
+};
+
+enum WCA_CASCRIPT_CLOSE
+{
+    WCA_CASCRIPT_CLOSE_PRESERVE,
+    WCA_CASCRIPT_CLOSE_DELETE,
+};
+
+enum WCA_TODO
+{
+    WCA_TODO_UNKNOWN,
+    WCA_TODO_INSTALL,
+    WCA_TODO_UNINSTALL,
+    WCA_TODO_REINSTALL,
+};
+
+typedef struct WCA_CASCRIPT_STRUCT
+{
+    LPWSTR pwzScriptPath;
+    HANDLE hScriptFile;
+} *WCA_CASCRIPT_HANDLE;
+
+void WIXAPI WcaGlobalInitialize(
+    __in HINSTANCE hInst
+    );
+void WIXAPI WcaGlobalFinalize();
+
+HRESULT WIXAPI WcaInitialize(
+    __in MSIHANDLE hInstall,
+    __in_z PCSTR szCustomActionLogName
+    );
+UINT WIXAPI WcaFinalize(
+    __in UINT iReturnValue
+    );
+BOOL WIXAPI WcaIsInitialized();
+
+MSIHANDLE WIXAPI WcaGetInstallHandle();
+MSIHANDLE WIXAPI WcaGetDatabaseHandle();
+
+const char* WIXAPI WcaGetLogName();
+
+void WIXAPI WcaSetReturnValue(
+    __in UINT iReturnValue
+    );
+BOOL WIXAPI WcaCancelDetected();
+
+const int LOG_BUFFER = 2048;
+enum LOGLEVEL
+{ 
+    LOGMSG_TRACEONLY,  // Never written to the log file (except in DEBUG builds)
+    LOGMSG_VERBOSE,    // Written to log when LOGVERBOSE
+    LOGMSG_STANDARD    // Written to log whenever informational logging is enabled
+};
+
+void __cdecl WcaLog(
+    __in LOGLEVEL llv,
+    __in_z __format_string PCSTR fmt, ...
+    );
+BOOL WIXAPI WcaDisplayAssert(
+    __in LPCSTR sz
+    );
+void __cdecl WcaLogError(
+    __in HRESULT hr,
+    __in LPCSTR szMessage,
+    ...
+    );
+
+UINT WIXAPI WcaProcessMessage(
+    __in INSTALLMESSAGE eMessageType,
+    __in MSIHANDLE hRecord
+    );
+UINT __cdecl WcaErrorMessage(
+    __in int iError, 
+    __in HRESULT hrError, 
+    __in UINT uiType, 
+    __in DWORD cArgs, 
+    ...
+    );
+HRESULT WIXAPI WcaProgressMessage(
+    __in UINT uiCost,
+    __in BOOL fExtendProgressBar
+    );
+
+BOOL WIXAPI WcaIsInstalling(
+    __in INSTALLSTATE isInstalled,
+    __in INSTALLSTATE isAction
+    );
+BOOL WIXAPI WcaIsReInstalling(
+    __in INSTALLSTATE isInstalled,
+    __in INSTALLSTATE isAction
+    );
+BOOL WIXAPI WcaIsUninstalling(
+    __in INSTALLSTATE isInstalled,
+    __in INSTALLSTATE isAction
+    );
+
+HRESULT WIXAPI WcaSetComponentState(
+    __in_z LPCWSTR wzComponent,
+    __in INSTALLSTATE isState
+    );
+
+HRESULT WIXAPI WcaTableExists(
+    __in_z LPCWSTR wzTable
+    );
+
+HRESULT WIXAPI WcaOpenView(
+    __in_z LPCWSTR wzSql,
+    __out MSIHANDLE* phView
+    );
+HRESULT WIXAPI WcaExecuteView(
+    __in MSIHANDLE hView,
+    __in MSIHANDLE hRec
+    );
+HRESULT WIXAPI WcaOpenExecuteView(
+    __in_z LPCWSTR wzSql,
+    __out MSIHANDLE* phView
+    );
+HRESULT WIXAPI WcaFetchRecord(
+    __in MSIHANDLE hView,
+    __out MSIHANDLE* phRec
+    );
+HRESULT WIXAPI WcaFetchSingleRecord(
+    __in MSIHANDLE hView,
+    __out MSIHANDLE* phRec
+    );
+
+HRESULT WIXAPI WcaGetProperty(
+    __in_z LPCWSTR wzProperty,
+    __inout LPWSTR* ppwzData
+    );
+HRESULT WIXAPI WcaGetFormattedProperty(
+    __in_z LPCWSTR wzProperty,
+    __out LPWSTR* ppwzData
+    );
+HRESULT WIXAPI WcaGetFormattedString(
+    __in_z LPCWSTR wzString,
+    __out LPWSTR* ppwzData
+    );
+HRESULT WIXAPI WcaGetIntProperty(
+    __in_z LPCWSTR wzProperty,
+    __inout int* piData
+    );
+HRESULT WIXAPI WcaGetTargetPath(
+    __in_z LPCWSTR wzFolder,
+    __out LPWSTR* ppwzData
+    );
+HRESULT WIXAPI WcaSetProperty(
+    __in_z LPCWSTR wzPropertyName,
+    __in_z LPCWSTR wzPropertyValue
+    );
+HRESULT WIXAPI WcaSetIntProperty(
+    __in_z LPCWSTR wzPropertyName,
+    __in int nPropertyValue
+    );
+BOOL WIXAPI WcaIsPropertySet(
+    __in LPCSTR szProperty
+    );
+
+HRESULT WIXAPI WcaGetRecordInteger(
+    __in MSIHANDLE hRec,
+    __in UINT uiField,
+    __inout int* piData
+    );
+HRESULT WIXAPI WcaGetRecordString(
+    __in MSIHANDLE hRec,
+    __in UINT uiField,
+    __inout LPWSTR* ppwzData
+    );
+HRESULT WIXAPI WcaGetRecordFormattedInteger(
+    __in MSIHANDLE hRec,
+    __in UINT uiField,
+    __out int* piData
+    );
+HRESULT WIXAPI WcaGetRecordFormattedString(
+    __in MSIHANDLE hRec,
+    __in UINT uiField,
+    __inout LPWSTR* ppwzData
+    );
+
+HRESULT WIXAPI WcaAllocStream(
+    __deref_out_bcount_part(cbData, 0) BYTE** ppbData,
+    __in DWORD cbData
+    );
+HRESULT WIXAPI WcaFreeStream(
+    __in BYTE* pbData
+    );
+
+HRESULT WIXAPI WcaGetRecordStream(
+    __in MSIHANDLE hRecBinary,
+    __in UINT uiField,
+    __deref_out_bcount_full(*pcbData) BYTE** ppbData,
+    __out DWORD* pcbData
+    );
+HRESULT WIXAPI WcaSetRecordString(
+    __in MSIHANDLE hRec,
+    __in UINT uiField,
+    __in_z LPCWSTR wzData
+    );
+HRESULT WIXAPI WcaSetRecordInteger(
+    __in MSIHANDLE hRec,
+    __in UINT uiField,
+    __in int iValue
+    );
+
+HRESULT WIXAPI WcaDoDeferredAction(
+    __in_z LPCWSTR wzAction,
+    __in_z LPCWSTR wzCustomActionData,
+    __in UINT uiCost
+    );
+DWORD WIXAPI WcaCountOfCustomActionDataRecords(
+    __in_z LPCWSTR wzData
+    );
+
+void WIXAPI RevertCustomActionData(
+    __in LPWSTR wzRevertTo,
+    __in LPCWSTR wzRevertFrom
+    );
+
+HRESULT WIXAPI WcaReadStringFromCaData(
+    __deref_in LPWSTR* ppwzCustomActionData,
+    __deref_out_z LPWSTR* ppwzString
+    );
+HRESULT WIXAPI WcaReadIntegerFromCaData(
+    __deref_in LPWSTR* ppwzCustomActionData,
+    __out int* piResult
+    );
+HRESULT WIXAPI WcaReadStreamFromCaData(
+    __deref_in LPWSTR* ppwzCustomActionData,
+    __deref_out_bcount(*pcbData) BYTE** ppbData,
+    __out DWORD_PTR* pcbData
+    );
+HRESULT WIXAPI WcaWriteStringToCaData(
+    __in_z LPCWSTR wzString,
+    __deref_inout_z LPWSTR* ppwzCustomActionData
+    );
+HRESULT WIXAPI WcaWriteIntegerToCaData(
+    __in int i, 
+    __deref_inout_z LPWSTR* ppwzCustomActionData
+    );
+HRESULT WIXAPI WcaWriteStreamToCaData(
+    __in_bcount(cbData) const BYTE* pbData,
+    __in DWORD cbData,
+    __deref_inout_z LPWSTR* ppwzCustomActionData
+    );
+
+HRESULT __cdecl WcaAddTempRecord(
+    __inout MSIHANDLE* phTableView,
+    __inout MSIHANDLE* phColumns,
+    __in_z LPCWSTR wzTable,
+    __out_opt MSIDBERROR* pdbError,
+    __in UINT uiUniquifyColumn,
+    __in UINT cColumns,
+    ...
+    );
+
+HRESULT WIXAPI WcaDumpTable(
+    __in_z LPCWSTR wzTable
+    );
+
+HRESULT WIXAPI WcaDeferredActionRequiresReboot();
+BOOL WIXAPI WcaDidDeferredActionRequireReboot();
+
+HRESULT WIXAPI WcaCaScriptCreateKey(
+    __out LPWSTR* ppwzScriptKey
+    );
+
+HRESULT WIXAPI WcaCaScriptCreate(
+    __in WCA_ACTION action,
+    __in WCA_CASCRIPT script,
+    __in BOOL fImpersonated,
+    __in_z LPCWSTR wzScriptKey,
+    __in BOOL fAppend,
+    __out WCA_CASCRIPT_HANDLE* phScript
+    );
+
+HRESULT WIXAPI WcaCaScriptOpen(
+    __in WCA_ACTION action,
+    __in WCA_CASCRIPT script,
+    __in BOOL fImpersonated,
+    __in_z LPCWSTR wzScriptKey,
+    __out WCA_CASCRIPT_HANDLE* phScript
+    );
+
+void WIXAPI WcaCaScriptClose(
+    __in_opt WCA_CASCRIPT_HANDLE hScript,
+    __in WCA_CASCRIPT_CLOSE closeOperation
+    );
+
+HRESULT WIXAPI WcaCaScriptReadAsCustomActionData(
+    __in WCA_CASCRIPT_HANDLE hScript,
+    __out LPWSTR* ppwzCustomActionData
+    );
+
+HRESULT WIXAPI WcaCaScriptWriteString(
+    __in WCA_CASCRIPT_HANDLE hScript,
+    __in_z LPCWSTR wzValue
+    );
+
+HRESULT WIXAPI WcaCaScriptWriteNumber(
+    __in WCA_CASCRIPT_HANDLE hScript,
+    __in DWORD dwValue
+    );
+
+void WIXAPI WcaCaScriptFlush(
+    __in WCA_CASCRIPT_HANDLE hScript
+    );
+
+void WIXAPI WcaCaScriptCleanup(
+    __in_z LPCWSTR wzProductCode,
+    __in BOOL fImpersonated
+    );
+
+HRESULT WIXAPI QuietExec(
+    __inout_z LPWSTR wzCommand,
+    __in DWORD dwTimeout
+    );
+
+WCA_TODO WIXAPI WcaGetComponentToDo(
+    __in_z LPCWSTR wzComponentId
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/wcawow64.h b/sdk/inc/wcawow64.h
new file mode 100644
index 0000000..9cfc60a
--- /dev/null
+++ b/sdk/inc/wcawow64.h
@@ -0,0 +1,35 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="wcawow64.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Windows Installer XML CustomAction utility library for Wow64 API-related functionality.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#include "wcautil.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT WIXAPI WcaInitializeWow64();
+BOOL WIXAPI WcaIsWow64Process();
+BOOL WIXAPI WcaIsWow64Initialized();
+HRESULT WIXAPI WcaDisableWow64FSRedirection();
+HRESULT WIXAPI WcaRevertWow64FSRedirection();
+HRESULT WIXAPI WcaFinalizeWow64();
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/wcawrapquery.h b/sdk/inc/wcawrapquery.h
new file mode 100644
index 0000000..b74f7d4
--- /dev/null
+++ b/sdk/inc/wcawrapquery.h
@@ -0,0 +1,146 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="wcawrapquery.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Windows Installer XML CustomAction utility library wrappers meant to wrap an MSI view as
+//    opened by an immediate custom action and transmit it to a deferred custom action
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#include "wcautil.h"
+
+// Enumerations
+enum eWrapQueryAction
+{
+    wqaTableBegin = 1,
+    wqaTableFinish,
+    wqaRowBegin,
+    wqaRowFinish
+};
+
+enum eColumnDataType
+{
+    cdtString = 1,
+    cdtInt,
+    cdtStream,
+    cdtUnknown
+};
+
+enum eFormatMaskColumn
+{
+    efmcColumn1 = 1,
+    efmcColumn2 = 1 << 1,
+    efmcColumn3 = 1 << 2,
+    efmcColumn4 = 1 << 3,
+    efmcColumn5 = 1 << 4,
+    efmcColumn6 = 1 << 5,
+    efmcColumn7 = 1 << 6,
+    efmcColumn8 = 1 << 7,
+    efmcColumn9 = 1 << 8,
+    efmcColumn10 = 1 << 9,
+    efmcColumn11 = 1 << 10,
+    efmcColumn12 = 1 << 11,
+    efmcColumn13 = 1 << 12,
+    efmcColumn14 = 1 << 13,
+    efmcColumn15 = 1 << 14,
+    efmcColumn16 = 1 << 15,
+    efmcColumn17 = 1 << 16,
+    efmcColumn18 = 1 << 17,
+    efmcColumn19 = 1 << 18,
+    efmcColumn20 = 1 << 19,
+    efmcColumn21 = 1 << 20,
+    efmcColumn22 = 1 << 21,
+    efmcColumn23 = 1 << 22,
+    efmcColumn24 = 1 << 23,
+    efmcColumn25 = 1 << 24,
+    efmcColumn26 = 1 << 25,
+    efmcColumn27 = 1 << 26,
+    efmcColumn28 = 1 << 27,
+    efmcColumn29 = 1 << 28,
+    efmcColumn30 = 1 << 29,
+    efmcColumn31 = 1 << 30,
+    efmcColumn32 = 1 << 31,
+};
+
+// Keeps track of the query instance for the reading CA (deferred CA)
+typedef struct WCA_WRAPQUERY_STRUCT
+{
+    // These are used to size our dynamic arrays below
+    DWORD dwColumns, dwRows, dwNextIndex;
+
+    // Dynamic arrays of column schema information
+    eColumnDataType *pcdtColumnType;
+    LPWSTR *ppwzColumnNames;
+
+    // Dynamic array of raw record data
+    MSIHANDLE *phRecords;
+} *WCA_WRAPQUERY_HANDLE;
+
+// Wrap a query
+// Setting the pfFormatMask enables control over which fields will be formatted, and which will be left unchanged
+// Setting dwComponentColumn to something other than 0xFFFFFFFF tells WcaWrapQuery to add two additional columns to the right side of the table
+//      - ISInstalled and ISAction - which map to the ComponentState of the component (the component is found in the column specified)
+//      Note that if a component is NULL, the component state columns will also be left null, and it will be up to the deferred CA to fail or ignore the case appropriately
+// Setting dwDirectoryColumn to something other than 0xFFFFFFFF tells WcaWrapQuery to add two more additional columns to the right side of the table
+//      - SourcePath and TargetPath - which map to the Directory's Source and Target Path (the directory is found in the column specified)
+//      Note that if a directory is NULL, the directory source/target path columns will also be left null, and it will be up to the deferred CA to fail or ignore the case appropriately
+HRESULT WIXAPI WcaWrapQuery(
+    __in_z LPCWSTR pwzQuery,
+    __inout LPWSTR * ppwzCustomActionData,
+    __in_opt DWORD dwFormatMask,
+    __in_opt DWORD dwComponentColumn,
+    __in_opt DWORD dwDirectoryColumn
+    );
+// This wraps an empty table query into the custom action data - this is a way to indicate to the deferred custom action that a necessary table doesn't exist, or its query returned no results
+HRESULT WIXAPI WcaWrapEmptyQuery(
+    __inout LPWSTR * ppwzCustomActionData
+    );
+
+// Open a new unwrap query operation, with data from the ppwzCustomActionData string
+HRESULT WIXAPI WcaBeginUnwrapQuery(
+    __out WCA_WRAPQUERY_HANDLE * phWrapQuery,
+    __inout LPWSTR * ppwzCustomActionData
+    );
+
+// Get the number of records in a query being unwrapped
+DWORD WIXAPI WcaGetQueryRecords(
+    __in const WCA_WRAPQUERY_HANDLE hWrapQuery
+    );
+
+// This function resets a query back to its first row, so that the next fetch returns the first record
+void WIXAPI WcaFetchWrappedReset(
+    __in WCA_WRAPQUERY_HANDLE hWrapQuery
+    );
+// Fetch the next record in this query
+// NOTE: the MSIHANDLE returned by this function should not be released, as it is the same handle used by the query object to maintain the item.
+//       so, don't use this function with PMSIHANDLE objects!
+HRESULT WIXAPI WcaFetchWrappedRecord(
+    __in WCA_WRAPQUERY_HANDLE hWrapQuery,
+    __out MSIHANDLE* phRec
+    );
+
+// Fetch the next record in the query where the string value in column dwComparisonColumn equals the value pwzExpectedValue
+// NOTE: the MSIHANDLE returned by this function should not be released, as it is the same handle used by the query object to maintain the item.
+//       so, don't use this function with PMSIHANDLE objects!
+HRESULT WIXAPI WcaFetchWrappedRecordWhereString(
+    __in WCA_WRAPQUERY_HANDLE hWrapQuery,
+    __in DWORD dwComparisonColumn,
+    __in_z LPCWSTR pwzExpectedValue,
+    __out MSIHANDLE* phRec
+    );
+
+// Release a query ID (frees memory, and frees the ID for a new query)
+void WIXAPI WcaFinishUnwrapQuery(
+    __in_opt WCA_WRAPQUERY_HANDLE hWrapQuery
+    );
diff --git a/sdk/inc/wiutil.h b/sdk/inc/wiutil.h
new file mode 100644
index 0000000..0325a01
--- /dev/null
+++ b/sdk/inc/wiutil.h
@@ -0,0 +1,50 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="wiutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    Header for Windows Installer helper functions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define MAX_DARWIN_KEY 73
+#define MAX_DARWIN_COLUMN 255
+
+#define ReleaseMsi(h) if (h) { ::MsiCloseHandle(h); }
+#define ReleaseNullMsi(h) if (h) { ::MsiCloseHandle(h); h = NULL; }
+
+HRESULT DAPI WiuGetComponentPath(
+    __in_z LPCWSTR wzProductCode,
+    __in_z LPCWSTR wzComponentId,
+    __out LPWSTR* ppwzPath
+    );
+
+HRESULT DAPI WiuGetProductInfo(
+    __in_z LPCWSTR wzProductCode,
+    __in_z LPCWSTR wzProperty,
+    __out LPWSTR* ppwzValue
+    );
+
+HRESULT DAPI WiuGetProductProperty(
+    __in MSIHANDLE hProduct,
+    __in_z LPCWSTR wzProperty,
+    __out LPWSTR* ppwzValue
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/inc/xmlutil.h b/sdk/inc/xmlutil.h
new file mode 100644
index 0000000..dca3451
--- /dev/null
+++ b/sdk/inc/xmlutil.h
@@ -0,0 +1,183 @@
+#pragma once
+//-------------------------------------------------------------------------------------------------
+// <copyright file="xmlutil.h" company="Microsoft">
+//    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.
+// </copyright>
+// 
+// <summary>
+//    XML helper funtions.
+// </summary>
+//-------------------------------------------------------------------------------------------------
+
+// constant XML CLSIDs and IIDs
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument   = {0x2933BF90, 0x7B36, 0x11d2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument20  = {0xF6D90F11, 0x9C73, 0x11D3, {0xB3, 0x2E, 0x00, 0xC0, 0x4F, 0x99, 0x0B, 0xB4}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument26 = {0xf5078f1b, 0xc551, 0x11d3, {0x89, 0xb9, 0x00, 0x00, 0xf8, 0x1f, 0xe2, 0x21}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument30 = {0xf5078f32, 0xc551, 0x11d3, {0x89, 0xb9, 0x00, 0x00, 0xf8, 0x1f, 0xe2, 0x21}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument40 = {0x88d969c0, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument50 = {0x88d969e5, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_DOMDocument60 = {0x88d96a05, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
+extern __declspec(selectany) const CLSID XmlUtil_CLSID_XMLSchemaCache = {0x88d969c2, 0xf192, 0x11d4, {0xa6, 0x5f, 0x00, 0x40, 0x96, 0x32, 0x51, 0xe5}};
+
+extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMDocument =  {0x2933BF81, 0x7B36, 0x11D2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
+extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMDocument2 = {0x2933BF95, 0x7B36, 0x11D2, {0xB2, 0x0E, 0x00, 0xC0, 0x4F, 0x98, 0x3E, 0x60}};
+extern __declspec(selectany) const IID XmlUtil_IID_IXMLDOMSchemaCollection = {0x373984C8, 0xB845, 0x449B, {0x91, 0xE7, 0x45, 0xAC, 0x83, 0x03, 0x6A, 0xDE}};
+
+enum XML_LOAD_ATTRIBUTE
+{
+    XML_LOAD_PRESERVE_WHITESPACE = 1,
+};
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+HRESULT DAPI XmlInitialize();
+void DAPI XmlUninitialize();
+
+HRESULT DAPI XmlCreateElement(
+    __in IXMLDOMDocument *pixdDocument,
+    __in_z LPCWSTR wzElementName,
+    __out IXMLDOMElement **ppixnElement
+    );
+HRESULT DAPI XmlCreateDocument(
+    __in_opt LPCWSTR pwzElementName, 
+    __out IXMLDOMDocument** ppixdDocument,
+    __out_opt IXMLDOMElement** ppixeRootElement = NULL
+    );
+HRESULT DAPI XmlLoadDocument(
+    __in_z LPCWSTR wzDocument,
+    __out IXMLDOMDocument** ppixdDocument
+    );
+HRESULT DAPI XmlLoadDocumentEx(
+    __in_z LPCWSTR wzDocument,
+    __in DWORD dwAttributes,
+    __out IXMLDOMDocument** ppixdDocument
+    );
+HRESULT DAPI XmlLoadDocumentFromFile(
+    __in_z LPCWSTR wzPath,
+    __out IXMLDOMDocument** ppixdDocument
+    );
+HRESULT DAPI XmlLoadDocumentFromBuffer(
+    __in_bcount(cbSource) const BYTE* pbSource,
+    __in DWORD cbSource,
+    __out IXMLDOMDocument** ppixdDocument
+    );
+HRESULT DAPI XmlLoadDocumentFromFileEx(
+    __in_z LPCWSTR wzPath,
+    __in DWORD dwAttributes,
+    __out IXMLDOMDocument** ppixdDocument
+    );
+HRESULT DAPI XmlSelectSingleNode(
+    __in IXMLDOMNode* pixnParent,
+    __in_z LPCWSTR wzXPath,
+    __out IXMLDOMNode **ppixnChild
+    );
+HRESULT DAPI XmlSetAttribute(
+    __in IXMLDOMNode* pixnNode,
+    __in_z LPCWSTR pwzAttribute,
+    __in_z LPCWSTR pwzAttributeValue
+    );
+HRESULT DAPI XmlCreateTextNode(
+    __in IXMLDOMDocument *pixdDocument,
+    __in_z LPCWSTR wzText,
+    __out IXMLDOMText **ppixnTextNode
+    );
+HRESULT DAPI XmlGetText(
+    __in IXMLDOMNode* pixnNode,
+    __deref_out_z BSTR* pbstrText
+    );
+HRESULT DAPI XmlGetAttribute(
+    __in IXMLDOMNode* pixnNode,
+    __in_z LPCWSTR pwzAttribute,
+    __deref_out_z BSTR* pbstrAttributeValue
+    );
+HRESULT DAPI XmlGetAttributeEx(
+    __in IXMLDOMNode* pixnNode,
+    __in_z LPCWSTR wzAttribute,
+    __deref_out_z LPWSTR* psczAttributeValue
+    );
+HRESULT DAPI XmlGetYesNoAttribute(
+    __in IXMLDOMNode* pixnNode,
+    __in_z LPCWSTR wzAttribute,
+    __out BOOL* pfYes
+    );
+HRESULT DAPI XmlGetAttributeNumber(
+    __in IXMLDOMNode* pixnNode,
+    __in_z LPCWSTR pwzAttribute,
+    __out DWORD* pdwValue
+    );
+HRESULT DAPI XmlGetAttributeNumberBase(
+    __in IXMLDOMNode* pixnNode,
+    __in_z LPCWSTR pwzAttribute,
+    __in int nBase,
+    __out DWORD* pdwValue
+    );
+HRESULT DAPI XmlGetAttributeLargeNumber(
+    __in IXMLDOMNode* pixnNode,
+    __in_z LPCWSTR pwzAttribute,
+    __out DWORD64* pdw64Value
+    );
+HRESULT DAPI XmlGetNamedItem(
+    __in IXMLDOMNamedNodeMap *pixnmAttributes, 
+    __in_opt LPCWSTR wzName, 
+    __out IXMLDOMNode **ppixnNamedItem
+    );
+HRESULT DAPI XmlSetText(
+    __in IXMLDOMNode* pixnNode,
+    __in_z LPCWSTR pwzText
+    );
+HRESULT DAPI XmlSetTextNumber(
+    __in IXMLDOMNode *pixnNode,
+    __in DWORD dwValue
+    );
+HRESULT DAPI XmlCreateChild(
+    __in IXMLDOMNode* pixnParent,
+    __in_z LPCWSTR pwzElementType,
+    __out IXMLDOMNode** ppixnChild
+    );
+HRESULT DAPI XmlRemoveAttribute(
+    __in IXMLDOMNode* pixnNode,
+    __in_z LPCWSTR pwzAttribute
+    );
+HRESULT DAPI XmlSelectNodes(
+    __in IXMLDOMNode* pixnParent,
+    __in_z LPCWSTR wzXPath,
+    __out IXMLDOMNodeList **ppixnChild
+    );
+HRESULT DAPI XmlNextAttribute(
+    __in IXMLDOMNamedNodeMap* pixnnm,
+    __out IXMLDOMNode** pixnAttribute,
+    __deref_opt_out_z_opt BSTR* pbstrAttribute
+    );
+HRESULT DAPI XmlNextElement(
+    __in IXMLDOMNodeList* pixnl,
+    __out IXMLDOMNode** pixnElement,
+    __deref_opt_out_z_opt BSTR* pbstrElement
+    );
+HRESULT DAPI XmlRemoveChildren(
+    __in IXMLDOMNode* pixnSource,
+    __in_z LPCWSTR pwzXPath
+    );
+HRESULT DAPI XmlSaveDocument(
+    __in IXMLDOMDocument* pixdDocument, 
+    __inout LPCWSTR wzPath
+    );
+HRESULT DAPI XmlSaveDocumentToBuffer(
+    __in IXMLDOMDocument* pixdDocument,
+    __deref_out_bcount(*pcbDest) BYTE** ppbDest,
+    __out DWORD* pcbDest
+    );
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/sdk/lib/dutil_2005.lib b/sdk/lib/dutil_2005.lib
new file mode 100644
index 0000000..169c507
--- /dev/null
+++ b/sdk/lib/dutil_2005.lib
Binary files differ
diff --git a/sdk/lib/dutil_2005_ia64.lib b/sdk/lib/dutil_2005_ia64.lib
new file mode 100644
index 0000000..ef29c5d
--- /dev/null
+++ b/sdk/lib/dutil_2005_ia64.lib
Binary files differ
diff --git a/sdk/lib/dutil_2005_x64.lib b/sdk/lib/dutil_2005_x64.lib
new file mode 100644
index 0000000..f8be66c
--- /dev/null
+++ b/sdk/lib/dutil_2005_x64.lib
Binary files differ
diff --git a/sdk/lib/dutil_2008.lib b/sdk/lib/dutil_2008.lib
new file mode 100644
index 0000000..ebee484
--- /dev/null
+++ b/sdk/lib/dutil_2008.lib
Binary files differ
diff --git a/sdk/lib/dutil_2008_ia64.lib b/sdk/lib/dutil_2008_ia64.lib
new file mode 100644
index 0000000..8b33aef
--- /dev/null
+++ b/sdk/lib/dutil_2008_ia64.lib
Binary files differ
diff --git a/sdk/lib/dutil_2008_x64.lib b/sdk/lib/dutil_2008_x64.lib
new file mode 100644
index 0000000..34d4449
--- /dev/null
+++ b/sdk/lib/dutil_2008_x64.lib
Binary files differ
diff --git a/sdk/lib/dutil_2010.lib b/sdk/lib/dutil_2010.lib
new file mode 100644
index 0000000..1afa112
--- /dev/null
+++ b/sdk/lib/dutil_2010.lib
Binary files differ
diff --git a/sdk/lib/dutil_2010_ia64.lib b/sdk/lib/dutil_2010_ia64.lib
new file mode 100644
index 0000000..8537160
--- /dev/null
+++ b/sdk/lib/dutil_2010_ia64.lib
Binary files differ
diff --git a/sdk/lib/dutil_2010_x64.lib b/sdk/lib/dutil_2010_x64.lib
new file mode 100644
index 0000000..893f136
--- /dev/null
+++ b/sdk/lib/dutil_2010_x64.lib
Binary files differ
diff --git a/sdk/lib/wcautil_2005.lib b/sdk/lib/wcautil_2005.lib
new file mode 100644
index 0000000..3621897
--- /dev/null
+++ b/sdk/lib/wcautil_2005.lib
Binary files differ
diff --git a/sdk/lib/wcautil_2005_ia64.lib b/sdk/lib/wcautil_2005_ia64.lib
new file mode 100644
index 0000000..76d5649
--- /dev/null
+++ b/sdk/lib/wcautil_2005_ia64.lib
Binary files differ
diff --git a/sdk/lib/wcautil_2005_x64.lib b/sdk/lib/wcautil_2005_x64.lib
new file mode 100644
index 0000000..dd7eefc
--- /dev/null
+++ b/sdk/lib/wcautil_2005_x64.lib
Binary files differ
diff --git a/sdk/lib/wcautil_2008.lib b/sdk/lib/wcautil_2008.lib
new file mode 100644
index 0000000..bb44400
--- /dev/null
+++ b/sdk/lib/wcautil_2008.lib
Binary files differ
diff --git a/sdk/lib/wcautil_2008_ia64.lib b/sdk/lib/wcautil_2008_ia64.lib
new file mode 100644
index 0000000..2922092
--- /dev/null
+++ b/sdk/lib/wcautil_2008_ia64.lib
Binary files differ
diff --git a/sdk/lib/wcautil_2008_x64.lib b/sdk/lib/wcautil_2008_x64.lib
new file mode 100644
index 0000000..7e0ff82
--- /dev/null
+++ b/sdk/lib/wcautil_2008_x64.lib
Binary files differ
diff --git a/sdk/lib/wcautil_2010.lib b/sdk/lib/wcautil_2010.lib
new file mode 100644
index 0000000..7f151a7
--- /dev/null
+++ b/sdk/lib/wcautil_2010.lib
Binary files differ
diff --git a/sdk/lib/wcautil_2010_ia64.lib b/sdk/lib/wcautil_2010_ia64.lib
new file mode 100644
index 0000000..608f48f
--- /dev/null
+++ b/sdk/lib/wcautil_2010_ia64.lib
Binary files differ
diff --git a/sdk/lib/wcautil_2010_x64.lib b/sdk/lib/wcautil_2010_x64.lib
new file mode 100644
index 0000000..ea32cf1
--- /dev/null
+++ b/sdk/lib/wcautil_2010_x64.lib
Binary files differ
diff --git a/sdk/wix.ca.targets b/sdk/wix.ca.targets
new file mode 100644
index 0000000..703da1a
--- /dev/null
+++ b/sdk/wix.ca.targets
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+****************************************************************************************************
+wix.ca.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your projects from the command-line or the IDE.
+
+This file defines properties used in the post-build process for WiX/DTF managed custom action projects.
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+****************************************************************************************************
+-->
+<Project
+  xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
+  InitialTargets="_SetDefaultPathValues">
+
+  <Import Project="$(CustomBeforeWixCATargets)" Condition=" '$(CustomBeforeWixCATargets)' != '' and Exists('$(CustomBeforeWixCATargets)')" />
+
+  <PropertyGroup>
+    <WixCATargetsPath Condition=" '$(WixCATargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\wix.ca.targets</WixCATargetsPath>
+    <WixTasksPath Condition=" '$(WixTasksPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\WixTasks.dll</WixTasksPath>
+    <WixCATargetsPath Condition=" '$(WixCATargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\wix.ca.targets</WixCATargetsPath>
+    <WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\WixTasks.dll</WixTasksPath>
+
+    <TargetCAFileName Condition=" '$(TargetCAFileName)' == '' ">$(TargetName).CA$(TargetExt)</TargetCAFileName>
+  </PropertyGroup>
+
+  <UsingTask TaskName="ReadRegistry" AssemblyFile="$(WixTasksPath)"/>
+
+  <!--
+  ==================================================================================================
+  _SetDefaultPathValues
+
+    Gets the default values of some paths from the registry.
+
+    [OUT]
+    $(WixExtDir) - Default Wix Extension Directory
+    $(WixToolPath) - Default Wix Tool install folder
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <WixInstallRegKey>SOFTWARE\Microsoft\Windows Installer XML\3.5</WixInstallRegKey>
+    <WixInstallRegKeyWow64>SOFTWARE\Wow6432Node\Microsoft\Windows Installer XML\3.5</WixInstallRegKeyWow64>
+  </PropertyGroup>
+  <Target
+    Name="_SetDefaultPathValues">
+
+    <ReadRegistry
+      Hive="LocalMachine"
+      Key="$(WixInstallRegKey)"
+      Name="InstallRoot"
+      FailIfMissing="false"
+      Condition=" '$(WixToolPath)' == '' ">
+
+      <Output TaskParameter="Value" PropertyName="WixToolPath" />
+    </ReadRegistry>
+
+    <!-- If we didn't find the first registry path, assume we're in a 64bit process. -->
+    <ReadRegistry
+      Hive="LocalMachine"
+      Key="$(WixInstallRegKeyWow64)"
+      Name="InstallRoot"
+      FailIfMissing="false"
+      Condition=" '$(WixToolPath)' == '' ">
+
+      <Output TaskParameter="Value" PropertyName="WixToolPath" />
+    </ReadRegistry>
+
+    <CreateProperty Value="$(WixToolPath)..\sdk\" Condition=" '$(WixSdkPath)' == '' ">
+      <Output TaskParameter="Value" PropertyName="WixSdkPath" />
+    </CreateProperty>
+    <CreateProperty Value="$(WixSdkPath)x86\" Condition=" '$(WixSdkX86Path)' == '' ">
+      <Output TaskParameter="Value" PropertyName="WixSdkX86Path" />
+    </CreateProperty>
+    <CreateProperty Value="$(WixSdkPath)x64\" Condition=" '$(WixSdkX64Path)' == '' ">
+      <Output TaskParameter="Value" PropertyName="WixSdkX64Path" />
+    </CreateProperty>
+
+    <CreateProperty Value="$(WixSdkPath)MakeSfxCA.exe" Condition=" '$(MakeSfxCA)' == '' ">
+      <Output TaskParameter="Value" PropertyName="MakeSfxCA" />
+    </CreateProperty>
+    <CreateProperty Value="$(WixSdkX86Path)SfxCA.dll" Condition=" '$(SfxCADll)' == '' and '$(Platform)' != 'x64'">
+      <Output TaskParameter="Value" PropertyName="SfxCADll" />
+    </CreateProperty>
+    <CreateProperty Value="$(WixSdkX64Path)SfxCA.dll" Condition=" '$(SfxCADll)' == '' and '$(Platform)' == 'x64'">
+      <Output TaskParameter="Value" PropertyName="SfxCADll" />
+    </CreateProperty>
+
+  </Target>
+  
+  <!--
+  ==================================================================================================
+  PackCustomAction
+
+    Creates an MSI managed custom action package that includes the custom action assembly,
+    local assembly dependencies, and project content files.
+
+    [IN]
+    @(IntermediateAssembly) - Managed custom action assembly.
+    @(Content) - Project items of type Content will be included in the package.
+    $(CustomActionContents) - Optional space-delimited list of additional files to include.
+    
+    [OUT]
+    $(IntermediateOutputPath)$(TargetCAFileName) - Managed custom action package with unmanaged stub.
+  ==================================================================================================
+  -->
+  <Target Name="PackCustomAction"
+   Inputs="@(IntermediateAssembly);@(Content);$(CustomActionContents)"
+   Outputs="$(IntermediateOutputPath)$(TargetCAFileName)">
+
+    <!-- Find all referenced items marked CopyLocal, but exclude non-binary files. -->
+    <CreateItem
+     Include="@(ReferenceCopyLocalPaths)"
+     Condition=" '%(ReferenceCopyLocalPaths.extension)' == '.dll' or '%(ReferenceCopyLocalPaths.extension)' == '.exe' ">
+      <Output TaskParameter="Include" ItemName="CustomActionReferenceContents"/>
+    </CreateItem>
+
+    <!--
+	Items to include in the CA package:
+	   - Reference assemblies marked CopyLocal
+	   - Project items of type Content
+	   - Additional items in the CustomActionContents property
+	-->
+    <CreateProperty Value="@(CustomActionReferenceContents);@(Content->'%(FullPath)');$(CustomActionContents)">
+      <Output TaskParameter="Value" PropertyName="CustomActionContents" />
+    </CreateProperty>
+
+    <CreateItem Include="@(IntermediateAssembly->'%(FullPath)')">
+      <Output TaskParameter="Include" ItemName="IntermediateCAAssembly" />
+    </CreateItem>
+
+	<CreateItem Include="@(IntermediateAssembly->'%(RootDir)%(Directory)$(TargetCAFileName)')">
+      <Output TaskParameter="Include" ItemName="IntermediateCAPackage" />
+    </CreateItem>
+
+    <!-- Run the MakeSfxCA.exe CA packaging tool. -->
+    <Exec Command='"$(MakeSfxCA)" "@(IntermediateCAPackage)" "$(SfxCADll)" "@(IntermediateCAAssembly)" "$(CustomActionContents)"'
+     WorkingDirectory="$(ProjectDir)" />
+  
+    <!-- Add modules to be copied to output dir. -->
+    <CreateItem Include="@(AddModules);@(IntermediateCAPackage)">
+		<Output TaskParameter="Include" ItemName="AddModules" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  CleanCustomAction
+
+    Cleans the .CA.dll binary created by the PackCustomAction target.
+
+  ==================================================================================================
+  -->
+  <Target Name="CleanCustomAction">
+    <Delete Files="$(IntermediateOutputPath)$(TargetCAFileName)"
+     TreatErrorsAsWarnings="true" />
+  </Target>
+
+  <!--
+  ==================================================================================================
+  AfterCompile (redefinition)
+
+    Calls the PackCustomAction target after compiling.
+    Overrides the empty AfterCompile target from Microsoft.Common.targets.
+
+  ==================================================================================================
+  -->
+  <Target Name="AfterCompile"
+   DependsOnTargets="PackCustomAction" />
+
+  <!--
+  ==================================================================================================
+  BeforeClean (redefinition)
+
+    Calls the CleanCustomAction target before cleaning.
+    Overrides the empty AfterCompile target from Microsoft.Common.targets.
+
+  ==================================================================================================
+  -->
+  <Target Name="BeforeClean"
+   DependsOnTargets="CleanCustomAction" />
+
+  <Import Project="$(CustomAfterWixCATargets)" Condition=" '$(CustomAfterWixCATargets)' != '' and Exists('$(CustomAfterWixCATargets)')" />
+
+</Project>
diff --git a/sdk/x64/sfxca.dll b/sdk/x64/sfxca.dll
new file mode 100755
index 0000000..a222b34
--- /dev/null
+++ b/sdk/x64/sfxca.dll
Binary files differ
diff --git a/sdk/x86/sfxca.dll b/sdk/x86/sfxca.dll
new file mode 100755
index 0000000..b743964
--- /dev/null
+++ b/sdk/x86/sfxca.dll
Binary files differ
diff --git a/setup.exe b/setup.exe
new file mode 100755
index 0000000..dfa28ec
--- /dev/null
+++ b/setup.exe
Binary files differ
diff --git a/setupbld.exe b/setupbld.exe
new file mode 100755
index 0000000..7acd269
--- /dev/null
+++ b/setupbld.exe
Binary files differ
diff --git a/smoke.exe b/smoke.exe
new file mode 100755
index 0000000..14219a7
--- /dev/null
+++ b/smoke.exe
Binary files differ
diff --git a/smoke.exe.config b/smoke.exe.config
new file mode 100644
index 0000000..bed32a7
--- /dev/null
+++ b/smoke.exe.config
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <startup useLegacyV2RuntimeActivationPolicy="true">
+        <supportedRuntime version="v4.0" />
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/torch.exe b/torch.exe
new file mode 100755
index 0000000..89d2177
--- /dev/null
+++ b/torch.exe
Binary files differ
diff --git a/torch.exe.config b/torch.exe.config
new file mode 100644
index 0000000..bed32a7
--- /dev/null
+++ b/torch.exe.config
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (c) Microsoft Corporation.  All rights reserved.
+-->
+<configuration>
+    <startup useLegacyV2RuntimeActivationPolicy="true">
+        <supportedRuntime version="v4.0" />
+        <supportedRuntime version="v2.0.50727" />
+    </startup>
+</configuration>
diff --git a/votive2005.dll b/votive2005.dll
new file mode 100755
index 0000000..87aeb66
--- /dev/null
+++ b/votive2005.dll
Binary files differ
diff --git a/votive2008.dll b/votive2008.dll
new file mode 100755
index 0000000..cb02479
--- /dev/null
+++ b/votive2008.dll
Binary files differ
diff --git a/votive2010.dll b/votive2010.dll
new file mode 100755
index 0000000..1dca04b
--- /dev/null
+++ b/votive2010.dll
Binary files differ
diff --git a/wconsole.dll b/wconsole.dll
new file mode 100755
index 0000000..871febb
--- /dev/null
+++ b/wconsole.dll
Binary files differ
diff --git a/winterop.dll b/winterop.dll
new file mode 100755
index 0000000..3eeb9aa
--- /dev/null
+++ b/winterop.dll
Binary files differ
diff --git a/wix.dll b/wix.dll
new file mode 100755
index 0000000..ef9f2a0
--- /dev/null
+++ b/wix.dll
Binary files differ
diff --git a/wix.targets b/wix.targets
new file mode 100644
index 0000000..0b2e829
--- /dev/null
+++ b/wix.targets
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+****************************************************************************************************
+wix.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your projects from the command-line or the IDE.
+
+This file defines the steps in the standard build process for WiX projects (.wixproj).
+
+Conventions:
+  * Targets and properties that start with an underscore (_) are considered private and should not
+    be used outside of this file.
+
+Coding Conventions:
+  * Two-space indentation of nested elements
+
+  * Self-closing elements should have a space before the /> ("<MyProperty />")
+
+  * Conditions should have a space before and after the "" and between any operators. For example:
+    <MyProperty Condition=" '$(MyProperty)' == '' ">Value</MyProperty>
+
+  * Targets should have each attribute on a single line and indented by two spaces. Also, there
+    should be a blank line between the Target and the beginning of the contents (a blank line is
+    optional before the closing </Target> tag).
+    For example:
+    <Target
+      Name="MyTarget"
+      DependsOnTargets="$(MyTargetDependsOn)">
+
+      <Message Importance="low" Text="MyTarget is doing something." />
+    </Target>
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+****************************************************************************************************
+-->
+<Project
+  xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  
+  <!-- All common targets/items/properties -->
+
+  <!-- Version specific targets/items/properties -->
+  <PropertyGroup>
+    <!-- MSBuild 4.0 -->
+    <!-- MSBuild does not do short circuit evaluation of the AND operator, so we cannot have 
+         something like '$(MSBuildToolsVersion)' != '' AND '$(MSBuildToolsVersion)' &gt;= '4.0'
+         instead set as default and override -->
+    <WixVersionTargetsPath>wix2010.targets</WixVersionTargetsPath>
+    <!-- MSBuild 2.0 - 3.5 -->
+    <WixVersionTargetsPath Condition=" '$(MSBuildToolsVersion)' == '' OR '$(MSBuildToolsVersion)' &lt; '4.0' ">wix200x.targets</WixVersionTargetsPath>
+  </PropertyGroup>
+
+  <Import Project="$(WixVersionTargetsPath)" />
+</Project>
diff --git a/wix200x.targets b/wix200x.targets
new file mode 100644
index 0000000..63f4534
--- /dev/null
+++ b/wix200x.targets
@@ -0,0 +1,2709 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+****************************************************************************************************
+wix.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your projects from the command-line or the IDE.
+
+This file defines the steps in the standard build process for WiX projects (.wixproj).
+
+Conventions:
+  * Targets and properties that start with an underscore (_) are considered private and should not
+    be used outside of this file.
+
+Coding Conventions:
+  * Two-space indentation of nested elements
+
+  * Self-closing elements should have a space before the /> ("<MyProperty />")
+
+  * Conditions should have a space before and after the "" and between any operators. For example:
+    <MyProperty Condition=" '$(MyProperty)' == '' ">Value</MyProperty>
+
+  * Targets should have each attribute on a single line and indented by two spaces. Also, there
+    should be a blank line between the Target and the beginning of the contents (a blank line is
+    optional before the closing </Target> tag).
+    For example:
+    <Target
+      Name="MyTarget"
+      DependsOnTargets="$(MyTargetDependsOn)">
+
+      <Message Importance="low" Text="MyTarget is doing something." />
+    </Target>
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+****************************************************************************************************
+-->
+<Project
+  xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
+  InitialTargets="_CheckRequiredProperties;
+                  _SetDefaultPathValues">
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Extension Points
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!-- Allow a user-customized targets files to be used as part of the build. -->
+  <PropertyGroup>
+    <UserTargetsPath>$(MSBuildProjectFullPath).user</UserTargetsPath>
+  </PropertyGroup>
+  <Import Project="$(UserTargetsPath)" Condition="Exists('$(UserTargetsPath)')" />
+  <Import Project="$(CustomBeforeWixTargets)" Condition=" '$(CustomBeforeWixTargets)' != '' and Exists('$(CustomBeforeWixTargets)')" />
+
+  <!-- These properties can be overridden to support non-default installations. -->
+  <PropertyGroup>
+    <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
+    <WixTasksPath Condition=" '$(WixTasksPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\WixTasks.dll</WixTasksPath>
+    <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
+    <WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\WixTasks.dll</WixTasksPath>
+    <LuxTargetsPath Condition=" '$(LuxTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Lux.targets</LuxTargetsPath>
+    <LuxTasksPath Condition=" '$(LuxTasksPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\LuxTasks.dll</LuxTasksPath>
+    <LuxTargetsPath Condition=" '$(LuxTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Lux.targets</LuxTargetsPath>
+    <LuxTasksPath Condition=" '$(LuxTasksPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\LuxTasks.dll</LuxTasksPath>
+  </PropertyGroup>
+
+  <!-- This makes the project files a dependency of all targets so that things rebuild if they change -->
+  <PropertyGroup> 
+    <MSBuildAllProjects Condition="Exists('$(MSBuildProjectFullPath)')">$(MSBuildAllProjects);$(MSBuildProjectFullPath)</MSBuildAllProjects>
+    <MSBuildAllProjects Condition="Exists('$(WixTargetsPath)')">$(MSBuildAllProjects);$(WixTargetsPath)</MSBuildAllProjects>
+    <MSBuildAllProjects Condition="Exists('$(LuxTargetsPath)')">$(MSBuildAllProjects);$(LuxTargetsPath)</MSBuildAllProjects>
+    <MSBuildAllProjects Condition="Exists('$(UserTargetsPath)')">$(MSBuildAllProjects);$(UserTargetsPath)</MSBuildAllProjects>
+    <MSBuildAllProjects Condition="Exists('$(CustomBeforeWixTargets)')">$(MSBuildAllProjects);$(CustomBeforeWixTargets)</MSBuildAllProjects>
+    <MSBuildAllProjects Condition="Exists('$(CustomAfterWixTargets)')">$(MSBuildAllProjects);$(CustomAfterWixTargets)</MSBuildAllProjects>
+  </PropertyGroup>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Property Declarations
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!-- These tasks can be used as general-purpose build tasks. -->
+  <UsingTask TaskName="Candle" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="Insignia" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="Lit" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="Light" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="Torch" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="ReadRegistry" AssemblyFile="$(WixTasksPath)" />
+
+  <!-- These tasks are extensions for harvesting WiX source code from other sources. -->
+  <UsingTask TaskName="HeatFile" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="HeatDirectory" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="HeatProject" AssemblyFile="$(WixTasksPath)" />
+
+  <!-- These tasks are specific to the build process defined in this file, and are not considered general-purpose build tasks. -->
+  <UsingTask TaskName="AssignProjectConfiguration" AssemblyName="Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Condition=" '$(MSBuildToolsVersion)' == '' or '$(MSBuildToolsVersion)' == '2.0' " />
+  <UsingTask TaskName="AssignTargetPath" AssemblyName="Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Condition=" '$(MSBuildToolsVersion)' == '' or '$(MSBuildToolsVersion)' == '2.0' " />
+  <UsingTask TaskName="ResolveNonMSBuildProjectOutput" AssemblyName="Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Condition=" '$(MSBuildToolsVersion)' == '' or '$(MSBuildToolsVersion)' == '2.0' " />
+  <UsingTask TaskName="ResolveVCProjectOutput" AssemblyName="Microsoft.Build.Tasks, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Condition=" '$(MSBuildToolsVersion)' == '' or '$(MSBuildToolsVersion)' == '2.0' " />
+
+  <UsingTask TaskName="AssignProjectConfiguration" AssemblyName="Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Condition=" '$(MSBuildToolsVersion)' == '3.5' " />
+  <UsingTask TaskName="AssignTargetPath" AssemblyName="Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Condition=" '$(MSBuildToolsVersion)' == '3.5' " />
+  <UsingTask TaskName="ResolveNonMSBuildProjectOutput" AssemblyName="Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Condition=" '$(MSBuildToolsVersion)' == '3.5' " />
+  <UsingTask TaskName="ResolveVCProjectOutput" AssemblyName="Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Condition=" '$(MSBuildToolsVersion)' == '3.5' " />
+
+  <UsingTask TaskName="CreateProjectReferenceDefineConstants" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="WixAssignCulture" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="ResolveWixReferences" AssemblyFile="$(WixTasksPath)"/>
+  <UsingTask TaskName="ReplaceString" AssemblyFile="$(WixTasksPath)"/>
+  <UsingTask TaskName="GetCabList" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="GetLooseFileList" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="RefreshGeneratedFile" AssemblyFile="$(WixTasksPath)"/>
+  <UsingTask TaskName="RefreshBundleGeneratedFile" AssemblyFile="$(WixTasksPath)"/>
+
+  <!-- WiX tools are 32bit EXEs, so run them out-of-proc when MSBuild is not 32bit. -->
+  <PropertyGroup>
+    <RunWixToolsOutOfProc Condition=" '$(PROCESSOR_ARCHITECTURE)'!='x86' ">true</RunWixToolsOutOfProc>
+  </PropertyGroup>
+
+  <!--
+  Several properties must be set in the main project file, before using this .targets file.
+  However, if the properties are not set, we pick some defaults.
+  -->
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)'=='' ">AnyCPU</Platform>
+    <OutputPath Condition=" '$(OutputPath)' == '' ">bin\$(Configuration)\</OutputPath>
+    <!-- Ensure any OutputPath has a trailing slash, so it can be concatenated -->
+    <OutputPath Condition=" '$(OutputPath)' != '' and !HasTrailingSlash('$(OutputPath)') ">$(OutputPath)\</OutputPath>
+    <_OriginalOutputType>$(OutputType)</_OriginalOutputType>
+    <OutputType Condition=" '$(OutputType)' == '' ">Package</OutputType>
+    <BuildProjectReferences Condition="'$(BuildProjectReferences)' == ''">true</BuildProjectReferences>
+  </PropertyGroup>
+
+  <!-- Properties for the intermediate object output -->
+  <PropertyGroup>
+    <BaseIntermediateOutputPath Condition=" '$(BaseIntermediateOutputPath)' == '' ">obj\</BaseIntermediateOutputPath>
+    <IntermediateOutputPath Condition=" '$(IntermediateOutputPath)' != '' and !HasTrailingSlash('$(IntermediateOutputPath)') ">$(IntermediateOutputPath)\</IntermediateOutputPath>
+    <IntermediateOutputPath Condition=" '$(IntermediateOutputPath)' == '' and '$(Platform)' == 'AnyCPU' ">$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
+    <IntermediateOutputPath Condition=" '$(IntermediateOutputPath)' == '' and '$(Platform)' != 'AnyCPU' ">$(BaseIntermediateOutputPath)$(Platform)\$(Configuration)\</IntermediateOutputPath>
+    <IntermediateExt Condition=" '$(IntermediateExt)' == '' ">.wixobj</IntermediateExt>
+    <CleanFile Condition=" '$(CleanFile)' == '' ">$(MSBuildProjectFile).FileList.txt</CleanFile>
+  </PropertyGroup>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  IDE Macro Property Declarations
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  IDE Macros available from both integrated builds and from command line builds.
+  The following properties are 'macros' that are available via IDE for pre and post build steps.
+  All of them should be added to WixBuildMacroCollection to ensure that they are shown in the UI.
+  -->
+  <PropertyGroup>
+    <TargetExt Condition=" '$(OutputType)' == 'Package' ">.msi</TargetExt>
+    <TargetExt Condition=" '$(OutputType)' == 'Module' ">.msm</TargetExt>
+    <TargetExt Condition=" '$(OutputType)' == 'PatchCreation' ">.pcp</TargetExt>
+    <TargetExt Condition=" '$(OutputType)' == 'Library' ">.wixlib</TargetExt>
+    <TargetExt Condition=" '$(OutputType)' == 'Bundle' ">.exe</TargetExt>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <!-- Example, bin\Debug\ -->
+    <OutDir Condition=" '$(OutDir)' == '' ">$(OutputPath)</OutDir>
+    <!-- Ensure OutDir has a trailing slash, so it can be concatenated -->
+    <OutDir Condition=" '$(OutDir)' != '' and !HasTrailingSlash('$(OutDir)') ">$(OutDir)\</OutDir>
+
+    <!-- Example, MySetup -->
+    <ProjectName Condition=" '$(ProjectName)' == '' ">$(MSBuildProjectName)</ProjectName>
+
+    <!-- Example, MySetup.wixproj -->
+    <ProjectFileName Condition=" '$(ProjectFileName)' == '' ">$(MSBuildProjectFile)</ProjectFileName>
+
+    <!-- Example, .wixproj -->
+    <ProjectExt Condition=" '$(ProjectExt)' == '' ">$(MSBuildProjectExtension)</ProjectExt>
+
+    <!-- Example, c:\MyProjects\MySetup\ -->
+    <ProjectDir Condition=" '$(ProjectDir)' == '' ">$(MSBuildProjectDirectory)\</ProjectDir>
+
+    <!-- Example, c:\MyProjects\MySetup\MySetup.msi -->
+    <ProjectPath Condition=" '$(ProjectPath)' == '' ">$(ProjectDir)$(ProjectFileName)</ProjectPath>
+
+    <!-- Example, .wixpdb -->
+    <TargetPdbExt Condition=" '$(TargetPdbExt)' == '' ">.wixpdb</TargetPdbExt>
+
+    <!-- Example, MySetup -->
+    <TargetName Condition=" '$(TargetName)' == '' ">$(OutputName)</TargetName>
+
+    <!-- Example, MySetup.msi -->
+    <TargetFileName Condition=" '$(TargetFileName)' == '' ">$(TargetName)$(TargetExt)</TargetFileName>
+
+    <!-- Example, MySetup.wixpdb" -->
+    <TargetPdbName Condition=" '$(TargetPdbName)' == '' ">$(TargetName)$(TargetPdbExt)</TargetPdbName>
+
+    <!-- Example, Debug -->
+    <ConfigurationName Condition=" '$(ConfigurationName)' == '' ">$(Configuration)</ConfigurationName>
+
+    <!-- Example, AnyCPU -->
+    <PlatformName Condition=" '$(PlatformName)' == '' ">$(Platform)</PlatformName>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <!-- Create the output path as an item so that we can use %(FullPath) on it. -->
+    <_OutputPathItem Include="$(OutDir)" />
+    <_IntermediateOutputPathItem Include="$(IntermediateOutputPath)" />
+  </ItemGroup>
+
+  <PropertyGroup>
+    <!-- Example, c:\MyProjects\MySetup\bin\debug\ -->
+    <!--
+    Condition intentionally omitted on this one, because it causes problems
+    when we pick up the value of an environment variable named TargetDir
+    -->
+    <TargetDir>@(_OutputPathItem->'%(FullPath)')</TargetDir>
+
+    <!-- Example, C:\MyProjects\MySetup\bin\debug\MySetup.msi -->
+    <TargetPath Condition=" '$(TargetPath)' == '' ">@(_OutputPathItem->'%(FullPath)$(TargetFileName)')</TargetPath>
+
+    <TargetPdbPath Condition=" '$(TargetPdbPath)' == '' ">@(_OutputPathItem->'%(FullPath)$(TargetPdbName)')</TargetPdbPath>
+  </PropertyGroup>
+
+  <!--
+  IDE Macros available only from integrated builds. The following properties are 'macros' that are
+  available via IDE for pre and post build steps. However, they are not defined when directly
+  building a project from the command line, only when building a solution.
+  -->
+  <PropertyGroup>
+    <DevEnvDir Condition=" '$(DevEnvDir)' == '' ">*Undefined if not building from within Visual Studio*</DevEnvDir>
+
+    <!-- Example, MySolution -->
+    <SolutionName Condition=" '$(SolutionName)' == '' ">*Undefined if not building a solution or within Visual Studio*</SolutionName>
+
+    <!-- Example, MySolution.sln -->
+    <SolutionFileName Condition=" '$(SolutionFileName)' == '' ">*Undefined if not building a solution or within Visual Studio*</SolutionFileName>
+
+    <!-- Example, C:\MySolutions\MySolution\MySolution.sln -->
+    <SolutionPath Condition=" '$(SolutionPath)' == '' ">*Undefined if not building a solution or within Visual Studio*</SolutionPath>
+
+    <!-- Example, C:\MySolutions\MySolution\ -->
+    <SolutionDir Condition=" '$(SolutionDir)' == '' ">*Undefined if not building a solution or within Visual Studio*</SolutionDir>
+
+    <!-- Example, .sln -->
+    <SolutionExt Condition=" '$(SolutionExt)' == '' ">*Undefined if not building a solution or within Visual Studio*</SolutionExt>
+  </PropertyGroup>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Default Harvester, Compiler, Linker, and Librarian Property Declarations
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!-- If WixExtension was passed in via the command line, then convert it to an ItemGroup -->
+  <ItemGroup>
+    <WixExtension Include="$(WixExtension)"  Condition=" '$(WixExtension)' != '' " />
+  </ItemGroup>
+
+  <!-- Default Harvester properties-->
+  <PropertyGroup>
+    <HarvestNoLogo Condition=" '$(HarvestNoLogo)' == '' ">$(NoLogo)</HarvestNoLogo>
+    <HarvestSuppressAllWarnings Condition=" '$(HarvestSuppressAllWarnings)' == '' ">$(SuppressAllWarnings)</HarvestSuppressAllWarnings>
+    <HarvestSuppressSpecificWarnings Condition=" '$(HarvestSuppressSpecificWarnings)' == '' ">$(SuppressSpecificWarnings)</HarvestSuppressSpecificWarnings>
+    <HarvestTreatWarningsAsErrors Condition=" '$(HarvestTreatWarningsAsErrors)' == '' ">$(TreatWarningsAsErrors)</HarvestTreatWarningsAsErrors>
+    <HarvestTreatSpecificWarningsAsErrors Condition=" '$(HarvestTreatSpecificWarningsAsErrors)' == '' ">$(TreatSpecificWarningsAsErrors)</HarvestTreatSpecificWarningsAsErrors>
+    <HarvestVerboseOutput Condition=" '$(HarvestVerboseOutput)' == '' ">$(VerboseOutput)</HarvestVerboseOutput>
+    <HarvestAutogenerateGuids Condition=" '$(HarvestAutogenerateGuids)' == '' ">true</HarvestAutogenerateGuids>
+    <HarvestGenerateGuidsNow Condition=" '$(HarvestGenerateGuidsNow)' == '' ">false</HarvestGenerateGuidsNow>
+    <HarvestSuppressFragments Condition=" '$(HarvestSuppressFragments)' == '' ">true</HarvestSuppressFragments>
+    <HarvestSuppressUniqueIds Condition=" '$(HarvestSuppressUniqueIds)' == '' ">false</HarvestSuppressUniqueIds>
+  </PropertyGroup>
+
+  <!-- Default HarvestProjects properties -->
+  <PropertyGroup>
+    <HarvestProjectsNoLogo Condition=" '$(HarvestProjectsNoLogo)' == '' ">$(HarvestNoLogo)</HarvestProjectsNoLogo>
+    <HarvestProjectsSuppressAllWarnings Condition=" '$(HarvestProjectsSuppressAllWarnings)' == '' ">$(HarvestSuppressAllWarnings)</HarvestProjectsSuppressAllWarnings>
+    <HarvestProjectsSuppressSpecificWarnings Condition=" '$(HarvestProjectsSuppressSpecificWarnings)' == '' ">$(HarvestSuppressSpecificWarnings)</HarvestProjectsSuppressSpecificWarnings>
+    <HarvestProjectsTreatWarningsAsErrors Condition=" '$(HarvestProjectsTreatWarningsAsErrors)' == '' ">$(HarvestTreatWarningsAsErrors)</HarvestProjectsTreatWarningsAsErrors>
+    <HarvestProjectsTreatSpecificWarningsAsErrors Condition=" '$(HarvestProjectsTreatSpecificWarningsAsErrors)' == '' ">$(HarvestTreatSpecificWarningsAsErrors)</HarvestProjectsTreatSpecificWarningsAsErrors>
+    <HarvestProjectsVerboseOutput Condition=" '$(HarvestProjectsVerboseOutput)' == '' ">$(HarvestVerboseOutput)</HarvestProjectsVerboseOutput>
+    <HarvestProjectsAutogenerateGuids Condition=" '$(HarvestProjectsAutogenerateGuids)' == '' ">$(HarvestAutogenerateGuids)</HarvestProjectsAutogenerateGuids>
+    <HarvestProjectsGenerateGuidsNow Condition=" '$(HarvestProjectsGenerateGuidsNow)' == '' ">$(HarvestGenerateGuidsNow)</HarvestProjectsGenerateGuidsNow>
+    <HarvestProjectsSuppressFragments Condition=" '$(HarvestProjectsSuppressFragments)' == '' ">$(HarvestSuppressFragments)</HarvestProjectsSuppressFragments>
+    <HarvestProjectsSuppressUniqueIds Condition=" '$(HarvestProjectsSuppressUniqueIds)' == '' ">$(HarvestSuppressUniqueIds)</HarvestProjectsSuppressUniqueIds>
+    <HarvestProjectsTransforms Condition=" '$(HarvestProjectsTransforms)' == '' ">$(HarvestTransforms)</HarvestProjectsTransforms>
+    <HarvestProjectsGeneratedFile Condition=" '$(HarvestProjectsGeneratedFile)' == '' and '$(OutputType)' != 'Bundle' ">$(IntermediateOutputPath)Product.Generated.wxs</HarvestProjectsGeneratedFile>
+    <HarvestProjectsGeneratedFile Condition=" '$(HarvestProjectsGeneratedFile)' == '' and '$(OutputType)' == 'Bundle' ">$(IntermediateOutputPath)Bundle.Generated.wxs</HarvestProjectsGeneratedFile>
+  </PropertyGroup>
+
+  <!-- Default HarvestDirectory properties -->
+  <PropertyGroup>
+    <HarvestDirectoryNoLogo Condition=" '$(HarvestDirectoryNoLogo)' == '' ">$(HarvestNoLogo)</HarvestDirectoryNoLogo>
+    <HarvestDirectorySuppressAllWarnings Condition=" '$(HarvestDirectorySuppressAllWarnings)' == '' ">$(HarvestSuppressAllWarnings)</HarvestDirectorySuppressAllWarnings>
+    <HarvestDirectorySuppressSpecificWarnings Condition=" '$(HarvestDirectorySuppressSpecificWarnings)' == '' ">$(HarvestSuppressSpecificWarnings)</HarvestDirectorySuppressSpecificWarnings>
+    <HarvestDirectoryTreatWarningsAsErrors Condition=" '$(HarvestDirectoryTreatWarningsAsErrors)' == '' ">$(HarvestTreatWarningsAsErrors)</HarvestDirectoryTreatWarningsAsErrors>
+    <HarvestDirectoryTreatSpecificWarningsAsErrors Condition=" '$(HarvestDirectoryTreatSpecificWarningsAsErrors)' == '' ">$(HarvestTreatSpecificWarningsAsErrors)</HarvestDirectoryTreatSpecificWarningsAsErrors>
+    <HarvestDirectoryVerboseOutput Condition=" '$(HarvestDirectoryVerboseOutput)' == '' ">$(HarvestVerboseOutput)</HarvestDirectoryVerboseOutput>
+    <HarvestDirectoryAutogenerateGuids Condition=" '$(HarvestDirectoryAutogenerateGuids)' == '' ">$(HarvestAutogenerateGuids)</HarvestDirectoryAutogenerateGuids>
+    <HarvestDirectoryGenerateGuidsNow Condition=" '$(HarvestDirectoryGenerateGuidsNow)' == '' ">$(HarvestGenerateGuidsNow)</HarvestDirectoryGenerateGuidsNow>
+    <HarvestDirectorySuppressFragments Condition=" '$(HarvestDirectorySuppressFragments)' == '' ">$(HarvestSuppressFragments)</HarvestDirectorySuppressFragments>
+    <HarvestDirectorySuppressUniqueIds Condition=" '$(HarvestDirectorySuppressUniqueIds)' == '' ">$(HarvestSuppressUniqueIds)</HarvestDirectorySuppressUniqueIds>
+    <HarvestDirectoryTransforms Condition=" '$(HarvestDirectoryTransforms)' == '' ">$(HarvestTransforms)</HarvestDirectoryTransforms>
+  </PropertyGroup>
+
+  <!-- Default HarvestFile properties -->
+  <PropertyGroup>
+    <HarvestFileNoLogo Condition=" '$(HarvestFileNoLogo)' == '' ">$(HarvestNoLogo)</HarvestFileNoLogo>
+    <HarvestFileSuppressAllWarnings Condition=" '$(HarvestFileSuppressAllWarnings)' == '' ">$(HarvestSuppressAllWarnings)</HarvestFileSuppressAllWarnings>
+    <HarvestFileSuppressSpecificWarnings Condition=" '$(HarvestFileSuppressSpecificWarnings)' == '' ">$(HarvestSuppressSpecificWarnings)</HarvestFileSuppressSpecificWarnings>
+    <HarvestFileTreatWarningsAsErrors Condition=" '$(HarvestFileTreatWarningsAsErrors)' == '' ">$(HarvestTreatWarningsAsErrors)</HarvestFileTreatWarningsAsErrors>
+    <HarvestFileTreatSpecificWarningsAsErrors Condition=" '$(HarvestFileTreatSpecificWarningsAsErrors)' == '' ">$(HarvestTreatSpecificWarningsAsErrors)</HarvestFileTreatSpecificWarningsAsErrors>
+    <HarvestFileVerboseOutput Condition=" '$(HarvestFileVerboseOutput)' == '' ">$(HarvestVerboseOutput)</HarvestFileVerboseOutput>
+    <HarvestFileAutogenerateGuids Condition=" '$(HarvestFileAutogenerateGuids)' == '' ">$(HarvestAutogenerateGuids)</HarvestFileAutogenerateGuids>
+    <HarvestFileGenerateGuidsNow Condition=" '$(HarvestFileGenerateGuidsNow)' == '' ">$(HarvestGenerateGuidsNow)</HarvestFileGenerateGuidsNow>
+    <HarvestFileSuppressFragments Condition=" '$(HarvestFileSuppressFragments)' == '' ">$(HarvestSuppressFragments)</HarvestFileSuppressFragments>
+    <HarvestFileSuppressUniqueIds Condition=" '$(HarvestFileSuppressUniqueIds)' == '' ">$(HarvestSuppressUniqueIds)</HarvestFileSuppressUniqueIds>
+    <HarvestFileTransforms Condition=" '$(HarvestFileTransforms)' == '' ">$(HarvestTransforms)</HarvestFileTransforms>
+  </PropertyGroup>
+
+  <!-- Defaut Compiler properties. -->
+  <PropertyGroup>
+    <CompilerNoLogo Condition=" '$(CompilerNoLogo)' == '' ">$(NoLogo)</CompilerNoLogo>
+    <CompilerSuppressAllWarnings Condition=" '$(CompilerSuppressAllWarnings)' == '' ">$(SuppressAllWarnings)</CompilerSuppressAllWarnings>
+    <CompilerSuppressSpecificWarnings Condition=" '$(CompilerSuppressSpecificWarnings)' == '' ">$(SuppressSpecificWarnings)</CompilerSuppressSpecificWarnings>
+    <CompilerSuppressSchemaValidation Condition=" '$(CompilerSuppressSchemaValidation)' == '' ">$(SuppressSchemaValidation)</CompilerSuppressSchemaValidation>
+    <CompilerTreatWarningsAsErrors Condition=" '$(CompilerTreatWarningsAsErrors)' == '' ">$(TreatWarningsAsErrors)</CompilerTreatWarningsAsErrors>
+    <CompilerTreatSpecificWarningsAsErrors Condition=" '$(CompilerTreatSpecificWarningsAsErrors)' == '' ">$(TreatSpecificWarningsAsErrors)</CompilerTreatSpecificWarningsAsErrors>
+    <CompilerVerboseOutput Condition=" '$(CompilerVerboseOutput)' == '' ">$(VerboseOutput)</CompilerVerboseOutput>
+    <InstallerPlatform Condition=" '$(InstallerPlatform)' == '' and '$(Platform)' != 'AnyCPU' and '$(Platform)' != 'Any CPU' ">$(Platform)</InstallerPlatform>
+  </PropertyGroup>
+  
+  <!-- Default Lib properties. -->
+  <PropertyGroup>
+    <LibNoLogo Condition=" '$(LibNoLogo)' == '' ">$(NoLogo)</LibNoLogo>
+    <LibBindFiles Condition=" '$(LibBindFiles)' == '' ">$(BindFiles)</LibBindFiles>
+    <LibPedantic Condition=" '$(LibPedantic)' == '' ">$(Pedantic)</LibPedantic>
+    <LibSuppressAllWarnings Condition=" '$(LibSuppressAllWarnings)' == '' ">$(SuppressAllWarnings)</LibSuppressAllWarnings>
+    <LibSuppressSpecificWarnings Condition=" '$(LibSuppressSpecificWarnings)' == '' ">$(SuppressSpecificWarnings)</LibSuppressSpecificWarnings>
+    <LibSuppressSchemaValidation Condition=" '$(LibSuppressSchemaValidation)' == '' ">$(SuppressSchemaValidation)</LibSuppressSchemaValidation>
+    <LibSuppressIntermediateFileVersionMatching Condition=" '$(LibSuppressIntermediateFileVersionMatching)' == '' ">$(SuppressIntermediateFileVersionMatching)</LibSuppressIntermediateFileVersionMatching>
+    <LibTreatWarningsAsErrors Condition=" '$(LibTreatWarningsAsErrors)' == '' ">$(TreatWarningsAsErrors)</LibTreatWarningsAsErrors>
+    <LibTreatSpecificWarningsAsErrors Condition=" '$(LibTreatSpecificWarningsAsErrors)' == '' ">$(TreatSpecificWarningsAsErrors)</LibTreatSpecificWarningsAsErrors>
+    <LibVerboseOutput Condition=" '$(LibVerboseOutput)' == '' ">$(VerboseOutput)</LibVerboseOutput>
+  </PropertyGroup>
+
+  <!-- Default Linker properties. -->
+  <PropertyGroup>
+    <LinkerNoLogo Condition=" '$(LinkerNoLogo)' == '' ">$(NoLogo)</LinkerNoLogo>
+    <LinkerBaseInputPaths Condition=" '$(LinkerBaseInputPaths)' == '' ">$(BaseInputPaths)</LinkerBaseInputPaths>
+    <LinkerBindFiles Condition=" '$(LinkerBindFiles)' == '' ">$(BindFiles)</LinkerBindFiles>
+    <LinkerPedantic Condition=" '$(LinkerPedantic)' == '' ">$(Pedantic)</LinkerPedantic>
+    <LinkerSuppressAllWarnings Condition=" '$(LinkerSuppressAllWarnings)' == '' ">$(SuppressAllWarnings)</LinkerSuppressAllWarnings>
+    <LinkerSuppressSpecificWarnings Condition=" '$(LinkerSuppressSpecificWarnings)' == '' ">$(SuppressSpecificWarnings)</LinkerSuppressSpecificWarnings>
+    <LinkerSuppressSchemaValidation Condition=" '$(LinkerSuppressSchemaValidation)' == '' ">$(SuppressSchemaValidation)</LinkerSuppressSchemaValidation>
+    <LinkerSuppressIntermediateFileVersionMatching Condition=" '$(LinkerSuppressIntermediateFileVersionMatching)' == '' ">$(SuppressIntermediateFileVersionMatching)</LinkerSuppressIntermediateFileVersionMatching>
+    <LinkerTreatWarningsAsErrors Condition=" '$(LinkerTreatWarningsAsErrors)' == '' ">$(TreatWarningsAsErrors)</LinkerTreatWarningsAsErrors>
+    <LinkerTreatSpecificWarningsAsErrors Condition=" '$(LinkerTreatSpecificWarningsAsErrors)' == '' ">$(TreatSpecificWarningsAsErrors)</LinkerTreatSpecificWarningsAsErrors>
+    <LinkerVerboseOutput Condition=" '$(LinkerVerboseOutput)' == '' ">$(VerboseOutput)</LinkerVerboseOutput>
+  </PropertyGroup>
+
+  <!-- Default Inscribe properties. -->
+  <PropertyGroup>
+    <InscribeNoLogo Condition=" '$(InscribeNoLogo)' == '' ">$(NoLogo)</InscribeNoLogo>
+    <InscribeSuppressAllWarnings Condition=" '$(InscribeSuppressAllWarnings)' == '' ">$(SuppressAllWarnings)</InscribeSuppressAllWarnings>
+    <InscribeSuppressSpecificWarnings Condition=" '$(InscribeSuppressSpecificWarnings)' == '' ">$(SuppressSpecificWarnings)</InscribeSuppressSpecificWarnings>
+    <InscribeTreatWarningsAsErrors Condition=" '$(InscribeTreatWarningsAsErrors)' == '' ">$(TreatWarningsAsErrors)</InscribeTreatWarningsAsErrors>
+    <InscribeTreatSpecificWarningsAsErrors Condition=" '$(InscribeTreatSpecificWarningsAsErrors)' == '' ">$(TreatSpecificWarningsAsErrors)</InscribeTreatSpecificWarningsAsErrors>
+    <InscribeVerboseOutput Condition=" '$(InscribeVerboseOutput)' == '' ">$(VerboseOutput)</InscribeVerboseOutput>
+  </PropertyGroup>
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Initial Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  _CheckRequiredProperties
+
+    Checks properties that must be set in the main project file or on the command line before
+    using this .TARGETS file.
+
+    [IN]
+    $(OutputName) - The name of the MSI/MSM/wixlib to build (without the extension)
+    $(OutputType) - Possible values are 'package', 'PatchCreation', 'module', 'library', 'bundle'
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <_PleaseSetThisInProjectFile>Please set this in the project file before the &lt;Import&gt; of the wix.targets file.</_PleaseSetThisInProjectFile>
+    <_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'.</_OutputTypeDescription>
+  </PropertyGroup>
+  <Target Name="_CheckRequiredProperties">
+
+    <Error
+      Code="WIXTARGETS100"
+      Condition=" '$(OutputName)' == '' "
+      Text="The OutputName property is not set in project &quot;$(MSBuildProjectFile)&quot;. The OutputName defines the name of the output without a file extension. $(_PleaseSetThisInProjectFile)" />
+
+    <Warning
+      Code="WIXTARGETS101"
+      Condition=" '$(_OriginalOutputType)' == '' "
+      Text="The OutputType property is not set in project &quot;$(MSBuildProjectFile)&quot;. Defaulting to 'Package'. $(_OutputTypeDescription)" />
+
+    <Error
+      Code="WIXTARGETS102"
+      Condition=" '$(OutputType)' != 'Package' and '$(OutputType)' != 'PatchCreation' and '$(OutputType)' != 'Module' and '$(OutputType)' != 'Library' and '$(OutputType)' != 'Bundle' "
+      Text="The OutputType property '$(OutputType)' is not valid in project &quot;$(MSBuildProjectFile)&quot;. $(_OutputTypeDescription)" />
+
+    <!-- Although we try to ensure a trailing slash, it's possible to circumvent this if the property is set on the command line -->
+    <Error
+      Code="WIXTARGETS103"
+      Condition="'$(OutDir)' != '' and !HasTrailingSlash('$(OutDir)')"
+      Text="The OutDir property must end with a trailing slash." />
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  _SetDefaultPathValues
+
+    Gets the default values of some paths from the registry.
+
+    [OUT]
+    $(WixExtDir) - Default Wix Extension Directory
+    $(WixToolPath) - Default Wix Tool install folder
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <WixInstallRegKey>SOFTWARE\Microsoft\Windows Installer XML\3.5</WixInstallRegKey>
+    <WixInstallRegKeyWow64>SOFTWARE\Wow6432Node\Microsoft\Windows Installer XML\3.5</WixInstallRegKeyWow64>
+  </PropertyGroup>
+  <Target
+    Name="_SetDefaultPathValues">
+
+    <ReadRegistry
+      Hive="LocalMachine"
+      Key="$(WixInstallRegKey)"
+      Name="InstallRoot"
+      FailIfMissing="false"
+      Condition=" '$(WixExtDir)' == '' ">
+
+      <Output TaskParameter="Value" PropertyName="WixExtDir" />
+    </ReadRegistry>
+
+    <ReadRegistry
+      Hive="LocalMachine"
+      Key="$(WixInstallRegKey)"
+      Name="InstallRoot"
+      FailIfMissing="false"
+      Condition=" '$(WixToolPath)' == '' ">
+
+      <Output TaskParameter="Value" PropertyName="WixToolPath" />
+    </ReadRegistry>
+
+    <ReadRegistry
+      Hive="LocalMachine"
+      Key="$(WixInstallRegKeyWow64)"
+      Name="InstallRoot"
+      FailIfMissing="false"
+      Condition=" '$(WixExtDir)' == '' ">
+
+      <Output TaskParameter="Value" PropertyName="WixExtDir" />
+    </ReadRegistry>
+
+    <ReadRegistry
+      Hive="LocalMachine"
+      Key="$(WixInstallRegKeyWow64)"
+      Name="InstallRoot"
+      FailIfMissing="false"
+      Condition=" '$(WixToolPath)' == '' ">
+
+      <Output TaskParameter="Value" PropertyName="WixToolPath" />
+    </ReadRegistry>
+    
+    <CreateProperty Value="$(WixToolPath)" Condition=" '$(WixExtDir)' == '' ">
+      <Output TaskParameter="Value" PropertyName="WixExtDir" />
+    </CreateProperty>
+
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Build Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  Build
+
+    The main build entry point.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <BuildDependsOn>
+      BeforeBuild;
+      CoreBuild;
+      AfterBuild
+    </BuildDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Build"
+    DependsOnTargets="$(BuildDependsOn)"
+    Outputs="$(TargetPath)">
+  </Target>
+
+  <!--
+  ==================================================================================================
+  BeforeBuild
+
+    Redefine this target in your project in order to run tasks just before Build.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeBuild" />
+
+  <!--
+  ==================================================================================================
+  AfterBuild
+
+    Redefine this target in your project in order to run tasks just after Build.
+  ==================================================================================================
+  -->
+  <Target Name="AfterBuild" />
+
+  <!--
+  ==================================================================================================
+  CoreBuild
+
+    The core build step calls each of the build targets.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <CoreBuildDependsOn>
+      BuildOnlySettings;
+      PrepareForBuild;
+      PreBuildEvent;
+      ResolveReferences;
+      AddCompilerDefineConstants;
+      CompileAndLink;
+      Signing;
+      GetTargetPath;
+      IncrementalClean;
+      PostBuildEvent
+    </CoreBuildDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="CoreBuild"
+    DependsOnTargets="$(CoreBuildDependsOn)">
+
+    <OnError
+      ExecuteTargets="_TimeStampAfterCompileAndLink;PostBuildEvent"
+      Condition=" '$(RunPostBuildEvent)' == 'Always' or '$(RunPostBuildEvent)' == 'OnOutputUpdated' " />
+
+    <OnError ExecuteTargets="_CleanRecordFileWrites" />
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  Rebuild
+
+    Delete all intermediate and final build outputs, and then build the project from scratch.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <RebuildDependsOn>
+      BeforeRebuild;
+      Clean;
+      $(MSBuildProjectDefaultTargets);
+      AfterRebuild;
+    </RebuildDependsOn>
+
+    <RebuildDependsOn Condition=" '$(MSBuildProjectDefaultTargets)' == 'Rebuild' ">
+      BeforeRebuild;
+      Clean;
+      Build;
+      AfterRebuild;
+    </RebuildDependsOn>
+  </PropertyGroup>
+
+  <Target
+    Name="Rebuild"
+    DependsOnTargets="$(RebuildDependsOn)"
+    Outputs="$(TargetPath)" />
+
+  <!--
+  ==================================================================================================
+  BeforeRebuild
+
+    Redefine this target in your project in order to run tasks just before Rebuild.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeRebuild" />
+
+  <!--
+  ==================================================================================================
+  AfterRebuild
+
+    Redefine this target in your project in order to run tasks just after Rebuild.
+  ==================================================================================================
+  -->
+  <Target Name="AfterRebuild" />
+
+  <!--
+  ==================================================================================================
+  BuildOnlySettings
+
+    This target is called only when doing a real build. It is not called during project load.
+  ==================================================================================================
+    -->
+  <PropertyGroup>
+    <BuildingProject>false</BuildingProject>
+  </PropertyGroup>
+  <Target Name="BuildOnlySettings">
+
+    <CreateProperty Value="true">
+      <Output TaskParameter="Value" PropertyName="BuildingProject" />
+    </CreateProperty>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  PrepareForBuild
+
+    Prepare the prerequisites for building.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <PrepareForBuildDependsOn></PrepareForBuildDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="PrepareForBuild" DependsOnTargets="$(PrepareForBuildDependsOn)">
+
+    <!--
+    These CreateProperty calls are required because TargetDir and TargetPath are defined
+    to contain an item list. We want that item list to be expanded so that it can be used
+    as a regular property value and not as an item-list-with-transform.
+    -->
+    <CreateProperty Value="$(TargetDir)">
+      <Output TaskParameter="Value" PropertyName="TargetDir" />
+    </CreateProperty>
+
+    <CreateProperty Value="$(TargetPath)">
+      <Output TaskParameter="Value" PropertyName="TargetPath" />
+    </CreateProperty>
+
+    <CreateProperty Value="$(TargetPdbPath)">
+      <Output TaskParameter="Value" PropertyName="TargetPdbPath" />
+    </CreateProperty>
+
+    <!-- Create the directories for intermediate and final build products. -->
+    <MakeDir Directories="$(IntermediateOutputPath);$(OutDir)" />
+  </Target>
+
+  <!--
+  ==================================================================================================
+  ResolveWixExtensionReferences
+
+    Resolves WiX extension references to full paths. Any properties you use
+    to resolve paths to extensions must be defined before importing this
+    file or the extensions will be automatically resolved to $(WixExtDir).
+
+    [IN]
+    @(WixExtension) - WixExtension item group
+
+    [OUT]
+    @(_ResolvedWixExtensionPaths) - Item group with full paths to extensions
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <ResolveWixExtensionReferencesDependsOn>
+      PrepareForBuild
+    </ResolveWixExtensionReferencesDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="ResolveWixExtensionReferences"
+    DependsOnTargets="$(ResolveWixExtensionReferencesDependsOn)"
+    Condition=" '@(WixExtension)' != ''">
+
+    <!--
+    The WixExtensionSearchPaths property is set to find assemblies in the following order:
+
+        (1) $(ReferencePaths) - the reference paths property, which comes from the .USER file.
+        (2) The hintpath from the referenced item itself, indicated by {HintPathFromItem}.
+        (3) Treat the reference's Include as if it were a real file name.
+        (4) Path specified by the WixExtDir property.
+    -->
+    <CreateProperty Condition=" '$(WixExtensionSearchPaths)' == '' " Value="
+      $(ReferencePaths);
+      {HintPathFromItem};
+      {RawFileName};
+      $(WixExtDir)
+      ">
+      <Output TaskParameter="Value" PropertyName="WixExtensionSearchPaths" />
+    </CreateProperty>
+
+    <ResolveWixReferences
+      WixReferences="@(WixExtension)"
+      SearchPaths="$(WixExtensionSearchPaths)"
+      SearchFilenameExtensions=".dll">
+      <Output TaskParameter="ResolvedWixReferences" ItemName="_AllResolvedWixExtensionPaths" />
+    </ResolveWixReferences>
+
+    <!-- Remove duplicate extension items that would cause build errors -->
+    <RemoveDuplicates Inputs="@(_AllResolvedWixExtensionPaths)">
+      <Output TaskParameter="Filtered" ItemName="_ResolvedWixExtensionPaths" />
+    </RemoveDuplicates>
+  </Target>
+
+  <!--
+  ==================================================================================================
+  PreBuildEvent
+
+    Run the pre-build event if there is one.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <PreBuildEventDependsOn>GetTargetPath</PreBuildEventDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="PreBuildEvent"
+    DependsOnTargets="$(PreBuildEventDependsOn)"
+    Condition=" '$(PreBuildEvent)' != '' ">
+
+    <ReplaceString
+      Text="$(PreBuildEvent)"
+      OldValue="!(TargetPath)"
+      NewValue="$(TargetPath)">
+      
+      <Output TaskParameter="Text" PropertyName="ExpandedPreBuildEvent" />
+    </ReplaceString>
+    
+    <ReplaceString
+      Text="$(ExpandedPreBuildEvent)"
+      OldValue="!(TargetPdbPath)"
+      NewValue="$(TargetPdbPath)">
+      
+      <Output TaskParameter="Text" PropertyName="ExpandedPreBuildEvent" />
+    </ReplaceString>
+
+    <Exec WorkingDirectory="$(OutDir)" Command="$(ExpandedPreBuildEvent)" />
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Resolve References Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  ResolveReferences
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <ResolveReferencesDependsOn>
+      BeforeResolveReferences;
+      SplitProjectReferencesByType;
+      ResolveProjectReferences;
+      ResolveVCProjectReferences;
+      ResolveWixLibraryReferences;
+      ResolveWixExtensionReferences;
+      AfterResolveReferences
+    </ResolveReferencesDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="ResolveReferences"
+    DependsOnTargets="$(ResolveReferencesDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  BeforeResolveReferences
+
+    Redefine this target in your project in order to run tasks just before ResolveReferences.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeResolveReferences" />
+
+  <!--
+  ==================================================================================================
+  AfterResolveReferences
+
+    Redefine this target in your project in order to run tasks just after ResolveReferences.
+  ==================================================================================================
+  -->
+  <Target Name="AfterResolveReferences" />
+
+  <!--
+  ==================================================================================================
+  SplitProjectReferencesByType
+
+    Split project references into two lists: VC project references and all others (handled by the
+    MSBuild engine)
+
+    [IN]
+    @(ProjectReference) - the list of all project references
+
+    [OUT]
+    @(VCProjectReference) - the list of VC (managed VC++ to be exact) project references
+    @(NonVCProjectReference) - the list of non-VC project references (MSBuild and potentially VSIP projects)
+  ==================================================================================================
+  -->
+  <Target
+    Name="SplitProjectReferencesByType"
+    Condition=" '@(ProjectReference)' != '' ">
+
+    <!-- Assign a project configuration to each project reference if we're building a solution file. -->
+    <AssignProjectConfiguration
+      ProjectReferences="@(ProjectReference)"
+      SolutionConfigurationContents="$(CurrentSolutionConfigurationContents)"
+      Condition=" '$(BuildingSolutionFile)' == 'true' ">
+
+      <Output TaskParameter="AssignedProjects" ItemName="_ProjectReferenceWithConfiguration" />
+    </AssignProjectConfiguration>
+
+    <!--
+    Otherwise (regular command line build or building inside the IDE) just copy the references
+    as we don't need their configurations.
+    -->
+    <CreateItem Include="@(ProjectReference)" Condition=" '$(BuildingSolutionFile)' != 'true' ">
+      <Output TaskParameter="Include" ItemName="_ProjectReferenceWithConfiguration" />
+    </CreateItem>
+
+    <!-- Copy all VC project references to the VCProjectReference item list (using the VC project extension) -->
+    <CreateItem
+      Include="@(_ProjectReferenceWithConfiguration)"
+      Condition=" '%(Extension)' == '.vcproj' "
+      AdditionalMetadata="MSBuildSourceProjectFileFullPath=%(FullPath)">
+
+      <Output TaskParameter="Include" ItemName="VCProjectReference" />
+    </CreateItem>
+
+    <!-- Copy the rest of the project references to the NonVCProjectReference item list -->
+    <CreateItem
+      Include="@(_ProjectReferenceWithConfiguration)"
+      Condition=" '%(Extension)' != '.vcproj' "
+      AdditionalMetadata="MSBuildSourceProjectFileFullPath=%(FullPath)">
+
+      <Output TaskParameter="Include" ItemName="NonVCProjectReference" />
+    </CreateItem>
+  </Target>
+
+
+  <!--
+  ==================================================================================================
+  _SplitProjectReferencesByFileExistence
+
+    Split referenced projects into two lists: those that exist on  disk and those that don't.
+
+    [IN]
+    @(NonVCProjectReference) - the list of non-VC project references (MSBuild and potentially VSIP projects)
+
+    [OUT]
+    @(_MSBuildProjectReferenceExistent) - the list of non-VC project references that exist on disk
+    @(_MSBuildProjectReferenceNonexistent) - the list of non-VC project references that don't exist on disk
+  ==================================================================================================
+  -->
+  <Target
+    Name="_SplitProjectReferencesByFileExistence"
+    DependsOnTargets="SplitProjectReferencesByType"
+    Condition=" '@(NonVCProjectReference)' != '' ">
+
+    <!--
+    Use this task for matching projects with pre-resolved project outputs set by the IDE if building
+    inside the IDE. The IDE only includes non-MSBuild projects in the output list. We'll use MSBuild
+    to resolve MSBuild projects. This task will resolve VSIP (3rd party) project references and
+    create a new item list with only project references to projects in the MSBuild format.
+    -->
+    <ResolveNonMSBuildProjectOutput
+      ProjectReferences="@(NonVCProjectReference)"
+      PreresolvedProjectOutputs="$(VSIDEResolvedNonMSBuildProjectOutputs)"
+      Condition=" '$(BuildingInsideVisualStudio)' == 'true' ">
+
+      <Output TaskParameter="ResolvedOutputPaths" ItemName="_ResolvedProjectReferencePaths" />
+      <Output TaskParameter="UnresolvedProjectReferences" ItemName="_MSBuildProjectReference" />
+
+    </ResolveNonMSBuildProjectOutput>
+
+    <!--
+    If building from the command line, simply copy the NonVCProjectReference item list to
+    _MSBuildProjectReference, since we have to assume all non-VC projects are in the MSBuild format.
+    We have no way of building VSIP (3rd party) projects from the command line.
+    -->
+    <CreateItem Include="@(NonVCProjectReference)" Condition=" '$(BuildingInsideVisualStudio)' != 'true' ">
+      <Output TaskParameter="Include" ItemName="_MSBuildProjectReference" />
+    </CreateItem>
+
+    <!-- Break the project list into two lists: those that exist on disk and those that don't. -->
+    <CreateItem Include="@(_MSBuildProjectReference)" Condition="Exists('%(Identity)')">
+      <Output TaskParameter="Include" ItemName="_MSBuildProjectReferenceExistent" />
+    </CreateItem>
+
+    <CreateItem Include="@(_MSBuildProjectReference)" Condition="!Exists('%(Identity)')">
+      <Output TaskParameter="Include" ItemName="_MSBuildProjectReferenceNonexistent" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  ResolveProjectReferences
+
+    Builds all of the referenced projects to get their outputs.
+
+    [IN]
+    @(NonVCProjectReference) - The list of non-VC project references.
+
+    [OUT]
+    @(_ResolvedProjectReferencePaths) - Paths to referenced projects.
+  ================================================================================================
+  -->
+  <Target
+    Name="ResolveProjectReferences"
+    DependsOnTargets="_SplitProjectReferencesByFileExistence"
+    Condition=" '@(NonVCProjectReference)' != '' ">
+
+    <!--
+    When building this project from the IDE or when building a .sln from the command line, just
+    gather the referenced build outputs. The code that builds the .sln will already have built
+    the project, so there's no need to do it again here.
+    
+    The ContinueOnError setting is here so that, during project load, as much information as
+    possible will be passed to the compilers.
+    -->
+    <MSBuild
+      Projects="@(_MSBuildProjectReferenceExistent)"
+      Targets="%(_MSBuildProjectReferenceExistent.Targets);GetTargetPath"
+      Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration); %(_MSBuildProjectReferenceExistent.SetPlatform)"
+      Condition="('$(BuildingSolutionFile)' == 'true' or '$(BuildingInsideVisualStudio)' == 'true' or '$(BuildProjectReferences)' != 'true') and '@(_MSBuildProjectReferenceExistent)' != '' "
+      ContinueOnError="!$(BuildingProject)">
+
+      <Output TaskParameter="TargetOutputs" ItemName="_ResolvedProjectReferencePaths" />
+      <Output TaskParameter="TargetOutputs" ItemName="_MSBuildResolvedProjectReferencePaths" />
+    </MSBuild>
+
+    <!--
+    Build referenced projects when building from the command line.
+    
+    The $(ProjectReferenceBuildTargets) will normally be blank so that the project's default target
+    is used during a P2P reference. However if a custom build process requires that the referenced
+    project has a different target to build it can be specified.
+    -->
+    <MSBuild
+      Projects="@(_MSBuildProjectReferenceExistent)"
+      Targets="$(ProjectReferenceBuildTargets)"
+      Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration); %(_MSBuildProjectReferenceExistent.SetPlatform)"
+      Condition=" '$(BuildingInsideVisualStudio)' != 'true' and '$(BuildingSolutionFile)' != 'true' and '$(BuildProjectReferences)' == 'true' and '@(_MSBuildProjectReferenceExistent)' != '' ">
+
+      <Output TaskParameter="TargetOutputs" ItemName="_ResolvedProjectReferencePaths" />
+      <Output TaskParameter="TargetOutputs" ItemName="_MSBuildResolvedProjectReferencePaths" />
+    </MSBuild>
+
+    <!-- Issue a warning for each non-existent project. -->
+    <Warning
+      Text="The referenced project '%(_MSBuildProjectReferenceNonexistent.Identity)' does not exist."
+      Condition=" '@(_MSBuildProjectReferenceNonexistent)' != '' " />
+
+    <!-- Create list of all .wixlib project references-->
+    <CreateItem
+      Include="@(_ResolvedProjectReferencePaths)"
+      Condition=" '%(Extension)' == '.wixlib' ">
+
+      <Output TaskParameter="Include" ItemName="WixLibProjects" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  GetTargetPath
+
+    This stand-alone target returns the name of the build product (i.e. MSI, MSM) that would be
+    produced if we built this project.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <GetTargetPathDependsOn>
+      PrepareForBuild;
+      AssignCultures
+    </GetTargetPathDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="GetTargetPath"
+    DependsOnTargets="$(GetTargetPathDependsOn)"
+    Outputs="$(TargetPath)" />
+
+  <!--
+  ================================================================================================
+  ResolveVCProjectReferences
+
+    Find outputs of referenced VC projects (currently we never build VC projects ourselves).
+
+    [IN]
+    @(VCProjectReference) - the list of VC project references
+
+    [OUT]
+    @(_ResolvedProjectReferencePaths) - paths to projects' outputs
+  ================================================================================================
+  -->
+  <Target
+    Name="ResolveVCProjectReferences"
+    Condition=" '@(VCProjectReference)' != '' "
+    DependsOnTargets="SplitProjectReferencesByType">
+
+    <!--
+    Use the task for matching projects with pre-resolved project outputs set by the IDE
+    if building inside the IDE.
+    -->
+    <ResolveNonMSBuildProjectOutput
+      ProjectReferences="@(VCProjectReference)"
+      PreresolvedProjectOutputs="$(VSIDEResolvedNonMSBuildProjectOutputs)"
+      Condition=" '$(BuildingInsideVisualStudio)' == 'true' ">
+
+      <Output TaskParameter="ResolvedOutputPaths" ItemName="_ResolvedVCProjectReferencePaths" />
+    </ResolveNonMSBuildProjectOutput>
+
+    <!--
+    Use the task that uses VC project engine if building from the command line. Invoking this
+    task only makes sense for building solution files, otherwise we won't have the necessary
+    configuration information.
+    -->
+    <ResolveVCProjectOutput
+      ProjectReferences="@(VCProjectReference)"
+      Configuration="%(VCProjectReference.FullConfiguration)"
+      SolutionFile="$(SolutionPath)"
+      Override="$(VCBuildOverride)"
+      Condition=" '$(BuildingSolutionFile)' == 'true' ">
+
+      <Output TaskParameter="ResolvedOutputPaths" ItemName="_ResolvedVCProjectReferencePaths" />
+    </ResolveVCProjectOutput>
+
+    <Error
+      Code="WIXTARGETS104"
+      Text="MSBuild cannot resolve the reference to the Visual C++ project '%(VCProjectReference.Identity)' when building a stand-alone MSBuild project. To correctly resolve this reference, please build the solution file containing these projects."
+      Condition=" '$(BuildingSolutionFile)' != 'true' and '$(BuildingInsideVisualStudio)' != 'true' " />
+
+    <CreateItem Include="@(_ResolvedVCProjectReferencePaths)">
+      <Output TaskParameter="Include" ItemName="_ResolvedProjectReferencePaths" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  ResolveWixLibraryReferences
+
+    Resolve the library references to full paths.
+
+    [IN]
+    @(WixLibrary) - The list of .wixlib files.
+    
+    [OUT]
+    @(_ResolvedWixLibraryPaths) - Item group with full paths to libraries
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <ResolveWixLibraryReferencesDependsOn>
+      PrepareForBuild;
+    </ResolveWixLibraryReferencesDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="ResolveWixLibraryReferences"
+    DependsOnTargets="$(ResolveWixLibraryReferencesDependsOn)"
+    Condition=" '@(WixLibrary)' != ''">
+
+    <!--
+    The WixLibrarySearchPaths property is set to find assemblies in the following order:
+
+        (1) $(ReferencePaths) - the reference paths property, which comes from the .USER file.
+        (2) The hintpath from the referenced item itself, indicated by {HintPathFromItem}.
+        (3) Treat the reference's Include as if it were a real file name.
+        (4) Path specified by the WixExtDir property.
+    -->
+    <CreateProperty Condition=" '$(WixLibrarySearchPaths)' == '' " Value="
+      $(ReferencePaths);
+      {HintPathFromItem};
+      {RawFileName};
+      $(WixExtDir)
+      ">
+      <Output TaskParameter="Value" PropertyName="WixLibrarySearchPaths" />
+    </CreateProperty>
+
+    <ResolveWixReferences
+      WixReferences="@(WixLibrary)"
+      SearchPaths="$(WixLibrarySearchPaths)"
+      SearchFilenameExtensions=".wixlib">
+      <Output TaskParameter="ResolvedWixReferences" ItemName="_AllResolvedWixLibraryPaths" />
+    </ResolveWixReferences>
+    
+    <!-- Remove duplicate library items that would cause build errors -->
+    <RemoveDuplicates Inputs="@(_AllResolvedWixLibraryPaths)">
+      <Output TaskParameter="Filtered" ItemName="_ResolvedWixLibraryPaths" />
+    </RemoveDuplicates>
+
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Compiler Define Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  AddCompilerDefineConstants
+
+    Adds solution and project references to the constants passed into the compiler.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <AddCompilerDefineConstantsDependsOn>
+      ResolveReferences;
+      AddSolutionDefineConstants;
+      AddProjectReferenceDefineConstants;
+    </AddCompilerDefineConstantsDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="AddCompilerDefineConstants"
+    DependsOnTargets="$(AddCompilerDefineConstantsDependsOn)">
+
+    <CreateProperty Value="
+      Configuration=$(ConfigurationName);
+      OutDir=$(OutDir);
+      Platform=$(PlatformName);
+      ProjectDir=$(ProjectDir);
+      ProjectExt=$(ProjectExt);
+      ProjectFileName=$(ProjectFileName);
+      ProjectName=$(ProjectName);
+      ProjectPath=$(ProjectPath);
+      TargetDir=$(TargetDir);
+      TargetExt=$(TargetExt);
+      TargetFileName=$(TargetFileName);
+      TargetName=$(TargetName);
+      TargetPath=$(TargetPath);
+      ">
+      <Output TaskParameter="Value" PropertyName="ProjectDefineConstants" />
+    </CreateProperty>
+    
+  </Target>
+
+  <!--
+  ==================================================================================================
+  AddSolutionDefineConstants
+
+    Adds solution references to the constants passed into the compiler, but only when building
+    from the Visual Studio IDE or when building a solution file via the command line.
+
+    [OUT]
+    $(SolutionDefineConstants) - the list of solution variables to be passed into the compiler
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <DefineSolutionProperties Condition=" '$(DefineSolutionProperties)' == '' ">true</DefineSolutionProperties>
+  </PropertyGroup>
+  <Target
+    Name="AddSolutionDefineConstants"
+    Condition=" '$(DefineSolutionProperties)' == 'true' ">
+
+    <Warning
+      Text="Solution properties are only available during IDE builds or when building the solution file from the command line. To turn off this warning set &lt;DefineSolutionProperties&gt;false&lt;/DefineSolutionProperties&gt; in your .wixproj file."
+      Condition=" '$(BuildingInsideVisualStudio)' != 'true' and '$(BuildingSolutionFile)' != 'true' " />
+
+    <CreateProperty Value="$(SolutionDefineConstants);DevEnvDir=$(DevEnvDir)" Condition=" '$(DevEnvDir)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+    <CreateProperty Value="$(SolutionDefineConstants);SolutionDir=$(SolutionDir)" Condition=" '$(SolutionDir)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+    <CreateProperty Value="$(SolutionDefineConstants);SolutionExt=$(SolutionExt)" Condition=" '$(SolutionExt)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+    <CreateProperty Value="$(SolutionDefineConstants);SolutionFileName=$(SolutionFileName)" Condition=" '$(SolutionFileName)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+    <CreateProperty Value="$(SolutionDefineConstants);SolutionName=$(SolutionName)" Condition=" '$(SolutionName)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+    <CreateProperty Value="$(SolutionDefineConstants);SolutionPath=$(SolutionPath)" Condition=" '$(SolutionPath)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  AddProjectReferenceDefineConstants
+
+    Adds project references to the constants passed into the compiler.
+
+    [IN]
+    @(_ResolvedProjectReferencePaths) - paths to projects' outputs
+    $(VSProjectConfigurations) - map of project names to configurations, provided by VS when building in the IDE
+
+    [OUT]
+    $(ProjectReferenceDefineConstants) - the list of referenced project variables to be passed into the compiler
+  ==================================================================================================
+  -->
+  <Target
+    Name="AddProjectReferenceDefineConstants"
+    Condition=" '@(_ResolvedProjectReferencePaths)' != '' ">
+
+    <CreateProjectReferenceDefineConstants
+      ProjectReferencePaths="@(_ResolvedProjectReferencePaths)"
+      ProjectConfigurations="$(VSProjectConfigurations)">
+
+      <Output TaskParameter="DefineConstants" PropertyName="ProjectReferenceDefineConstants" />
+    </CreateProjectReferenceDefineConstants>
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  CompileAndLink Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  CompileAndLink
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <CompileAndLinkDependsOn>
+      ResolveReferences;
+      BeforeCompileAndLink;
+      _TimeStampBeforeCompileAndLink;
+      ConvertReferences;
+      ConvertBundleReferences;
+      Harvest;
+      GenerateCode;
+      Compile;
+      Lib;
+      Link;
+      _TimeStampAfterCompileAndLink;
+      AfterCompileAndLink
+    </CompileAndLinkDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="CompileAndLink"
+    DependsOnTargets="$(CompileAndLinkDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  BeforeCompileAndLink
+
+    Redefine this target in your project in order to run tasks just before CompileAndLink.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeCompileAndLink" />
+
+  <!--
+  ==================================================================================================
+  AfterCompileAndLink
+
+    Redefine this target in your project in order to run tasks just after CompileAndLink.
+  ==================================================================================================
+  -->
+  <Target Name="AfterCompileAndLink" />
+
+  <!--
+  ==================================================================================================
+  _TimeStampBeforeCompileAndLink
+
+    Record a timestamp so that we can compare it to a new timestamp during PostBuildEvent if
+    necessary.
+  ==================================================================================================
+  -->
+  <Target
+    Name="_TimeStampBeforeCompileAndLink" >
+
+    <CreateItem Include="$(TargetPath)">
+      <Output TaskParameter="Include" ItemName="TargetOutput" />
+    </CreateItem>
+    
+    <CreateItem Include="%(TargetOutput.ModifiedTime)">
+      <Output TaskParameter="Include" PropertyName="_TargetOutputTimestampBeforeCompileAndLink" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  _TimeStampAfterCompileAndLink
+
+    Take before and after timestamps so that we can compare them (used by post-build events that
+    are set to fire "OnOutputUpdated").
+  ==================================================================================================
+  -->
+  <Target
+    Name="_TimeStampAfterCompileAndLink">
+
+    <CreateItem Include="%(TargetOutput.ModifiedTime)">
+      <Output TaskParameter="Include" PropertyName="_TargetOutputTimestampAfterCompileAndLink" />
+    </CreateItem>
+
+    <!-- if our target path was updated by compile & link, and it's an "inscribe-able" output type,
+         then add it to the list of things to be inscribed -->
+    <CreateItem Include="$(TargetPath)"
+      Condition="'$(_TargetOutputTimestampBeforeCompileAndLink)' != '$(_TargetOutputTimestampAfterCompileAndLink)'
+      and ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module')
+      and '$(InscribeMainOutput)' == 'true'" >
+
+        <Output TaskParameter="Include" ItemName="Inscribe"/>
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  Harvest
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <HarvestDependsOn>
+      HarvestProjects;
+      HarvestDirectory;
+      HarvestFile;
+    </HarvestDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Harvest"
+    DependsOnTargets="$(HarvestDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  GenerateCode
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <GenerateCodeDependsOn>
+      RefreshGeneratedFile;
+      RefreshBundleGeneratedFile
+    </GenerateCodeDependsOn>
+  </PropertyGroup>
+  <Target Name="GenerateCode"
+    DependsOnTargets="$(GenerateCodeDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  Signing
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <SigningDependsOn>
+      CompileAndLink;
+      BeforeSigning;
+      SignCabs;
+      Inscribe;
+      SignMsi;
+      AfterSigning
+    </SigningDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Signing"
+    DependsOnTargets="$(SigningDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  BeforeSigning
+
+    Redefine this target in your project in order to run tasks just before all signing tasks.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeSigning" />
+
+  <!--
+  ==================================================================================================
+  SignCabs
+
+    Redefine this target in your project in order to sign the cabs of your database.
+  ==================================================================================================
+  -->
+  <Target Name="SignCabs" />
+
+  <!--
+  ==================================================================================================
+  SignMsi
+
+    Redefine this target in your project in order to sign your database, after it has been inscribed
+    with the signatures of your signed cabs
+  ==================================================================================================
+  -->
+  <Target Name="SignMsi" />
+
+  <!--
+  ==================================================================================================
+  AfterSigning
+
+    Redefine this target in your project in order to run tasks just after all signing tasks.
+  ==================================================================================================
+  -->
+  <Target Name="AfterSigning" />
+
+  <!--
+
+  ================================================================================================
+  ConvertReferences
+
+    Converts project references to HeatProject items to auto generate authoring.
+  ================================================================================================
+  -->
+  <Target
+    Name="ConvertReferences"
+    Condition=" ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module') ">
+
+    <CreateItem Include="@(_MSBuildProjectReferenceExistent)" Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' " AdditionalMetadata="DirectoryIds=%(_MSBuildProjectReferenceExistent.RefTargetDir);ProjectOutputGroups=Binaries%3BSymbols%3BSources%3BContent%3BSatellites%3BDocuments;ProjectName=%(_MSBuildProjectReferenceExistent.Name);HeatOutput=$(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs">
+      <Output TaskParameter="Include" ItemName="HeatProject" />
+      <Output TaskParameter="Include" ItemName="_HeatProjectReference" />
+    </CreateItem>
+
+    <Error
+      Text="The following files are deprecated and should be removed from your project(s): @(Compile->'%(Identity)', ', ')"
+      Condition=" '%(Compile.GenerateComponentGroups)' != '' " />
+
+    <CreateItem Include="$(HarvestProjectsGeneratedFile)">
+      <!-- Unconditionally generate Compile items so they are always linked in. -->
+      <Output TaskParameter="Include" ItemName="Compile" />
+      <Output TaskParameter="Include" ItemName="_GeneratedFiles" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  ConvertBundleReferences
+
+    Converts project references in Bundle projects to HeatProject items to auto generate authoring.
+  ================================================================================================
+  -->
+  <Target
+    Name="ConvertBundleReferences"
+    Condition=" ('$(OutputType)' == 'Bundle')">
+
+    <CreateItem Include="@(_MSBuildProjectReferenceExistent)" Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' " AdditionalMetadata="ProjectOutputGroups=Binaries%3BSymbols%3BSources%3BContent%3BSatellites%3BDocuments;GenerateType=payloadgroup;HeatOutput=$(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs">
+      <Output TaskParameter="Include" ItemName="HeatProject" />
+      <Output TaskParameter="Include" ItemName="_HeatProjectReference" />
+    </CreateItem>
+
+    <Error
+      Text="The following files are deprecated and should be removed from your project(s): @(Compile->'%(Identity)', ', ')"
+      Condition=" '%(Compile.GenerateComponentGroups)' != '' " />
+
+    <CreateItem Include="$(HarvestProjectsGeneratedFile)">
+      <!-- Unconditionally generate Compile items so they are always linked in. -->
+      <Output TaskParameter="Include" ItemName="Compile" />
+      <Output TaskParameter="Include" ItemName="_GeneratedFiles" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  CombineHarvestProjects
+
+    Combines HeatProject and HarvestProject items together and ensures each has HeatOutput metadata.
+  ================================================================================================
+  -->
+  <Target Name="CombineHarvestProjects"
+    Condition=" '@(HeatProject)' != '' or '@(HarvestProject)' != '' ">
+
+    <!-- Add default HeatOutputs for those without one specified -->
+    <CreateItem Include="@(HeatProject)" Condition= " '%(HeatProject.HeatOutput)' == '' "
+    AdditionalMetadata="HeatOutput=$(IntermediateOutputPath)_%(HeatProject.Filename).wxs">
+      <Output TaskParameter="Include" ItemName="_AllHeatProjects" />
+    </CreateItem>
+    <CreateItem Include="@(HarvestProject)" Condition= " '%(HarvestProject.HeatOutput)' == '' "
+    AdditionalMetadata="HeatOutput=$(IntermediateOutputPath)_%(HarvestProject.Filename).wxs">
+      <Output TaskParameter="Include" ItemName="_AllHeatProjects" />
+    </CreateItem>
+
+
+    <CreateItem Include="@(HeatProject)" Condition= " '%(HeatProject.HeatOutput)' != '' ">
+      <Output TaskParameter="Include" ItemName="_AllHeatProjects" />
+    </CreateItem>
+    <CreateItem Include="@(HarvestProject)" Condition= " '%(HarvestProject.HeatOutput)' != '' ">
+      <Output TaskParameter="Include" ItemName="_AllHeatProjects" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  HarvestProjects
+
+    Harvests outputs of other MSBuild projects files using the VS project extension to heat.exe.
+
+    [IN]
+    @(HarvestProject)
+    @(HeatProject)
+        - The list of projects to harvest. HeatProject is provided for backward compatibility.
+          You should use HarvestProject instead.
+
+    %(HarvestProject.Transforms)
+    %(HeatProject.Transforms)
+        - XSL transforms to apply to the harvested WiX.
+
+    %(HarvestProject.ProjectOutputGroups)
+    %(HeatProjects.ProjectOutputGroups)
+        - The project output groups to harvest 
+
+    [OUT]
+    %(HeatOutput)
+        - The generated .wxs files which are added to the @(Compile) item list.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <HarvestProjectsDependsOn>CombineHarvestProjects</HarvestProjectsDependsOn>
+  </PropertyGroup>
+  <Target Name="HarvestProjects"
+    DependsOnTargets="$(HarvestProjectsDependsOn)"
+    Inputs="@(_AllHeatProjects);%(_AllHeatProjects.Transforms);$(MSBuildAllProjects);$(ProjectPath)"
+    Outputs="@(_AllHeatProjects -> '%(HeatOutput)')"
+    Condition=" '@(HeatProject)' != '' or '@(HarvestProject)' != '' ">
+
+    <!--For HeatProject items supporting MSBuild 2.0-->
+    <HeatProject
+      NoLogo="$(HarvestProjectsNoLogo)"
+      SuppressAllWarnings="$(HarvestProjectsSuppressAllWarnings)"
+      SuppressSpecificWarnings="$(HarvestProjectsSuppressSpecificWarnings)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(HarvestProjectsTreatWarningsAsErrors)"
+      TreatSpecificWarningsAsErrors="$(HarvestProjectsTreatSpecificWarningsAsErrors)"
+      VerboseOutput="$(HarvestProjectsVerboseOutput)"
+      AutogenerateGuids="$(HarvestProjectsAutogenerateGuids)"
+      GenerateGuidsNow="$(HarvestProjectsGenerateGuidsNow)"
+      OutputFile="%(_AllHeatProjects.HeatOutput)"
+      SuppressFragments="$(HarvestProjectsSuppressFragments)"
+      SuppressUniqueIds="$(HarvestProjectsSuppressUniqueIds)"
+      Transforms="%(_AllHeatProjects.Transforms)"
+      Project="%(_AllHeatProjects.FullPath)"
+      ProjectOutputGroups="%(_AllHeatProjects.ProjectOutputGroups)"
+      GenerateType="%(_AllHeatProjects.GenerateType)"
+      DirectoryIds="%(_AllHeatProjects.DirectoryIds)"
+      ProjectName="%(_AllHeatProjects.ProjectName)"
+      Configuration="%(_AllHeatProjects.Configuration)"
+      Platform="%(_AllHeatProjects.Platform)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      GenerateWixVariables="$(HarvestProjectsGenerateWixVariables)"
+      AdditionalOptions="$(HarvestProjectsAdditionalOptions)">
+
+      <Output TaskParameter="OutputFile" ItemName="Compile" />
+      <Output TaskParameter="OutputFile" ItemName="FileWrites" />
+
+    </HeatProject>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  HarvestDirectory
+
+    Harvests directories using heat.exe.
+
+    [IN]
+    @(HarvestDirectory) - The list of directories to harvest.
+    %(HarvestDirectory.Transforms) - XSL transforms to apply to the harvested WiX.
+    %(HarvestDirectory.ComponentGroupName) -  The name of the ComponentGroup to create.
+    %(HarvestDirectory.DirectoryRefId) - The ID of the directory to reference instead of TARGETDIR.
+    %(HarvestDirectory.KeepEmptyDirectories) - Whether to create Directory entries for empty directories.
+    %(HarvestDirectory.PreprocessorVariable) - Substitute SourceDir for another variable name (ex: var.Dir).
+    %(HarvestDirectory.SuppressCom) - Suppress COM elements.
+    %(HarvestDirectory.SuppressRootDirectory) - Suppress a Directory element for the root directory.
+    $(HarvestDirectory.SuppressRegistry) - Suppress registry harvesting.
+
+    [OUT]
+    $(IntermediateOutputPath)_%(HarvestDirectory.ComponentGroupName)_dir.wxs
+        - The generated .wxs files which are added to the @(Compile) item list.
+  ================================================================================================
+  -->
+
+  <PropertyGroup>
+    <HarvestDirectoryDependsOn>
+      GetHarvestDirectoryContent
+    </HarvestDirectoryDependsOn>
+  </PropertyGroup>
+
+  <!-- Creates items to include content since wildcards will not work in Target/@Inputs. -->
+  <Target Name="GetHarvestDirectoryContent">
+    <CreateItem Include="@(HarvestDirectory->'%(FullPath)\**\*')">
+      <Output TaskParameter="Include" ItemName="_HarvestDirectoryContent" />
+    </CreateItem>
+  </Target>
+
+  <Target Name="HarvestDirectory"
+    DependsOnTargets="$(HarvestDirectoryDependsOn)"
+    Inputs="@(_HarvestDirectoryContent);%(HarvestDirectory.Transforms)"
+    Outputs="$(IntermediateOutputPath)_%(HarvestDirectory.ComponentGroupName)_dir.wxs"
+    Condition=" '@(HarvestDirectory)' != '' ">
+
+    <HeatDirectory
+      NoLogo="$(HarvestDirectoryNoLogo)"
+      SuppressAllWarnings="$(HarvestDirectorySuppressAllWarnings)"
+      SuppressSpecificWarnings="$(HarvestDirectorySuppressSpecificWarnings)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(HarvestDirectoryTreatWarningsAsErrors)"
+      TreatSpecificWarningsAsErrors="$(HarvestDirectoryTreatSpecificWarningsAsErrors)"
+      VerboseOutput="$(HarvestDirectoryVerboseOutput)"
+      AutogenerateGuids="$(HarvestDirectoryAutogenerateGuids)"
+      GenerateGuidsNow="$(HarvestDirectoryGenerateGuidsNow)"
+      OutputFile="$(IntermediateOutputPath)_%(HarvestDirectory.ComponentGroupName)_dir.wxs"
+      SuppressFragments="$(HarvestDirectorySuppressFragments)"
+      SuppressUniqueIds="$(HarvestDirectorySuppressUniqueIds)"
+      Transforms="%(HarvestDirectory.Transforms)"
+      Directory="@(HarvestDirectory)"
+      ComponentGroupName="%(HarvestDirectory.ComponentGroupName)"
+      DirectoryRefId="%(HarvestDirectory.DirectoryRefId)"
+      KeepEmptyDirectories="%(HarvestDirectory.KeepEmptyDirectories)"
+      PreprocessorVariable="%(HarvestDirectory.PreprocessorVariable)"
+      SuppressCom="%(HarvestDirectory.SuppressCom)"
+      SuppressRootDirectory="%(HarvestDirectory.SuppressRootDirectory)"
+      SuppressRegistry="%(HarvestDirectory.SuppressRegistry)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      AdditionalOptions="$(HarvestDirectoryAdditionalOptions)">
+
+      <Output TaskParameter="OutputFile" ItemName="Compile" />
+      <Output TaskParameter="OutputFile" ItemName="FileWrites" />
+
+    </HeatDirectory>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  HarvestFile
+
+    Harvests files of different types using heat.exe. This can harvest registry from
+    self-registering files, files with typelibs, and more.
+
+    [IN]
+    @(HarvestFile) - The list of files to harvest.
+    %(HarvestFile.Transforms) - XSL transforms to apply to the harvested WiX.
+    %(HarvestFile.ComponentGroupName) - The name of the ComponentGroup to create.
+    %(HarvestFile.DirectoryRefId) - The ID of the directory to reference instead of TARGETDIR.
+    %(HarvestFile.PreprocessorVariable) - Substitute SourceDir for another variable name (ex: var.Dir).
+    %(HarvestFile.SuppressCom) - Suppress COM elements.
+    %(HarvestFile.SuppressRootDirectory) - Suppress a Directory element for the root directory.
+    $(HarvestFile.SuppressRegistry) - Suppress registry harvesting.
+
+    [OUT]
+    $(IntermediateOutputPath)_%(HarvestFile.Filename)_file.wxs
+        - The generated .wxs files which are added to the @(Compile) item list.
+  ================================================================================================
+  -->
+
+  <PropertyGroup>
+    <HarvestFileDependsOn></HarvestFileDependsOn>
+  </PropertyGroup>
+  <Target Name="HarvestFile"
+    DependsOnTargets="$(HarvestFileDependsOn)"
+    Inputs="@(HarvestFile);%(HarvestFile.Transforms)"
+    Outputs="$(IntermediateOutputPath)_%(HarvestFile.Filename)_file.wxs"
+    Condition=" '@(HarvestFile)' != '' ">
+
+    <HeatFile
+      NoLogo="$(HarvestFileNoLogo)"
+      SuppressAllWarnings="$(HarvestFileSuppressAllWarnings)"
+      SuppressSpecificWarnings="$(HarvestFileSuppressSpecificWarnings)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(HarvestFileTreatWarningsAsErrors)"
+      TreatSpecificWarningsAsErrors="$(HarvestFileTreatSpecificWarningsAsErrors)"
+      VerboseOutput="$(HarvestFileVerboseOutput)"
+      AutogenerateGuids="$(HarvestFileAutogenerateGuids)"
+      GenerateGuidsNow="$(HarvestFileGenerateGuidsNow)"
+      OutputFile="$(IntermediateOutputPath)_%(HarvestFile.Filename)_file.wxs"
+      SuppressFragments="$(HarvestFileSuppressFragments)"
+      SuppressUniqueIds="$(HarvestFileSuppressUniqueIds)"
+      Transforms="%(HarvestFile.Transforms)"
+      File="@(HarvestFile)"
+      ComponentGroupName="%(HarvestFile.ComponentGroupName)"
+      DirectoryRefId="%(HarvestFile.DirectoryRefId)"
+      PreprocessorVariable="%(HarvestFile.PreprocessorVariable)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)" 
+      SuppressCom="%(HarvestFile.SuppressCom)"
+      SuppressRegistry="%(HarvestFile.SuppressRegistry)"
+      SuppressRootDirectory="%(HarvestFile.SuppressRootDirectory)"
+      AdditionalOptions="$(HarvestFileAdditionalOptions)">
+
+      <Output TaskParameter="OutputFile" ItemName="Compile" />
+      <Output TaskParameter="OutputFile" ItemName="FileWrites" />
+
+    </HeatFile>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  RefreshGeneratedFile
+
+    Generates code based on metadata defined in project references.
+
+    [IN]
+    @(_MSBuildResolvedProjectReferencePaths) - The list of MSBuildable project references.
+
+    [OUT]
+    @(_GeneratedFiles) - The generated source file.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <RefreshGeneratedFileDependsOn></RefreshGeneratedFileDependsOn>
+  </PropertyGroup>
+  <Target Name="RefreshGeneratedFile"
+    DependsOnTargets="$(RefreshGeneratedFileDependsOn)"
+    Inputs="@(_MSBuildResolvedProjectReferencePaths);@(Compile);$(ProjectPath)"
+    Outputs="@(_GeneratedFiles)"
+    Condition=" ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module') and '@(_GeneratedFiles)' != '' ">
+
+    <RefreshGeneratedFile
+      GeneratedFiles="@(_GeneratedFiles)"
+      ProjectReferencePaths="@(_MSBuildResolvedProjectReferencePaths)" />
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  RefreshBundleGeneratedFile
+
+    Generates code for bundle projects based on metadata defined in project references.
+
+    [IN]
+    @(_MSBuildResolvedProjectReferencePaths) - The list of MSBuildable project references.
+
+    [OUT]
+    @(_GeneratedFiles) - The generated source file.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <RefreshBundleGeneratedFileDependsOn></RefreshBundleGeneratedFileDependsOn>
+  </PropertyGroup>
+  <Target Name="RefreshBundleGeneratedFile"
+    DependsOnTargets="$(RefreshBundleGeneratedFileDependsOn)"
+    Inputs="@(_MSBuildResolvedProjectReferencePaths);@(Compile);$(ProjectPath)"
+    Outputs="@(_GeneratedFiles)"
+    Condition=" '$(OutputType)' == 'Bundle' and '@(_GeneratedFiles)' != '' ">
+
+    <RefreshBundleGeneratedFile
+      GeneratedFiles="@(_GeneratedFiles)"
+      ProjectReferencePaths="@(_MSBuildResolvedProjectReferencePaths)" />
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  GenerateCompileWithObjectPath
+
+    Generates metadata on the for compile output objects.
+
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <GenerateCompileWithObjectPathDependsOn></GenerateCompileWithObjectPathDependsOn>
+  </PropertyGroup>
+  <Target Name="GenerateCompileWithObjectPath"
+    Condition=" '@(Compile)' != '' ">
+    <!-- If ObjectPath is defined include directly -->
+    <CreateItem
+      Include="@(Compile)"
+      Condition=" '%(Compile.ObjectPath)' != '' ">
+      <Output TaskParameter="Include" ItemName="_CompileWithObjectPath" />
+    </CreateItem>
+
+    <!-- If RelativeDir is not rooted and not in IntermediateOutputPath, and ObjectPath is undefined use IntermediateOutputPath\RelativeDir -->
+    <CreateItem
+      Include="@(Compile)"
+      Condition=" '%(RelativeDir)%(FileName)%(Extension)' != '%(FullPath)' AND '%(RelativeDir)%(FileName)%(Extension)' != '$(IntermediateOutputPath)%(FileName)%(Extension)' AND '%(Compile.ObjectPath)' == '' "
+      AdditionalMetadata="ObjectPath=$(IntermediateOutputPath)%(RelativeDir)">
+      <Output TaskParameter="Include" ItemName="_CompileWithObjectPath" />
+    </CreateItem>
+
+    <!-- If RelativeDir is rooted or in IntermediateOutputPath, and ObjectPath is undefined use IntermediateOutputPath -->
+    <CreateItem
+      Include="@(Compile)"
+      Condition=" ('%(RelativeDir)%(FileName)%(Extension)' == '%(FullPath)' OR '%(RelativeDir)%(FileName)%(Extension)' == '$(IntermediateOutputPath)%(FileName)%(Extension)') AND '%(Compile.ObjectPath)' == '' "
+      AdditionalMetadata="ObjectPath=$(IntermediateOutputPath)">
+      <Output TaskParameter="Include" ItemName="_CompileWithObjectPath" />
+    </CreateItem>
+  </Target>
+
+  <!--
+  ================================================================================================
+  Compile
+
+    Compiles the wxs files into wixobj files using candle.exe.
+
+    [IN]
+    @(Compile) - The list of wxs files to compile.
+    @(Content) - Files that the project uses in the installer.
+    @(WixExtension) - The list of wixlib or wix dll extensions.
+
+    [OUT]
+    @(CompileObjOutput) - The compiled .wixobj files.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <CompileDependsOn>
+      PrepareForBuild;
+      ResolveWixExtensionReferences;
+      GenerateCompileWithObjectPath
+    </CompileDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Compile"
+    Inputs="@(Compile);
+            @(Content);
+            @(_ResolvedWixExtensionPaths);
+            @(_ResolvedProjectReferencePaths);
+            $(MSBuildAllProjects)"
+    Outputs="@(_CompileWithObjectPath -> '%(ObjectPath)%(Filename)$(IntermediateExt)')"
+    DependsOnTargets="$(CompileDependsOn)"
+    Condition=" '@(Compile)' != '' ">
+
+    <Candle
+      SourceFiles="@(_CompileWithObjectPath)"
+      AdditionalOptions="$(CompilerAdditionalOptions)" 
+      DefineConstants="$(DefineConstants);$(SolutionDefineConstants);$(ProjectDefineConstants);$(ProjectReferenceDefineConstants)"
+      ExtensionDirectory="$(WixExtDir)"
+      Extensions="@(_ResolvedWixExtensionPaths)"
+      FipsCompliant="$(FipsCompliant)"
+      SuppressFilesVitalByDefault="$(SuppressFilesVitalByDefault)"
+      PreprocessToStdOut="$(PreprocessToStdOut)"
+      PreprocessToFile="$(PreprocessToFile)"
+      IncludeSearchPaths="$(IncludeSearchPaths)"
+      InstallerPlatform="$(InstallerPlatform)"
+      NoLogo="$(CompilerNoLogo)"
+      OnlyValidateDocuments="$(OnlyValidateDocuments)" 
+      OutputFile="%(_CompileWithObjectPath.ObjectPath)"
+      Pedantic="$(Pedantic)"
+      ReferencePaths="$(ReferencePaths)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      ShowSourceTrace="$(ShowSourceTrace)"
+      SuppressAllWarnings="$(CompilerSuppressAllWarnings)"
+      SuppressSchemaValidation="$(CompilerSuppressSchemaValidation)"
+      SuppressSpecificWarnings="$(CompilerSuppressSpecificWarnings)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(CompilerTreatWarningsAsErrors)"
+      TreatSpecificWarningsAsErrors="$(CompilerTreatSpecificWarningsAsErrors)" 
+      VerboseOutput="$(CompilerVerboseOutput)">
+    </Candle>
+
+    <CreateItem Include="@(_CompileWithObjectPath -> '%(ObjectPath)%(Filename)$(IntermediateExt)')">
+      <Output TaskParameter="Include" ItemName="CompileObjOutput" />
+    </CreateItem>
+  </Target>
+
+  <!--
+  ================================================================================================
+  Inscribe
+
+    To be called after signing an MSI's cabs - inscribes an MSI with the digital signature of its
+      external cabs.
+
+    [IN/OUT]
+    @(Inscribe) - The list of database files to inscribe - database files will be modified in-place.
+
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <InscribeDependsOn>
+      PrepareForBuild;
+      ResolveWixExtensionReferences;
+      CompileAndLink;
+      SignCabs
+    </InscribeDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Inscribe"
+    DependsOnTargets="$(InscribeDependsOn)"
+    Condition=" '@(Inscribe)' != '' and '$(OutputCabList)' != ''">
+
+    <Insignia
+      DatabaseFiles="@(Inscribe)"
+      ToolPath="$(WixToolPath)"
+      NoLogo="$(InscribeNoLogo)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      SuppressAllWarnings="$(InscribeSuppressAllWarnings)"
+      SuppressSpecificWarnings="$(InscribeSuppressSpecificWarnings)"
+      TreatWarningsAsErrors="$(InscribeTreatWarningsAsErrors)"
+      TreatSpecificWarningsAsErrors="$(InscribeTreatSpecificWarningsAsErrors)"
+      VerboseOutput="$(InscribeVerboseOutput)"
+      AdditionalOptions="$(InscribeAdditionalOptions)">
+    </Insignia>
+  </Target>
+
+  <!--
+  ================================================================================================
+  Lib
+
+    Links the .wixobj, .wxl, .wixlib, wix extensions into a .wixlib file using lit.exe.
+
+    [IN]
+    @(CompileObjOutput) - The compiled .wixobj file.
+    @(EmbeddedResource) - The list of wxl files to use for localization.
+    @(WixObject) - The list of .wixobj files.
+    @(WixLibrary) - The list of .wixlib files.
+    @(WixExtension) - The list of wix dll extension files.
+
+    [OUT]
+    $(TargetPath) - The compiled .wixlib file.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <LibDependsOn>
+      PrepareForBuild;
+      ResolveWixExtensionReferences
+    </LibDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Lib"
+    Inputs="@(CompileObjOutput);
+            @(EmbeddedResource);
+            @(WixObject);
+            @(WixLibrary);
+            @(_ResolvedWixExtensionPaths);
+            $(MSBuildAllProjects)"
+    Outputs="$(TargetPath)"
+    DependsOnTargets="$(LibDependsOn)"
+    Condition=" '$(OutputType)' == 'Library' ">
+
+    <Lit
+      ObjectFiles="@(CompileObjOutput);@(WixObject);@(WixLibProjects);@(WixLibrary)"
+      AdditionalOptions="$(LibAdditionalOptions)" 
+      BaseInputPaths="$(LinkerBaseInputPaths)"
+      BindFiles="$(LibBindFiles)"
+      ExtensionDirectory="$(WixExtDir)"
+      Extensions="@(_ResolvedWixExtensionPaths)"
+      LocalizationFiles="@(EmbeddedResource)"
+      NoLogo="$(LibNoLogo)"
+      OutputFile="$(TargetPath)"
+      Pedantic="$(LibPedantic)"
+      ReferencePaths="$(ReferencePaths)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      SuppressAllWarnings="$(LibSuppressAllWarnings)"
+      SuppressIntermediateFileVersionMatching="$(LibSuppressIntermediateFileVersionMatching)"
+      SuppressSchemaValidation="$(LibSuppressSchemaValidation)"
+      SuppressSpecificWarnings="$(LibSuppressSpecificWarnings)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(LibTreatWarningsAsErrors)"
+      VerboseOutput="$(LibVerboseOutput)" />
+  </Target>
+
+  <!--
+  ================================================================================================
+  AssignCultures
+
+    Determines the final list of culture groups to build based on either the Cultures property or
+    those specified in .wxl files. 
+    
+      Culture groups specified in the Cultures property must be specified as a semi-colon 
+      delimited  list of groups, with comma-delimited cultures within a group.  
+      For example:
+        <Cultures>en-US,en;en-GB,en</Cultures>
+      This will build 2 targets, outputing to en-US and en-GB sub-folders.  Light will first look
+      for strings in the first culture (en-US or en-GB) then the second (en).
+    
+      Cultures of .wxl files will be used when the Culture property is not set.  The culture of a 
+      .wxl file is determined by the Culture attribute in the WixLocalization element in the file
+
+    Sets the OutputFolder metadata on each culture group.  In most cases this is the same as the 
+    first culture in the culture group.  When the Culture's property is unspecified and no .wxl 
+    files are provided this is the same as the output directory.  When the Culture's property 
+    specifies a single culture group and no .wxl files are provided this is the same as the output
+    directory.
+
+    Updates the TargetPath and TargetPdbPath properties to be used in subsequent targets.
+    
+    [IN]
+    @(EmbeddedResource) - The list of wxl files to use for localization.
+    $(Cultures) - The list of culture groups to build.
+
+    [OUT]
+    @(CultureGroup) - The list of culture group strings with OutputFolder metadata
+    $(TargetPath) - Property list of target link output MSIs/MSMs
+    $(TargetPdbPath) - Property list of target output pdbs
+    
+  ================================================================================================
+  -->
+
+  <Target 
+    Name="AssignCultures"
+    Condition=" ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module')">
+    
+    <WixAssignCulture
+      Cultures="$(Cultures)"
+      Files="@(EmbeddedResource)"
+      >
+
+      <Output TaskParameter="CultureGroups" ItemName="CultureGroup" />
+    </WixAssignCulture>
+
+    <!-- Build an itemgroup of outputs -->
+    <CreateItem
+      Include="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)">
+      <Output TaskParameter="Include"
+              ItemName="_TargetPathItems"/>
+    </CreateItem>
+    
+    <!-- Convert the itemgroup to a semicolon-delimited property -->
+    <CreateProperty
+      Value="@(_TargetPathItems)">
+      <Output TaskParameter="Value"
+              PropertyName="TargetPath"/>
+    </CreateProperty>
+
+    <!-- Build an itemgroup of PDB outputs -->
+    <CreateItem
+      Include="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetPdbExt)">
+      <Output TaskParameter="Include"
+              ItemName="_TargetPdbPathItems"/>
+    </CreateItem>
+
+    <!-- Convert the itemgroup to a semicolon-delimited property -->
+    <CreateProperty
+      Value="@(_TargetPdbPathItems)">
+      <Output TaskParameter="Value"
+              PropertyName="TargetPdbPath"/>
+    </CreateProperty>
+  </Target>
+
+  <!--
+  ================================================================================================
+  Link
+
+    Links the .wixobj, .wxl, .wixlib, wix extensions into an .msi or .msm file using light.exe,
+    once per culture group. All WXL files are passed into light and the culture switch determines
+    which are used
+
+    [IN]
+    @(CompileObjOutput) - The compiled .wixobj file.
+    @(CultureGroup) - The cultures to build
+    @(EmbeddedResource) - The list of wxl files to use for localization.
+    @(WixObject) - The list of .wixobj files.
+    @(WixLibrary) - The list of .wixlib files.
+    @(WixExtension) - The list of wix dll extension files.
+
+    [OUT]
+    $(TargetDir)\%(Culture)\$(TargetName)$(TargetExt) - The compiled .msi, .msm, or .exe files.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <LinkDependsOn>
+      PrepareForBuild;
+      ResolveReferences;
+      AssignCultures;
+    </LinkDependsOn>
+  </PropertyGroup>
+  
+  <Target
+    Name="Link"
+    Inputs="@(CompileObjOutput);
+            @(EmbeddedResource);
+            @(WixObject);
+            @(_ResolvedProjectReferencePaths);
+            @(_ResolvedWixLibraryPaths);
+            @(_ResolvedWixExtensionPaths);
+            $(MSBuildAllProjects)"
+    Outputs="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)"
+    DependsOnTargets="$(LinkDependsOn)"
+    Condition=" ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module' or '$(OutputType)' == 'Bundle')">
+
+    <CreateProperty Condition=" '$(OutputType)' != 'Bundle' " Value="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetPdbExt)">
+      <Output TaskParameter="Value" PropertyName="PdbOutputFile" />
+    </CreateProperty>
+
+    <!-- Call light using the culture subdirectory for output -->
+    <Light
+      ObjectFiles="@(CompileObjOutput);@(WixObject);@(WixLibProjects);@(_ResolvedWixLibraryPaths)"
+      AdditionalOptions="$(LinkerAdditionalOptions)" 
+      AllowIdenticalRows="$(AllowIdenticalRows)"
+      AllowUnresolvedReferences="$(AllowUnresolvedReferences)"
+      AdditionalCub="$(AdditionalCub)" 
+      BackwardsCompatibleGuidGeneration="$(BackwardsCompatibleGuidGeneration)" 
+      BaseInputPaths="$(LinkerBaseInputPaths)"
+      BindFiles="$(LinkerBindFiles)"
+      CabinetCachePath="$(CabinetCachePath)"
+      CabinetCreationThreadCount="$(CabinetCreationThreadCount)"
+      Cultures="%(CultureGroup.Identity)"
+      CustomBinder="$(CustomBinder)"
+      DefaultCompressionLevel="$(DefaultCompressionLevel)"
+      DropUnrealTables="$(DropUnrealTables)"
+      ExactAssemblyVersions="$(ExactAssemblyVersions)"
+      ExtensionDirectory="$(WixExtDir)"
+      Extensions="@(_ResolvedWixExtensionPaths)"
+      Ices="$(Ices)"
+      LeaveTemporaryFiles="$(LeaveTemporaryFiles)"
+      LocalizationFiles="@(EmbeddedResource)"
+      NoLogo="$(LinkerNoLogo)"
+      OutputAsXml="$(OutputAsXml)"
+      OutputFile="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)"
+      PdbOutputFile="$(PdbOutputFile)"
+      Pedantic="$(LinkerPedantic)"
+      ReferencePaths="$(ReferencePaths)"
+      ReuseCabinetCache="$(ReuseCabinetCache)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      SetMsiAssemblyNameFileVersion="$(SetMsiAssemblyNameFileVersion)"
+      SuppressAclReset="$(SuppressAclReset)"
+      SuppressAllWarnings="$(LinkerSuppressAllWarnings)"
+      SuppressAssemblies="$(SuppressAssemblies)"
+      SuppressDefaultAdminSequenceActions="$(SuppressDefaultAdminSequenceActions)"
+      SuppressDefaultAdvSequenceActions="$(SuppressDefaultAdvSequenceActions)"
+      SuppressDefaultUISequenceActions="$(SuppressDefaultUISequenceActions)"
+      SuppressFileHashAndInfo="$(SuppressFileHashAndInfo)"
+      SuppressFiles="$(SuppressFiles)"
+      SuppressIntermediateFileVersionMatching="$(LinkerSuppressIntermediateFileVersionMatching)"
+      SuppressIces="$(SuppressIces)"
+      SuppressLayout="$(SuppressLayout)"
+      SuppressLocalization="$(SuppressLocalization)"
+      SuppressMsiAssemblyTableProcessing="$(SuppressMsiAssemblyTableProcessing)"
+      SuppressPdbOutput="$(SuppressPdbOutput)"
+      SuppressSchemaValidation="$(LinkerSuppressSchemaValidation)"
+      SuppressValidation="$(SuppressValidation)"
+      SuppressSpecificWarnings="$(LinkerSuppressSpecificWarnings)"
+      SuppressTagSectionIdAttributeOnTuples="$(SuppressTagSectionIdAttributeOnTuples)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(LinkerTreatWarningsAsErrors)"
+      UnreferencedSymbolsFile="$(UnreferencedSymbolsFile)"
+      VerboseOutput="$(LinkerVerboseOutput)"
+      WixVariables="$(WixVariables)" />
+
+    <GetCabList Database="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)"
+        Condition="('$(OutputType)' == 'Package' or '$(OutputType)' == 'Module') and '$(OutputAsXml)' != 'true' " >
+      <Output TaskParameter="CabList" PropertyName="OutputCabs" />
+      <Output TaskParameter="CabList" ItemName="FileWrites" />
+    </GetCabList>
+
+    <GetLooseFileList Database="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)"
+        Condition="('$(OutputType)' == 'Package' or '$(OutputType)' == 'Module') and '$(OutputAsXml)' != 'true' " >
+      <Output TaskParameter="LooseFileList" ItemName="FileWrites" />
+    </GetLooseFileList>
+
+    <CreateItem Include="$(OutputCabs)" >
+      <Output TaskParameter="Include" ItemName="OutputCabList" />
+    </CreateItem>
+   
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  IncrementalClean Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  IncrementalClean
+
+    Remove files that were produced in a prior build but weren't produced in the current build.
+    The reason is that if, for example, the name of the .msi/.msm has changed we want to delete the
+    old copy.
+
+    Leave the Clean cache file containing only the files produced in the current build.
+  ==================================================================================================
+  -->
+  <Target
+    Name="IncrementalClean"
+    DependsOnTargets="_CleanGetCurrentAndPriorFileWrites">
+
+    <!-- Subtract list of files produced in prior builds from list of files produced in this build. -->
+    <CreateItem Include="@(_CleanPriorFileWrites)" Exclude="@(_CleanCurrentFileWrites)">
+      <Output TaskParameter="Include" ItemName="_CleanOrphanFileWrites" />
+    </CreateItem>
+
+    <!-- Find all files in the final output directory. -->
+    <FindUnderPath Path="$(OutDir)" Files="@(_CleanOrphanFileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanOrphanFileWritesInOutput" />
+    </FindUnderPath>
+
+    <!-- Find all files in the intermediate output directory. -->
+    <FindUnderPath Path="$(IntermediateOutputPath)" Files="@(_CleanOrphanFileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanOrphanFileWritesInIntermediate" />
+    </FindUnderPath>
+
+    <!-- Delete the orphaned files. -->
+    <Delete
+      Files="@(_CleanOrphanFileWritesInIntermediate);@(_CleanOrphanFileWritesInOutput)"
+      TreatErrorsAsWarnings="true">
+
+      <Output TaskParameter="DeletedFiles" ItemName="_CleanOrphanFilesDeleted" />
+    </Delete>
+
+    <!-- Create a list of everything that wasn't deleted. -->
+    <CreateItem Include="@(_CleanPriorFileWrites);@(_CleanCurrentFileWrites)" Exclude="@(_CleanOrphanFilesDeleted)">
+      <Output TaskParameter="Include" ItemName="_CleanRemainingFileWritesAfterIncrementalClean" />
+    </CreateItem>
+
+    <!-- Remove duplicates. -->
+    <RemoveDuplicates Inputs="@(_CleanRemainingFileWritesAfterIncrementalClean)">
+      <Output TaskParameter="Filtered" ItemName="_CleanUniqueRemainingFileWritesAfterIncrementalClean" />
+    </RemoveDuplicates>
+
+    <!-- Make sure the directory exists. -->
+    <MakeDir Directories="$(IntermediateOutputPath)" />
+
+    <!-- Write new list of current files back to disk, replacing the existing list.-->
+    <WriteLinesToFile
+      File="$(IntermediateOutputPath)$(CleanFile)"
+      Lines="@(_CleanUniqueRemainingFileWritesAfterIncrementalClean)"
+      Overwrite="true" />
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  _CleanGetCurrentAndPriorFileWrites
+
+    Get the list of files built in the current build and in prior builds.
+  ==================================================================================================
+  -->
+  <Target
+    Name="_CleanGetCurrentAndPriorFileWrites"
+    DependsOnTargets="_CheckForCompileAndLinkOutputs">
+
+    <!-- Read the list of files produced by a prior builds from disk. -->
+    <ReadLinesFromFile File="$(IntermediateOutputPath)$(CleanFile)">
+      <Output TaskParameter="Lines" ItemName="_CleanPriorFileWrites" />
+    </ReadLinesFromFile>
+
+    <!-- Find all files in the final output directory. -->
+    <FindUnderPath Path="$(OutDir)" Files="@(FileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanCurrentFileWritesInOutput" />
+    </FindUnderPath>
+
+    <!-- Find all files in the intermediate output directory. -->
+    <FindUnderPath Path="$(IntermediateOutputPath)" Files="@(FileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanCurrentFileWritesInIntermediate" />
+    </FindUnderPath>
+
+    <!-- Remove duplicates from files produced in this build. -->
+    <RemoveDuplicates Inputs="@(_CleanCurrentFileWritesInOutput);@(_CleanCurrentFileWritesInIntermediate)">
+      <Output TaskParameter="Filtered" ItemName="_CleanCurrentFileWrites" />
+    </RemoveDuplicates>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  _CheckForCompileAndLinkOutputs
+
+    Checks each file output from the main CompileAndLink target to make sure they really exist.
+    If they do, then record them in the clean cache.
+  ==================================================================================================
+  -->
+  <Target Name="_CheckForCompileAndLinkOutputs">
+
+    <!--Record the main compile outputs -->
+    <CreateItem Include="@(CompileObjOutput)" Condition="Exists('%(FullPath)')">
+      <Output TaskParameter="Include" ItemName="FileWrites" />
+    </CreateItem>
+
+    <!-- Record the link ouput(s) -->
+    <!-- Stuff into an itemgroup -->
+    <CreateItem Include="$(TargetPath);$(TargetPdbPath)">
+      <Output TaskParameter="Include" ItemName="_TempTargetOutputs" />
+    </CreateItem>
+
+    <CreateItem Include="@(_TempTargetOutputs)" Condition="Exists('%(FullPath)')">
+      <Output TaskParameter="Include" ItemName="FileWrites" />
+    </CreateItem>
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Clean Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  Clean
+
+    Delete all intermediate and final build outputs.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <CleanDependsOn>
+      BeforeClean;
+      CleanReferencedProjects;
+      CoreClean;
+      AfterClean
+    </CleanDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Clean"
+    DependsOnTargets="$(CleanDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  BeforeClean
+
+    Redefine this target in your project in order to run tasks just before Clean.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeClean" />
+
+  <!--
+  ==================================================================================================
+  AfterClean
+
+    Redefine this target in your project in order to run tasks just after Clean.
+  ==================================================================================================
+  -->
+  <Target Name="AfterClean" />
+
+  <!--
+  ==================================================================================================
+  CleanReferencedProjects
+
+    Call Clean target on all Referenced Projects.
+  ==================================================================================================
+  -->
+  <Target
+    Name="CleanReferencedProjects">
+
+    <!-- TODO -->
+    <!--
+    When building the project directly from the command-line, clean those referenced projects that
+    exist on disk. For IDE builds and command-line .SLN builds, the solution build manager takes
+    care of this.
+    -->
+    <!--MSBuild
+      Projects="@(_MSBuildProjectReferenceExistent)"
+      Targets="Clean"
+      Condition=" '$(BuildingInsideVisualStudio)' != 'true' and '$(BuildingSolutionFile)' != 'true' and '@(_MSBuildProjectReferenceExistent)' != '' " /-->
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  CoreClean
+
+    Cleans all of the compile and link outputs as well as any intermediate files generated along
+    the way.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <CoreCleanDependsOn></CoreCleanDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="CoreClean"
+    DependsOnTargets="$(CoreCleanDependsOn)">
+
+    <!-- Read in list of files that were written to disk in past builds. -->
+    <ReadLinesFromFile File="$(IntermediateOutputPath)$(CleanFile)">
+      <Output TaskParameter="Lines" ItemName="_CleanPriorFileWrites" />
+    </ReadLinesFromFile>
+
+    <!-- Find all files in the final output directory. -->
+    <FindUnderPath Path="$(OutDir)" Files="@(_CleanPriorFileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanPriorFileWritesInOutput" />
+    </FindUnderPath>
+
+    <!-- Find all files in the intermediate output directory. -->
+    <FindUnderPath Path="$(IntermediateOutputPath)" Files="@(_CleanPriorFileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanPriorFileWritesInIntermediate" />
+    </FindUnderPath>
+
+    <!-- Delete those files. -->
+    <Delete Files="@(_CleanPriorFileWritesInOutput);@(_CleanPriorFileWritesInIntermediate)" TreatErrorsAsWarnings="true">
+      <Output TaskParameter="DeletedFiles" ItemName="_CleanPriorFileWritesDeleted" />
+    </Delete>
+
+    <!-- Create a list of everything that wasn't deleted. -->
+    <CreateItem Include="@(_CleanPriorFileWrites)" Exclude="@(_CleanPriorFileWritesDeleted)">
+      <Output TaskParameter="Include" ItemName="_CleanRemainingFileWritesAfterClean" />
+    </CreateItem>
+
+    <!-- Remove duplicates. -->
+    <RemoveDuplicates Inputs="@(_CleanRemainingFileWritesAfterClean)">
+      <Output TaskParameter="Filtered" ItemName="_CleanUniqueRemainingFileWrites" />
+    </RemoveDuplicates>
+
+    <!-- Make sure the directory exists. -->
+    <MakeDir Directories="$(IntermediateOutputPath)" />
+
+    <!-- Write new list of current files back to disk. -->
+    <WriteLinesToFile File="$(IntermediateOutputPath)$(CleanFile)" Lines="@(_CleanUniqueRemainingFileWrites)" Overwrite="true" />
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  _CleanRecordFileWrites
+
+    Save the list of all files written to disk so that it can be used for "Clean" later.
+    Files written in prior builds are not removed from Clean cache.
+  ==================================================================================================
+  -->
+  <Target
+    Name="_CleanRecordFileWrites"
+    DependsOnTargets="_CleanGetCurrentAndPriorFileWrites">
+
+    <!-- Merge list of files from prior builds with the current build and then remove duplicates. -->
+    <RemoveDuplicates Inputs="@(_CleanPriorFileWrites);@(_CleanCurrentFileWrites)">
+      <Output TaskParameter="Filtered" ItemName="_CleanUniqueFileWrites" />
+    </RemoveDuplicates>
+
+    <!-- Make sure the directory exists. -->
+    <MakeDir Directories="$(IntermediateOutputPath)" />
+
+    <!-- Write merged file list back to disk, replacing existing contents. -->
+    <WriteLinesToFile
+        File="$(IntermediateOutputPath)$(CleanFile)"
+        Lines="@(_CleanUniqueFileWrites)"
+        Overwrite="true" />
+
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  PostBuildEvent Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  PostBuildEvent
+
+    Run the post-build event. This step is driven by two parameters:
+
+    1) $(RunPostBuildEvent) is set by the user through the IDE and can be one of four values:
+       1) OnBuildSuccess: In this case, every step of the build must succeed for the post-build
+          step to run.
+       2) <Blank>: This is the same as OnBuildSuccess.
+       3) OnOutputUpdated: In this case, the post-build step will run only if the main output was
+          actually updated.
+       4) Always: The post-build step is always run.
+
+    2) $(_TargetOutputTimestampBeforeCompileAndLink) and $(_TargetOutputTimestampAfterCompileAndLink)
+       are set by the _TimeStampBeforeCompileAndLink and _TimeStampAfterCompileAndLink targets. If
+       the output was actually rebuilt during this build, then the two values will be different.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <PostBuildEventDependsOn>GetTargetPath</PostBuildEventDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="PostBuildEvent"
+    Condition=" '$(PostBuildEvent)' != '' and
+      ( '$(RunPostBuildEvent)' != 'OnOutputUpdated' or '$(_TargetOutputTimestampBeforeCompileAndLink)' != '$(_TargetOutputTimestampAfterCompileAndLink)' )"
+    DependsOnTargets="$(PostBuildEventDependsOn)">
+
+    <ReplaceString
+      Text="$(PostBuildEvent)"
+      OldValue="!(TargetPath)"
+      NewValue="$(TargetPath)">
+      
+      <Output TaskParameter="Text" PropertyName="ExpandedPostBuildEvent" />
+    </ReplaceString>
+
+    <ReplaceString
+      Text="$(ExpandedPostBuildEvent)"
+      OldValue="!(TargetPdbPath)"
+      NewValue="$(TargetPdbPath)">
+      
+      <Output TaskParameter="Text" PropertyName="ExpandedPostBuildEvent" />
+    </ReplaceString>
+
+    <Exec WorkingDirectory="$(OutDir)" Command="$(ExpandedPostBuildEvent)" />
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  AllProjectOutputGroups Section
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  AllProjectOutputGroups
+
+    The targets below drive output groups, which provide generic information about a
+    project's inputs (e.g., content files, compilation sources, etc.) and built outputs
+    (e.g., built EXE/DLL, PDB, XML documentation files, etc.)
+
+    Each target may produce two kinds of items:  outputs and dependencies. Outputs are
+    items from the current project; dependencies are items that are brought into the
+    current project as a result of referencing other projects or components.
+
+    For both outputs and dependencies, the Include attribute
+    specifies the location of the output/dependency; it must be a full path. Any number
+    of additional attributes may be placed on an output/dependency item.
+  ==================================================================================================
+  -->
+  <Target
+    Name="AllProjectOutputGroups"
+    DependsOnTargets="
+      BuiltProjectOutputGroup;
+      DebugSymbolsProjectOutputGroup;
+      DocumentationProjectOutputGroup;
+      SatelliteDllsProjectOutputGroup;
+      SourceFilesProjectOutputGroup;
+      ContentFilesProjectOutputGroup;
+      SGenFilesOutputGroup" />
+
+  <!-- 
+  This is the key output for the BuiltProjectOutputGroup and is meant to be read directly from the IDE.
+  Reading an item is faster than invoking a target.
+  -->
+  <ItemGroup>
+    <BuiltProjectOutputGroupKeyOutput Include="$(TargetPath)">
+      <IsKeyOutput>true</IsKeyOutput>
+      <FinalOutputPath>$(TargetPath)</FinalOutputPath>
+      <TargetPath>$(TargetFileName)</TargetPath>
+    </BuiltProjectOutputGroupKeyOutput>
+  </ItemGroup>
+  
+  
+
+  <!--
+  ==================================================================================================
+  BuiltProjectOutputGroup
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <BuiltProjectOutputGroupDependsOn>PrepareForBuild;AssignCultures</BuiltProjectOutputGroupDependsOn>
+    <AddAppConfigToBuildOutputs Condition="('$(AddAppConfigToBuildOutputs)' == '') and ('$(OutputType)' != 'library')">true</AddAppConfigToBuildOutputs>
+  </PropertyGroup>
+  <Target
+    Name="BuiltProjectOutputGroup"
+    Outputs="@(BuiltProjectOutputGroupOutput)"
+    DependsOnTargets="$(BuiltProjectOutputGroupDependsOn)">
+
+    <!-- Don't add BuiltProjectOutputGroupKeyOutput - to avoid duplicates, we only want to get the updated list of TargetPaths from the TargetPath property below -->
+
+    <!-- Convert intermediate items into final items; this way we can get the full path for each item -->
+    <CreateItem Include="@(_BuiltProjectOutputGroupOutputIntermediate->'%(FullPath)')">
+      <Output TaskParameter="Include" ItemName="BuiltProjectOutputGroupOutput" />
+    </CreateItem>
+
+    <!-- Include build output(s).  Different than predefined itemgroup since AssignCultures target may change it -->
+    <CreateItem
+      Include="$(TargetPath)">
+      <Output TaskParameter="Include" ItemName="BuiltProjectOutputGroupOutput" />
+    </CreateItem>
+
+    <GetCabList Database="@(BuiltProjectOutputGroupKeyOutput)" Condition="('$(OutputType)' == 'Package' or '$(OutputType)' == 'Module')">
+      <Output TaskParameter="CabList" ItemName="BuiltProjectOutputGroupOutput" />
+    </GetCabList>
+
+    <GetLooseFileList Database="@(BuiltProjectOutputGroupKeyOutput)" Condition="('$(OutputType)' == 'Package' or '$(OutputType)' == 'Module')" >
+      <Output TaskParameter="LooseFileList" ItemName="BuiltProjectOutputGroupOutput" />
+    </GetLooseFileList>
+  </Target>
+
+  <!--
+  ==================================================================================================
+  DebugSymbolsProjectOutputGroup
+
+    Populates the Debug Symbols project output group.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <DebugSymbolsProjectOutputGroupDependsOn>AssignCultures</DebugSymbolsProjectOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="DebugSymbolsProjectOutputGroup"
+    Outputs="@(DebugSymbolsProjectOutputGroupOutput)"
+    DependsOnTargets="$(DebugSymbolsProjectOutputGroupDependsOn)">
+
+    <!-- Include build output pdb(s).  Different than predefined itemgroup since AssignCultures target may change -->
+    <CreateItem
+      Include="$(TargetPdbPath)"
+      Condition=" '$(SuppressPdbOutput)' != 'true' ">
+      <Output TaskParameter="Include" ItemName="DebugSymbolsProjectOutputGroupOutput" />
+    </CreateItem>
+  </Target>
+
+  <!--
+  ==================================================================================================
+  DocumentationProjectOutputGroup
+
+    Populates the Documentation project output group.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <DocumentationProjectOutputGroupDependsOn></DocumentationProjectOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="DocumentationProjectOutputGroup"
+    Outputs="@(DocumentationProjectOutputGroupOutput)"
+    DependsOnTargets="$(DocumentationProjectOutputGroupDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  SatelliteDllsProjectOutputGroup
+
+    Populates the Satellite Files project output group.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <SatelliteDllsProjectOutputGroupDependsOn>PrepareForBuild</SatelliteDllsProjectOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="SatelliteDllsProjectOutputGroup"
+    Outputs="@(SatelliteDllsProjectOutputGroupOutput)"
+    DependsOnTargets="$(SatelliteDllsProjectOutputGroupDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  SourceFilesProjectOutputGroup
+
+    Populates the Source Files project output group.
+    Source files are items in the project whose type is "Compile" and "EmbeddedResource".
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <SourceFilesProjectOutputGroupDependsOn>PrepareForBuild</SourceFilesProjectOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="SourceFilesProjectOutputGroup"
+    Outputs="@(SourceFilesProjectOutputGroupOutput)"
+    DependsOnTargets="$(SourceFilesProjectOutputGroupDependsOn)">
+
+    <AssignTargetPath Files="@(Compile)" RootFolder="$(MSBuildProjectDirectory)">
+      <Output TaskParameter="AssignedFiles" ItemName="_CompileWithTargetPath"  />
+    </AssignTargetPath>
+
+    <AssignTargetPath Files="@(EmbeddedResource)" RootFolder="$(MSBuildProjectDirectory)">
+      <Output TaskParameter="AssignedFiles" ItemName="_EmbeddedResourceWithTargetPath" />
+    </AssignTargetPath>
+
+    <!-- First we deal with Compile and EmbeddedResource -->
+    <CreateItem Include="@(_CompileWithTargetPath->'%(FullPath)');@(_EmbeddedResourceWithTargetPath->'%(FullPath)')">
+      <Output TaskParameter="Include" ItemName="SourceFilesProjectOutputGroupOutput" />
+    </CreateItem>
+
+    <!-- Include the project file -->
+    <CreateItem Include="$(MSBuildProjectFullPath)" AdditionalMetadata="TargetPath=$(ProjectFileName)">
+      <Output TaskParameter="Include" ItemName="SourceFilesProjectOutputGroupOutput" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  ContentFilesProjectOutputGroup
+
+    Populates the Content Files project output group.
+    Content files are items in the project whose type is "Content".
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <ContentFilesProjectOutputGroupDependsOn>PrepareForBuild</ContentFilesProjectOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="ContentFilesProjectOutputGroup"
+    Outputs="@(ContentFilesProjectOutputGroupOutput)"
+    DependsOnTargets="$(ContentFilesProjectOutputGroupDependsOn)">
+
+    <AssignTargetPath Files="@(Content)" RootFolder="$(MSBuildProjectDirectory)">
+      <Output TaskParameter="AssignedFiles" ItemName="ContentWithTargetPath" />
+    </AssignTargetPath>
+
+    <!-- Convert items into final items; this way we can get the full path for each item. -->
+    <CreateItem Include="@(ContentWithTargetPath->'%(FullPath)')">
+      <Output TaskParameter="Include" ItemName="ContentFilesProjectOutputGroupOutput" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  SGenFilesOutputGroup
+
+    Populates the GenerateSerializationAssemblies Files project output group.
+    GenerateSerializationAssemblies files are those generated by the GenerateSerializationAssemblies
+    target and task.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <SGenFilesOutputGroupDependsOn></SGenFilesOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="SGenFilesOutputGroup"
+    Outputs="@(SGenFilesOutputGroupOutput)"
+    DependsOnTargets="$(SGenFilesOutputGroupDependsOn)" />
+
+  <!-- Extension point: Define CustomAfterWixTargets to a .targets file that you want to include after this file. -->
+  <Import Project="$(CustomAfterWixTargets)" Condition=" '$(CustomAfterWixTargets)' != '' and Exists('$(CustomAfterWixTargets)')" />
+
+  <!-- MSBuildToolsVersion is set for MSBuild 3.5 and later, which is a requirement for lux.targets. -->
+  <Import Project="$(LuxTargetsPath)" Condition=" '$(MSBuildToolsVersion)' != '' and '$(LuxTargetsPath)' != '' and Exists('$(LuxTargetsPath)')" />
+</Project>
diff --git a/wix2010.targets b/wix2010.targets
new file mode 100644
index 0000000..883c91b
--- /dev/null
+++ b/wix2010.targets
@@ -0,0 +1,2692 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+****************************************************************************************************
+wix.targets
+
+WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
+          created a backup copy.  Incorrect changes to this file will make it
+          impossible to load or build your projects from the command-line or the IDE.
+
+This file defines the steps in the standard build process for WiX projects (.wixproj).
+
+Conventions:
+  * Targets and properties that start with an underscore (_) are considered private and should not
+    be used outside of this file.
+
+Coding Conventions:
+  * Two-space indentation of nested elements
+
+  * Self-closing elements should have a space before the /> ("<MyProperty />")
+
+  * Conditions should have a space before and after the "" and between any operators. For example:
+    <MyProperty Condition=" '$(MyProperty)' == '' ">Value</MyProperty>
+
+  * Targets should have each attribute on a single line and indented by two spaces. Also, there
+    should be a blank line between the Target and the beginning of the contents (a blank line is
+    optional before the closing </Target> tag).
+    For example:
+    <Target
+      Name="MyTarget"
+      DependsOnTargets="$(MyTargetDependsOn)">
+
+      <Message Importance="low" Text="MyTarget is doing something." />
+    </Target>
+
+Copyright (c) Microsoft Corporation. All rights reserved.
+****************************************************************************************************
+-->
+<Project
+  xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
+  InitialTargets="_CheckForInvalidConfigurationAndPlatform;
+                  _CheckRequiredProperties">
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Extension Points
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!-- Allow a user-customized targets files to be used as part of the build. -->
+  <PropertyGroup>
+    <UserTargetsPath>$(MSBuildProjectFullPath).user</UserTargetsPath>
+  </PropertyGroup>
+  <Import Project="$(UserTargetsPath)" Condition="Exists('$(UserTargetsPath)')" />
+  <Import Project="$(CustomBeforeWixTargets)" Condition=" '$(CustomBeforeWixTargets)' != '' and Exists('$(CustomBeforeWixTargets)')" />
+
+  <!-- These properties can be overridden to support non-default installations. -->
+  <PropertyGroup>
+    <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
+    <WixTasksPath Condition=" '$(WixTasksPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\WixTasks.dll</WixTasksPath>
+    <WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
+    <WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\WixTasks.dll</WixTasksPath>
+    <LuxTargetsPath Condition=" '$(LuxTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Lux.targets</LuxTargetsPath>
+    <LuxTasksPath Condition=" '$(LuxTasksPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\LuxTasks.dll</LuxTasksPath>
+    <LuxTargetsPath Condition=" '$(LuxTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Lux.targets</LuxTargetsPath>
+    <LuxTasksPath Condition=" '$(LuxTasksPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\LuxTasks.dll</LuxTasksPath>
+  </PropertyGroup>
+
+  <!-- This makes the project files a dependency of all targets so that things rebuild if they change -->
+  <PropertyGroup> 
+    <MSBuildAllProjects Condition="Exists('$(MSBuildProjectFullPath)')">$(MSBuildAllProjects);$(MSBuildProjectFullPath)</MSBuildAllProjects>
+    <MSBuildAllProjects Condition="Exists('$(WixTargetsPath)')">$(MSBuildAllProjects);$(WixTargetsPath)</MSBuildAllProjects>
+    <MSBuildAllProjects Condition="Exists('$(LuxTargetsPath)')">$(MSBuildAllProjects);$(LuxTargetsPath)</MSBuildAllProjects>
+    <MSBuildAllProjects Condition="Exists('$(UserTargetsPath)')">$(MSBuildAllProjects);$(UserTargetsPath)</MSBuildAllProjects>
+    <MSBuildAllProjects Condition="Exists('$(CustomBeforeWixTargets)')">$(MSBuildAllProjects);$(CustomBeforeWixTargets)</MSBuildAllProjects>
+    <MSBuildAllProjects Condition="Exists('$(CustomAfterWixTargets)')">$(MSBuildAllProjects);$(CustomAfterWixTargets)</MSBuildAllProjects>
+  </PropertyGroup>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Property Declarations
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!-- These tasks can be used as general-purpose build tasks. -->
+  <UsingTask TaskName="Candle" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="Insignia" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="Lit" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="Light" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="Torch" AssemblyFile="$(WixTasksPath)" />
+
+  <!-- These tasks are extensions for harvesting WiX source code from other sources. -->
+  <UsingTask TaskName="HeatFile" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="HeatDirectory" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="HeatProject" AssemblyFile="$(WixTasksPath)" />
+
+  <!-- These tasks are specific to the build process defined in this file, and are not considered general-purpose build tasks. -->
+  <UsingTask TaskName="AssignProjectConfiguration" AssemblyName="Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <UsingTask TaskName="AssignTargetPath" AssemblyName="Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <UsingTask TaskName="ResolveNonMSBuildProjectOutput" AssemblyName="Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+  <UsingTask TaskName="ResolveVCProjectOutput" AssemblyName="Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+
+  <UsingTask TaskName="CreateProjectReferenceDefineConstants" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="WixAssignCulture" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="ResolveWixReferences" AssemblyFile="$(WixTasksPath)"/>
+  <UsingTask TaskName="ReplaceString" AssemblyFile="$(WixTasksPath)"/>
+  <UsingTask TaskName="GetCabList" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="GetLooseFileList" AssemblyFile="$(WixTasksPath)" />
+  <UsingTask TaskName="RefreshGeneratedFile" AssemblyFile="$(WixTasksPath)"/>
+  <UsingTask TaskName="RefreshBundleGeneratedFile" AssemblyFile="$(WixTasksPath)"/>
+
+  <!-- WiX tools are 32bit EXEs, so run them out-of-proc when MSBuild is not 32bit. -->
+  <PropertyGroup>
+    <RunWixToolsOutOfProc Condition=" '$(PROCESSOR_ARCHITECTURE)'!='x86' ">true</RunWixToolsOutOfProc>
+  </PropertyGroup>
+
+  <!--
+  Several properties must be set in the main project file, before using this .targets file.
+  However, if the properties are not set, we pick some defaults.
+
+  OutDir:
+  Indicates the final output location for the project or solution. When building a solution,
+  OutDir can be used to gather multiple project outputs in one location. In addition,
+  OutDir is included in AssemblySearchPaths used for resolving references.
+
+  OutputPath:
+  This property is usually specified in the project file and is used to initialize OutDir.
+  OutDir and OutputPath are distinguished for legacy reasons, and OutDir should be used if at all possible.
+
+  BaseIntermediateOutputPath:
+  This is the top level folder where all configuration specific intermediate output folders will be created.
+  Default value is obj\
+
+  IntermediateOutputPath:
+  This is the full intermediate Output Path, and is derived from BaseIntermediateOutputPath, if none specified
+  (eg. obj\debug). If this property is overridden, then setting BaseIntermediateOutputPath has no effect.
+  -->
+
+  <PropertyGroup>
+    <!-- Ensure any OutputPath has a trailing slash, so it can be concatenated -->
+    <OutputPath Condition="'$(OutputPath)' != '' and !HasTrailingSlash('$(OutputPath)')">$(OutputPath)\</OutputPath>
+    <AssemblyName Condition=" '$(AssemblyName)'=='' ">$(MSBuildProjectName)</AssemblyName>
+    <!--
+    Be careful not to give OutputPath a default value in the case of an invalid Configuration/Platform.
+    We use OutputPath specifically to check for invalid configurations/platforms.
+    -->
+    <OutputPath Condition=" '$(Platform)'=='' and '$(Configuration)'=='' and '$(OutputPath)'=='' ">bin\Debug\</OutputPath>
+    <_OriginalConfiguration>$(Configuration)</_OriginalConfiguration>
+    <_OriginalPlatform>$(Platform)</_OriginalPlatform>
+    <Configuration Condition=" '$(Configuration)'=='' ">Debug</Configuration>
+    <ConfigurationName Condition=" '$(ConfigurationName)' == '' ">$(Configuration)</ConfigurationName>      <!-- Example, Debug -->
+    <Platform Condition=" '$(Platform)'=='' ">AnyCPU</Platform>
+    <_OriginalOutputType>$(OutputType)</_OriginalOutputType>
+    <OutputType Condition=" '$(OutputType)' == '' ">Package</OutputType>
+    <BuildProjectReferences Condition="'$(BuildProjectReferences)' == ''">true</BuildProjectReferences>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(OutputPath)' == '' ">
+      <!--
+      A blank OutputPath at this point means that the user passed in an invalid Configuration/Platform
+      combination.  Whether this is considered an error or a warning depends on the value of
+      $(SkipInvalidConfigurations).
+      -->
+      <_InvalidConfigurationError Condition=" '$(SkipInvalidConfigurations)' != 'true' ">true</_InvalidConfigurationError>
+      <_InvalidConfigurationWarning Condition=" '$(SkipInvalidConfigurations)' == 'true' ">true</_InvalidConfigurationWarning>
+  </PropertyGroup>
+
+  <!-- Properties for the intermediate object output -->
+  <PropertyGroup>
+    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">obj\</BaseIntermediateOutputPath>
+    <BaseIntermediateOutputPath Condition="!HasTrailingSlash('$(BaseIntermediateOutputPath)')">$(BaseIntermediateOutputPath)\</BaseIntermediateOutputPath>
+    <IntermediateExt Condition=" '$(IntermediateExt)' == '' ">.wixobj</IntermediateExt>
+    <CleanFile Condition=" '$(CleanFile)' == '' ">$(MSBuildProjectFile).FileList.txt</CleanFile>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" $(IntermediateOutputPath) == '' ">
+      <IntermediateOutputPath Condition=" '$(PlatformName)' == 'AnyCPU' ">$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
+      <IntermediateOutputPath Condition=" '$(PlatformName)' != 'AnyCPU' ">$(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\</IntermediateOutputPath>
+  </PropertyGroup>
+  <PropertyGroup>
+      <IntermediateOutputPath Condition="!HasTrailingSlash('$(IntermediateOutputPath)')">$(IntermediateOutputPath)\</IntermediateOutputPath>
+  </PropertyGroup>
+  <ItemGroup>
+      <IntermediateAssembly Include="$(IntermediateOutputPath)$(TargetName)$(TargetExt)"/>
+      <FinalDocFile Include="@(DocFileItem->'$(OutDir)%(Filename)%(Extension)')"/>
+  </ItemGroup>
+
+  <PropertyGroup>
+    <WixToolPath Condition=" '$(WixToolPath)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Installer XML\3.5@InstallRoot)</WixToolPath>
+    <WixToolPath Condition=" '$(WixToolPath)' == ''">$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows Installer XML\3.5@InstallRoot)</WixToolPath>
+    <WixExtDir Condition=" '$(WixExtDir)' == ''">$(WixToolPath)</WixExtDir>
+  </PropertyGroup>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  IDE Macro Property Declarations
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  IDE Macros available from both integrated builds and from command line builds.
+  The following properties are 'macros' that are available via IDE for pre and post build steps.
+  All of them should be added to WixBuildMacroCollection to ensure that they are shown in the UI.
+  -->
+  <PropertyGroup>
+    <TargetExt Condition=" '$(OutputType)' == 'Package' ">.msi</TargetExt>
+    <TargetExt Condition=" '$(OutputType)' == 'Module' ">.msm</TargetExt>
+    <TargetExt Condition=" '$(OutputType)' == 'PatchCreation' ">.pcp</TargetExt>
+    <TargetExt Condition=" '$(OutputType)' == 'Library' ">.wixlib</TargetExt>
+    <TargetExt Condition=" '$(OutputType)' == 'Bundle' ">.exe</TargetExt>
+  </PropertyGroup>
+
+  <PropertyGroup>
+    <!-- Example, bin\Debug\ -->
+    <OutDir Condition=" '$(OutDir)' == '' ">$(OutputPath)</OutDir>
+    <!-- Ensure OutDir has a trailing slash, so it can be concatenated -->
+    <OutDir Condition=" '$(OutDir)' != '' and !HasTrailingSlash('$(OutDir)') ">$(OutDir)\</OutDir>
+
+    <!-- Example, MySetup -->
+    <ProjectName Condition=" '$(ProjectName)' == '' ">$(MSBuildProjectName)</ProjectName>
+
+    <!-- Example, MySetup.wixproj -->
+    <ProjectFileName Condition=" '$(ProjectFileName)' == '' ">$(MSBuildProjectFile)</ProjectFileName>
+
+    <!-- Example, .wixproj -->
+    <ProjectExt Condition=" '$(ProjectExt)' == '' ">$(MSBuildProjectExtension)</ProjectExt>
+
+    <!-- Example, c:\MyProjects\MySetup\ -->
+    <ProjectDir Condition=" '$(ProjectDir)' == '' ">$(MSBuildProjectDirectory)\</ProjectDir>
+
+    <!-- Example, c:\MyProjects\MySetup\MySetup.msi -->
+    <ProjectPath Condition=" '$(ProjectPath)' == '' ">$(ProjectDir)$(ProjectFileName)</ProjectPath>
+
+    <!-- Example, .wixpdb -->
+    <TargetPdbExt Condition=" '$(TargetPdbExt)' == '' ">.wixpdb</TargetPdbExt>
+
+    <!-- Example, MySetup -->
+    <TargetName Condition=" '$(TargetName)' == '' ">$(OutputName)</TargetName>
+
+    <!-- Example, MySetup.msi -->
+    <TargetFileName Condition=" '$(TargetFileName)' == '' ">$(TargetName)$(TargetExt)</TargetFileName>
+
+    <!-- Example, MySetup.wixpdb" -->
+    <TargetPdbName Condition=" '$(TargetPdbName)' == '' ">$(TargetName)$(TargetPdbExt)</TargetPdbName>
+
+    <!-- Example, Debug -->
+    <ConfigurationName Condition=" '$(ConfigurationName)' == '' ">$(Configuration)</ConfigurationName>
+
+    <!-- Example, AnyCPU -->
+    <PlatformName Condition=" '$(PlatformName)' == '' ">$(Platform)</PlatformName>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <!-- Create the output path as an item so that we can use %(FullPath) on it. -->
+    <_OutputPathItem Include="$(OutDir)" />
+    <_IntermediateOutputPathItem Include="$(IntermediateOutputPath)" />
+  </ItemGroup>
+
+  <PropertyGroup>
+    <!-- Example, c:\MyProjects\MySetup\bin\debug\ -->
+    <!--
+    Condition intentionally omitted on this one, because it causes problems
+    when we pick up the value of an environment variable named TargetDir
+    -->
+    <TargetDir Condition="'$(OutDir)' != ''">$([System.IO.Path]::GetFullPath(`$([System.IO.Path]::Combine(`$(MSBuildProjectDirectory)`, `$(OutDir)`))`))</TargetDir>
+
+    <!-- Example, C:\MyProjects\MySetup\bin\debug\MySetup.msi -->
+    <TargetPath Condition=" '$(TargetPath)' == '' ">$(TargetDir)$(TargetFileName)</TargetPath>
+
+    <TargetPdbPath Condition=" '$(TargetPdbPath)' == '' ">$(TargetDir)$(TargetPdbName)</TargetPdbPath>
+  </PropertyGroup>
+
+  <!--
+  IDE Macros available only from integrated builds. The following properties are 'macros' that are
+  available via IDE for pre and post build steps. However, they are not defined when directly
+  building a project from the command line, only when building a solution.
+  -->
+  <PropertyGroup>
+    <DevEnvDir Condition=" '$(DevEnvDir)' == '' ">*Undefined if not building from within Visual Studio*</DevEnvDir>
+
+    <!-- Example, MySolution -->
+    <SolutionName Condition=" '$(SolutionName)' == '' ">*Undefined if not building a solution or within Visual Studio*</SolutionName>
+
+    <!-- Example, MySolution.sln -->
+    <SolutionFileName Condition=" '$(SolutionFileName)' == '' ">*Undefined if not building a solution or within Visual Studio*</SolutionFileName>
+
+    <!-- Example, C:\MySolutions\MySolution\MySolution.sln -->
+    <SolutionPath Condition=" '$(SolutionPath)' == '' ">*Undefined if not building a solution or within Visual Studio*</SolutionPath>
+
+    <!-- Example, C:\MySolutions\MySolution\ -->
+    <SolutionDir Condition=" '$(SolutionDir)' == '' ">*Undefined if not building a solution or within Visual Studio*</SolutionDir>
+
+    <!-- Example, .sln -->
+    <SolutionExt Condition=" '$(SolutionExt)' == '' ">*Undefined if not building a solution or within Visual Studio*</SolutionExt>
+  </PropertyGroup>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Default Harvester, Compiler, Linker, and Librarian Property Declarations
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!-- If WixExtension was passed in via the command line, then convert it to an ItemGroup -->
+  <ItemGroup>
+    <WixExtension Include="$(WixExtension)"  Condition=" '$(WixExtension)' != '' " />
+  </ItemGroup>
+
+  <!-- Default Harvester properties-->
+  <PropertyGroup>
+    <HarvestNoLogo Condition=" '$(HarvestNoLogo)' == '' ">$(NoLogo)</HarvestNoLogo>
+    <HarvestSuppressAllWarnings Condition=" '$(HarvestSuppressAllWarnings)' == '' ">$(SuppressAllWarnings)</HarvestSuppressAllWarnings>
+    <HarvestSuppressSpecificWarnings Condition=" '$(HarvestSuppressSpecificWarnings)' == '' ">$(SuppressSpecificWarnings)</HarvestSuppressSpecificWarnings>
+    <HarvestTreatWarningsAsErrors Condition=" '$(HarvestTreatWarningsAsErrors)' == '' ">$(TreatWarningsAsErrors)</HarvestTreatWarningsAsErrors>
+    <HarvestTreatSpecificWarningsAsErrors Condition=" '$(HarvestTreatSpecificWarningsAsErrors)' == '' ">$(TreatSpecificWarningsAsErrors)</HarvestTreatSpecificWarningsAsErrors>
+    <HarvestVerboseOutput Condition=" '$(HarvestVerboseOutput)' == '' ">$(VerboseOutput)</HarvestVerboseOutput>
+    <HarvestAutogenerateGuids Condition=" '$(HarvestAutogenerateGuids)' == '' ">true</HarvestAutogenerateGuids>
+    <HarvestGenerateGuidsNow Condition=" '$(HarvestGenerateGuidsNow)' == '' ">false</HarvestGenerateGuidsNow>
+    <HarvestSuppressFragments Condition=" '$(HarvestSuppressFragments)' == '' ">true</HarvestSuppressFragments>
+    <HarvestSuppressUniqueIds Condition=" '$(HarvestSuppressUniqueIds)' == '' ">false</HarvestSuppressUniqueIds>
+  </PropertyGroup>
+
+  <!-- Default HarvestProjects properties -->
+  <PropertyGroup>
+    <HarvestProjectsNoLogo Condition=" '$(HarvestProjectsNoLogo)' == '' ">$(HarvestNoLogo)</HarvestProjectsNoLogo>
+    <HarvestProjectsSuppressAllWarnings Condition=" '$(HarvestProjectsSuppressAllWarnings)' == '' ">$(HarvestSuppressAllWarnings)</HarvestProjectsSuppressAllWarnings>
+    <HarvestProjectsSuppressSpecificWarnings Condition=" '$(HarvestProjectsSuppressSpecificWarnings)' == '' ">$(HarvestSuppressSpecificWarnings)</HarvestProjectsSuppressSpecificWarnings>
+    <HarvestProjectsTreatWarningsAsErrors Condition=" '$(HarvestProjectsTreatWarningsAsErrors)' == '' ">$(HarvestTreatWarningsAsErrors)</HarvestProjectsTreatWarningsAsErrors>
+    <HarvestProjectsTreatSpecificWarningsAsErrors Condition=" '$(HarvestProjectsTreatSpecificWarningsAsErrors)' == '' ">$(HarvestTreatSpecificWarningsAsErrors)</HarvestProjectsTreatSpecificWarningsAsErrors>
+    <HarvestProjectsVerboseOutput Condition=" '$(HarvestProjectsVerboseOutput)' == '' ">$(HarvestVerboseOutput)</HarvestProjectsVerboseOutput>
+    <HarvestProjectsAutogenerateGuids Condition=" '$(HarvestProjectsAutogenerateGuids)' == '' ">$(HarvestAutogenerateGuids)</HarvestProjectsAutogenerateGuids>
+    <HarvestProjectsGenerateGuidsNow Condition=" '$(HarvestProjectsGenerateGuidsNow)' == '' ">$(HarvestGenerateGuidsNow)</HarvestProjectsGenerateGuidsNow>
+    <HarvestProjectsSuppressFragments Condition=" '$(HarvestProjectsSuppressFragments)' == '' ">$(HarvestSuppressFragments)</HarvestProjectsSuppressFragments>
+    <HarvestProjectsSuppressUniqueIds Condition=" '$(HarvestProjectsSuppressUniqueIds)' == '' ">$(HarvestSuppressUniqueIds)</HarvestProjectsSuppressUniqueIds>
+    <HarvestProjectsTransforms Condition=" '$(HarvestProjectsTransforms)' == '' ">$(HarvestTransforms)</HarvestProjectsTransforms>
+    <HarvestProjectsGeneratedFile Condition=" '$(HarvestProjectsGeneratedFile)' == '' and '$(OutputType)' != 'Bundle' ">$(IntermediateOutputPath)Product.Generated.wxs</HarvestProjectsGeneratedFile>
+    <HarvestProjectsGeneratedFile Condition=" '$(HarvestProjectsGeneratedFile)' == '' and '$(OutputType)' == 'Bundle' ">$(IntermediateOutputPath)Bundle.Generated.wxs</HarvestProjectsGeneratedFile>
+  </PropertyGroup>
+
+  <!-- Default HarvestDirectory properties -->
+  <PropertyGroup>
+    <HarvestDirectoryNoLogo Condition=" '$(HarvestDirectoryNoLogo)' == '' ">$(HarvestNoLogo)</HarvestDirectoryNoLogo>
+    <HarvestDirectorySuppressAllWarnings Condition=" '$(HarvestDirectorySuppressAllWarnings)' == '' ">$(HarvestSuppressAllWarnings)</HarvestDirectorySuppressAllWarnings>
+    <HarvestDirectorySuppressSpecificWarnings Condition=" '$(HarvestDirectorySuppressSpecificWarnings)' == '' ">$(HarvestSuppressSpecificWarnings)</HarvestDirectorySuppressSpecificWarnings>
+    <HarvestDirectoryTreatWarningsAsErrors Condition=" '$(HarvestDirectoryTreatWarningsAsErrors)' == '' ">$(HarvestTreatWarningsAsErrors)</HarvestDirectoryTreatWarningsAsErrors>
+    <HarvestDirectoryTreatSpecificWarningsAsErrors Condition=" '$(HarvestDirectoryTreatSpecificWarningsAsErrors)' == '' ">$(HarvestTreatSpecificWarningsAsErrors)</HarvestDirectoryTreatSpecificWarningsAsErrors>
+    <HarvestDirectoryVerboseOutput Condition=" '$(HarvestDirectoryVerboseOutput)' == '' ">$(HarvestVerboseOutput)</HarvestDirectoryVerboseOutput>
+    <HarvestDirectoryAutogenerateGuids Condition=" '$(HarvestDirectoryAutogenerateGuids)' == '' ">$(HarvestAutogenerateGuids)</HarvestDirectoryAutogenerateGuids>
+    <HarvestDirectoryGenerateGuidsNow Condition=" '$(HarvestDirectoryGenerateGuidsNow)' == '' ">$(HarvestGenerateGuidsNow)</HarvestDirectoryGenerateGuidsNow>
+    <HarvestDirectorySuppressFragments Condition=" '$(HarvestDirectorySuppressFragments)' == '' ">$(HarvestSuppressFragments)</HarvestDirectorySuppressFragments>
+    <HarvestDirectorySuppressUniqueIds Condition=" '$(HarvestDirectorySuppressUniqueIds)' == '' ">$(HarvestSuppressUniqueIds)</HarvestDirectorySuppressUniqueIds>
+    <HarvestDirectoryTransforms Condition=" '$(HarvestDirectoryTransforms)' == '' ">$(HarvestTransforms)</HarvestDirectoryTransforms>
+  </PropertyGroup>
+
+  <!-- Default HarvestFile properties -->
+  <PropertyGroup>
+    <HarvestFileNoLogo Condition=" '$(HarvestFileNoLogo)' == '' ">$(HarvestNoLogo)</HarvestFileNoLogo>
+    <HarvestFileSuppressAllWarnings Condition=" '$(HarvestFileSuppressAllWarnings)' == '' ">$(HarvestSuppressAllWarnings)</HarvestFileSuppressAllWarnings>
+    <HarvestFileSuppressSpecificWarnings Condition=" '$(HarvestFileSuppressSpecificWarnings)' == '' ">$(HarvestSuppressSpecificWarnings)</HarvestFileSuppressSpecificWarnings>
+    <HarvestFileTreatWarningsAsErrors Condition=" '$(HarvestFileTreatWarningsAsErrors)' == '' ">$(HarvestTreatWarningsAsErrors)</HarvestFileTreatWarningsAsErrors>
+    <HarvestFileTreatSpecificWarningsAsErrors Condition=" '$(HarvestFileTreatSpecificWarningsAsErrors)' == '' ">$(HarvestTreatSpecificWarningsAsErrors)</HarvestFileTreatSpecificWarningsAsErrors>
+    <HarvestFileVerboseOutput Condition=" '$(HarvestFileVerboseOutput)' == '' ">$(HarvestVerboseOutput)</HarvestFileVerboseOutput>
+    <HarvestFileAutogenerateGuids Condition=" '$(HarvestFileAutogenerateGuids)' == '' ">$(HarvestAutogenerateGuids)</HarvestFileAutogenerateGuids>
+    <HarvestFileGenerateGuidsNow Condition=" '$(HarvestFileGenerateGuidsNow)' == '' ">$(HarvestGenerateGuidsNow)</HarvestFileGenerateGuidsNow>
+    <HarvestFileSuppressFragments Condition=" '$(HarvestFileSuppressFragments)' == '' ">$(HarvestSuppressFragments)</HarvestFileSuppressFragments>
+    <HarvestFileSuppressUniqueIds Condition=" '$(HarvestFileSuppressUniqueIds)' == '' ">$(HarvestSuppressUniqueIds)</HarvestFileSuppressUniqueIds>
+    <HarvestFileTransforms Condition=" '$(HarvestFileTransforms)' == '' ">$(HarvestTransforms)</HarvestFileTransforms>
+  </PropertyGroup>
+
+  <!-- Defaut Compiler properties. -->
+  <PropertyGroup>
+    <CompilerNoLogo Condition=" '$(CompilerNoLogo)' == '' ">$(NoLogo)</CompilerNoLogo>
+    <CompilerSuppressAllWarnings Condition=" '$(CompilerSuppressAllWarnings)' == '' ">$(SuppressAllWarnings)</CompilerSuppressAllWarnings>
+    <CompilerSuppressSpecificWarnings Condition=" '$(CompilerSuppressSpecificWarnings)' == '' ">$(SuppressSpecificWarnings)</CompilerSuppressSpecificWarnings>
+    <CompilerSuppressSchemaValidation Condition=" '$(CompilerSuppressSchemaValidation)' == '' ">$(SuppressSchemaValidation)</CompilerSuppressSchemaValidation>
+    <CompilerTreatWarningsAsErrors Condition=" '$(CompilerTreatWarningsAsErrors)' == '' ">$(TreatWarningsAsErrors)</CompilerTreatWarningsAsErrors>
+    <CompilerTreatSpecificWarningsAsErrors Condition=" '$(CompilerTreatSpecificWarningsAsErrors)' == '' ">$(TreatSpecificWarningsAsErrors)</CompilerTreatSpecificWarningsAsErrors>
+    <CompilerVerboseOutput Condition=" '$(CompilerVerboseOutput)' == '' ">$(VerboseOutput)</CompilerVerboseOutput>
+    <InstallerPlatform Condition=" '$(InstallerPlatform)' == '' and '$(Platform)' != 'AnyCPU' and '$(Platform)' != 'Any CPU' ">$(Platform)</InstallerPlatform>
+  </PropertyGroup>
+
+  <!-- Default Lib properties. -->
+  <PropertyGroup>
+    <LibNoLogo Condition=" '$(LibNoLogo)' == '' ">$(NoLogo)</LibNoLogo>
+    <LibBindFiles Condition=" '$(LibBindFiles)' == '' ">$(BindFiles)</LibBindFiles>
+    <LibPedantic Condition=" '$(LibPedantic)' == '' ">$(Pedantic)</LibPedantic>
+    <LibSuppressAllWarnings Condition=" '$(LibSuppressAllWarnings)' == '' ">$(SuppressAllWarnings)</LibSuppressAllWarnings>
+    <LibSuppressSpecificWarnings Condition=" '$(LibSuppressSpecificWarnings)' == '' ">$(SuppressSpecificWarnings)</LibSuppressSpecificWarnings>
+    <LibSuppressSchemaValidation Condition=" '$(LibSuppressSchemaValidation)' == '' ">$(SuppressSchemaValidation)</LibSuppressSchemaValidation>
+    <LibSuppressIntermediateFileVersionMatching Condition=" '$(LibSuppressIntermediateFileVersionMatching)' == '' ">$(SuppressIntermediateFileVersionMatching)</LibSuppressIntermediateFileVersionMatching>
+    <LibTreatWarningsAsErrors Condition=" '$(LibTreatWarningsAsErrors)' == '' ">$(TreatWarningsAsErrors)</LibTreatWarningsAsErrors>
+    <LibTreatSpecificWarningsAsErrors Condition=" '$(LibTreatSpecificWarningsAsErrors)' == '' ">$(TreatSpecificWarningsAsErrors)</LibTreatSpecificWarningsAsErrors>
+    <LibVerboseOutput Condition=" '$(LibVerboseOutput)' == '' ">$(VerboseOutput)</LibVerboseOutput>
+  </PropertyGroup>
+
+  <!-- Default Linker properties. -->
+  <PropertyGroup>
+    <LinkerNoLogo Condition=" '$(LinkerNoLogo)' == '' ">$(NoLogo)</LinkerNoLogo>
+    <LinkerBaseInputPaths Condition=" '$(LinkerBaseInputPaths)' == '' ">$(BaseInputPaths)</LinkerBaseInputPaths>
+    <LinkerBindFiles Condition=" '$(LinkerBindFiles)' == '' ">$(BindFiles)</LinkerBindFiles>
+    <LinkerPedantic Condition=" '$(LinkerPedantic)' == '' ">$(Pedantic)</LinkerPedantic>
+    <LinkerSuppressAllWarnings Condition=" '$(LinkerSuppressAllWarnings)' == '' ">$(SuppressAllWarnings)</LinkerSuppressAllWarnings>
+    <LinkerSuppressSpecificWarnings Condition=" '$(LinkerSuppressSpecificWarnings)' == '' ">$(SuppressSpecificWarnings)</LinkerSuppressSpecificWarnings>
+    <LinkerSuppressSchemaValidation Condition=" '$(LinkerSuppressSchemaValidation)' == '' ">$(SuppressSchemaValidation)</LinkerSuppressSchemaValidation>
+    <LinkerSuppressIntermediateFileVersionMatching Condition=" '$(LinkerSuppressIntermediateFileVersionMatching)' == '' ">$(SuppressIntermediateFileVersionMatching)</LinkerSuppressIntermediateFileVersionMatching>
+    <LinkerTreatWarningsAsErrors Condition=" '$(LinkerTreatWarningsAsErrors)' == '' ">$(TreatWarningsAsErrors)</LinkerTreatWarningsAsErrors>
+    <LinkerTreatSpecificWarningsAsErrors Condition=" '$(LinkerTreatSpecificWarningsAsErrors)' == '' ">$(TreatSpecificWarningsAsErrors)</LinkerTreatSpecificWarningsAsErrors>
+    <LinkerVerboseOutput Condition=" '$(LinkerVerboseOutput)' == '' ">$(VerboseOutput)</LinkerVerboseOutput>
+  </PropertyGroup>
+
+  <!-- Default Inscribe properties. -->
+  <PropertyGroup>
+    <InscribeNoLogo Condition=" '$(InscribeNoLogo)' == '' ">$(NoLogo)</InscribeNoLogo>
+    <InscribeSuppressAllWarnings Condition=" '$(InscribeSuppressAllWarnings)' == '' ">$(SuppressAllWarnings)</InscribeSuppressAllWarnings>
+    <InscribeSuppressSpecificWarnings Condition=" '$(InscribeSuppressSpecificWarnings)' == '' ">$(SuppressSpecificWarnings)</InscribeSuppressSpecificWarnings>
+    <InscribeTreatWarningsAsErrors Condition=" '$(InscribeTreatWarningsAsErrors)' == '' ">$(TreatWarningsAsErrors)</InscribeTreatWarningsAsErrors>
+    <InscribeTreatSpecificWarningsAsErrors Condition=" '$(InscribeTreatSpecificWarningsAsErrors)' == '' ">$(TreatSpecificWarningsAsErrors)</InscribeTreatSpecificWarningsAsErrors>
+    <InscribeVerboseOutput Condition=" '$(InscribeVerboseOutput)' == '' ">$(VerboseOutput)</InscribeVerboseOutput>
+  </PropertyGroup>
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Initial Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ============================================================
+                                      _CheckForInvalidConfigurationAndPlatform
+
+  This target checks for errors in statically defined properties.  It always
+  gets executed before any other target.
+  ============================================================
+  -->
+  <Target
+      Name="_CheckForInvalidConfigurationAndPlatform">
+
+      <Error Condition=" '$(_InvalidConfigurationError)' == 'true' " Text="The OutputPath property is not set for this project.  Please check to make sure that you have specified a valid Configuration/Platform combination.  Configuration='$(_OriginalConfiguration)'  Platform='$(_OriginalPlatform)'"/>
+      <Warning Condition=" '$(_InvalidConfigurationWarning)' == 'true' " Text="The OutputPath property is not set for this project.  Please check to make sure that you have specified a valid Configuration/Platform combination.  Configuration='$(_OriginalConfiguration)'  Platform='$(_OriginalPlatform)'"/>
+
+      <Message Text="Configuration=$(Configuration)" Importance="Low" />
+      <Message Text="Platform=$(Platform)" Importance="Low" />
+
+      <!-- Although we try to ensure a trailing slash, it's possible to circumvent this if the property is set on the command line -->
+      <Error Condition="'$(OutDir)' != '' and !HasTrailingSlash('$(OutDir)')" Text="The OutDir property must end with a trailing slash." />
+      <Error Condition="'$(BaseIntermediateOutputPath)' != '' and !HasTrailingSlash('$(BaseIntermediateOutputPath)')" Text="The BaseIntermediateOutputPath must end with a trailing slash." />
+      <Error Condition="'$(IntermediateOutputPath)' != '' and !HasTrailingSlash('$(IntermediateOutputPath)')" Text="The IntermediateOutputPath must end with a trailing slash." />
+  </Target>
+
+
+  <!--
+  ==================================================================================================
+  _CheckRequiredProperties
+
+    Checks properties that must be set in the main project file or on the command line before
+    using this .TARGETS file.
+
+    [IN]
+    $(OutputName) - The name of the MSI/MSM/wixlib to build (without the extension)
+    $(OutputType) - Possible values are 'package', 'PatchCreation', 'module', 'library', 'bundle'
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <_PleaseSetThisInProjectFile>Please set this in the project file before the &lt;Import&gt; of the wix.targets file.</_PleaseSetThisInProjectFile>
+    <_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'.</_OutputTypeDescription>
+  </PropertyGroup>
+  <Target Name="_CheckRequiredProperties">
+
+    <Error
+      Code="WIXTARGETS100"
+      Condition=" '$(OutputName)' == '' "
+      Text="The OutputName property is not set in project &quot;$(MSBuildProjectFile)&quot;. The OutputName defines the name of the output without a file extension. $(_PleaseSetThisInProjectFile)" />
+
+    <Warning
+      Code="WIXTARGETS101"
+      Condition=" '$(_OriginalOutputType)' == '' "
+      Text="The OutputType property is not set in project &quot;$(MSBuildProjectFile)&quot;. Defaulting to 'Package'. $(_OutputTypeDescription)" />
+
+    <Error
+      Code="WIXTARGETS102"
+      Condition=" '$(OutputType)' != 'Package' and '$(OutputType)' != 'PatchCreation' and '$(OutputType)' != 'Module' and '$(OutputType)' != 'Library' and '$(OutputType)' != 'Bundle' "
+      Text="The OutputType property '$(OutputType)' is not valid in project &quot;$(MSBuildProjectFile)&quot;. $(_OutputTypeDescription)" />
+
+    <!-- Although we try to ensure a trailing slash, it's possible to circumvent this if the property is set on the command line -->
+    <Error
+      Code="WIXTARGETS103"
+      Condition="'$(OutDir)' != '' and !HasTrailingSlash('$(OutDir)')"
+      Text="The OutDir property must end with a trailing slash." />
+
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Build Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  Build
+
+    The main build entry point.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <BuildDependsOn>
+      BeforeBuild;
+      CoreBuild;
+      AfterBuild
+    </BuildDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Build"
+    DependsOnTargets="$(BuildDependsOn)"
+    Outputs="$(TargetPath)">
+  </Target>
+
+  <!--
+  ==================================================================================================
+  BeforeBuild
+
+    Redefine this target in your project in order to run tasks just before Build.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeBuild" />
+
+  <!--
+  ==================================================================================================
+  AfterBuild
+
+    Redefine this target in your project in order to run tasks just after Build.
+  ==================================================================================================
+  -->
+  <Target Name="AfterBuild" />
+
+  <!--
+  ==================================================================================================
+  CoreBuild
+
+    The core build step calls each of the build targets.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <CoreBuildDependsOn>
+      BuildOnlySettings;
+      PrepareForBuild;
+      PreBuildEvent;
+      ResolveReferences;
+      AddCompilerDefineConstants;
+      CompileAndLink;
+      Signing;
+      GetTargetPath;
+      IncrementalClean;
+      PostBuildEvent
+    </CoreBuildDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="CoreBuild"
+    DependsOnTargets="$(CoreBuildDependsOn)">
+
+    <OnError
+      ExecuteTargets="_TimeStampAfterCompileAndLink;PostBuildEvent"
+      Condition=" '$(RunPostBuildEvent)' == 'Always' or '$(RunPostBuildEvent)' == 'OnOutputUpdated' " />
+
+    <OnError ExecuteTargets="_CleanRecordFileWrites" />
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  Rebuild
+
+    Delete all intermediate and final build outputs, and then build the project from scratch.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <RebuildDependsOn>
+      BeforeRebuild;
+      Clean;
+      $(MSBuildProjectDefaultTargets);
+      AfterRebuild;
+    </RebuildDependsOn>
+
+    <RebuildDependsOn Condition=" '$(MSBuildProjectDefaultTargets)' == 'Rebuild' ">
+      BeforeRebuild;
+      Clean;
+      Build;
+      AfterRebuild;
+    </RebuildDependsOn>
+  </PropertyGroup>
+
+  <Target
+    Name="Rebuild"
+    DependsOnTargets="$(RebuildDependsOn)"
+    Outputs="$(TargetPath)" />
+
+  <!--
+  ==================================================================================================
+  BeforeRebuild
+
+    Redefine this target in your project in order to run tasks just before Rebuild.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeRebuild" />
+
+  <!--
+  ==================================================================================================
+  AfterRebuild
+
+    Redefine this target in your project in order to run tasks just after Rebuild.
+  ==================================================================================================
+  -->
+  <Target Name="AfterRebuild" />
+
+  <!--
+  ==================================================================================================
+  BuildOnlySettings
+
+    This target is called only when doing a real build. It is not called during project load.
+  ==================================================================================================
+    -->
+  <PropertyGroup>
+    <BuildingProject>false</BuildingProject>
+  </PropertyGroup>
+  <Target Name="BuildOnlySettings">
+
+    <CreateProperty Value="true">
+      <Output TaskParameter="Value" PropertyName="BuildingProject" />
+    </CreateProperty>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  PrepareForBuild
+
+    Prepare the prerequisites for building.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <PrepareForBuildDependsOn></PrepareForBuildDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="PrepareForBuild" DependsOnTargets="$(PrepareForBuildDependsOn)">
+
+    <!--
+    These CreateProperty calls are required because TargetDir and TargetPath are defined
+    to contain an item list. We want that item list to be expanded so that it can be used
+    as a regular property value and not as an item-list-with-transform.
+    -->
+    <CreateProperty Value="$(TargetDir)">
+      <Output TaskParameter="Value" PropertyName="TargetDir" />
+    </CreateProperty>
+
+    <CreateProperty Value="$(TargetPath)">
+      <Output TaskParameter="Value" PropertyName="TargetPath" />
+    </CreateProperty>
+
+    <CreateProperty Value="$(TargetPdbPath)">
+      <Output TaskParameter="Value" PropertyName="TargetPdbPath" />
+    </CreateProperty>
+
+    <!-- Create the directories for intermediate and final build products. -->
+    <MakeDir Directories="$(IntermediateOutputPath);$(OutDir)" />
+  </Target>
+
+  <!--
+  ==================================================================================================
+  ResolveWixExtensionReferences
+
+    Resolves WiX extension references to full paths. Any properties you use
+    to resolve paths to extensions must be defined before importing this
+    file or the extensions will be automatically resolved to $(WixExtDir).
+
+    [IN]
+    @(WixExtension) - WixExtension item group
+
+    [OUT]
+    @(_ResolvedWixExtensionPaths) - Item group with full paths to extensions
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <ResolveWixExtensionReferencesDependsOn>
+      PrepareForBuild
+    </ResolveWixExtensionReferencesDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="ResolveWixExtensionReferences"
+    DependsOnTargets="$(ResolveWixExtensionReferencesDependsOn)"
+    Condition=" '@(WixExtension)' != ''">
+
+    <!--
+    The WixExtensionSearchPaths property is set to find assemblies in the following order:
+
+        (1) $(ReferencePaths) - the reference paths property, which comes from the .USER file.
+        (2) The hintpath from the referenced item itself, indicated by {HintPathFromItem}.
+        (3) Treat the reference's Include as if it were a real file name.
+        (4) Path specified by the WixExtDir property.
+    -->
+    <CreateProperty Condition=" '$(WixExtensionSearchPaths)' == '' " Value="
+      $(ReferencePaths);
+      {HintPathFromItem};
+      {RawFileName};
+      $(WixExtDir)
+      ">
+      <Output TaskParameter="Value" PropertyName="WixExtensionSearchPaths" />
+    </CreateProperty>
+
+    <ResolveWixReferences
+      WixReferences="@(WixExtension)"
+      SearchPaths="$(WixExtensionSearchPaths)"
+      SearchFilenameExtensions=".dll">
+      <Output TaskParameter="ResolvedWixReferences" ItemName="_AllResolvedWixExtensionPaths" />
+    </ResolveWixReferences>
+
+    <!-- Remove duplicate extension items that would cause build errors -->
+    <RemoveDuplicates Inputs="@(_AllResolvedWixExtensionPaths)">
+      <Output TaskParameter="Filtered" ItemName="_ResolvedWixExtensionPaths" />
+    </RemoveDuplicates>
+  </Target>
+
+  <!--
+  ==================================================================================================
+  PreBuildEvent
+
+    Run the pre-build event if there is one.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <PreBuildEventDependsOn>GetTargetPath</PreBuildEventDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="PreBuildEvent"
+    DependsOnTargets="$(PreBuildEventDependsOn)"
+    Condition=" '$(PreBuildEvent)' != '' ">
+
+    <ReplaceString
+      Text="$(PreBuildEvent)"
+      OldValue="!(TargetPath)"
+      NewValue="$(TargetPath)">
+      
+      <Output TaskParameter="Text" PropertyName="ExpandedPreBuildEvent" />
+    </ReplaceString>
+    
+    <ReplaceString
+      Text="$(ExpandedPreBuildEvent)"
+      OldValue="!(TargetPdbPath)"
+      NewValue="$(TargetPdbPath)">
+      
+      <Output TaskParameter="Text" PropertyName="ExpandedPreBuildEvent" />
+    </ReplaceString>
+
+    <Exec WorkingDirectory="$(OutDir)" Command="$(ExpandedPreBuildEvent)" />
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Resolve References Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  ResolveReferences
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <ResolveReferencesDependsOn>
+      BeforeResolveReferences;
+      AssignProjectConfiguration;
+      ResolveProjectReferences;
+      ResolveWixLibraryReferences;
+      ResolveWixExtensionReferences;
+      AfterResolveReferences
+    </ResolveReferencesDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="ResolveReferences"
+    DependsOnTargets="$(ResolveReferencesDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  BeforeResolveReferences
+
+    Redefine this target in your project in order to run tasks just before ResolveReferences.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeResolveReferences" />
+
+  <!--
+  ==================================================================================================
+  AfterResolveReferences
+
+    Redefine this target in your project in order to run tasks just after ResolveReferences.
+  ==================================================================================================
+  -->
+  <Target Name="AfterResolveReferences" />
+
+  <!--
+  ==================================================================================================
+  AssignProjectConfiguration
+
+    Assign the appropriate configuration to each project in the list of project references passed in.
+
+    [IN]
+    @(ProjectReference) - the list of all project references
+
+    [OUT]
+    @(_ProjectReferenceWithConfiguration) - the list of project references (MSBuild and potentially VSIP projects)
+  ==================================================================================================
+  -->
+  <Target
+    Name="AssignProjectConfiguration"
+    Condition=" '@(ProjectReference)' != '' ">
+
+    <!-- Assign a project configuration to each project reference if we're building a solution file. -->
+    <AssignProjectConfiguration
+      ProjectReferences="@(ProjectReference)"
+      CurrentProjectConfiguration="$(Configuration)"
+      CurrentProjectPlatform="$(Platform)"
+      SolutionConfigurationContents="$(CurrentSolutionConfigurationContents)">
+
+      <Output TaskParameter="AssignedProjects" ItemName="_ProjectReferenceWithConfiguration" />
+      <Output TaskParameter="UnassignedProjects" ItemName="_ProjectReferenceWithConfiguration"/>
+    </AssignProjectConfiguration>
+
+    <!-- Add in the source project path so that we can have access to it after resolving the output. -->
+    <ItemGroup>
+      <_ProjectReferenceWithConfiguration>
+        <MSBuildSourceProjectFileFullPath>%(FullPath)</MSBuildSourceProjectFileFullPath>
+      </_ProjectReferenceWithConfiguration>
+    </ItemGroup>
+  </Target>
+
+
+  <!--
+  ==================================================================================================
+  _SplitProjectReferencesByFileExistence
+
+    Split referenced projects into two lists: those that exist on  disk and those that don't.
+
+    [IN]
+    @(NonVCProjectReference) - the list of non-VC project references (MSBuild and potentially VSIP projects)
+
+    [OUT]
+    @(_MSBuildProjectReferenceExistent) - the list of non-VC project references that exist on disk
+    @(_MSBuildProjectReferenceNonexistent) - the list of non-VC project references that don't exist on disk
+  ==================================================================================================
+  -->
+  <Target
+    Name="_SplitProjectReferencesByFileExistence">
+
+    <!--
+    Use this task for matching projects with pre-resolved project outputs set by the IDE if building
+    inside the IDE. The IDE only includes non-MSBuild projects in the output list. We'll use MSBuild
+    to resolve MSBuild projects. This task will resolve VSIP (3rd party) project references and
+    create a new item list with only project references to projects in the MSBuild format.
+    -->
+    <ResolveNonMSBuildProjectOutput
+      ProjectReferences="@(_ProjectReferenceWithConfiguration)"
+      PreresolvedProjectOutputs="$(VSIDEResolvedNonMSBuildProjectOutputs)"
+      Condition=" '$(BuildingInsideVisualStudio)' == 'true' and '@(_ProjectReferenceWithConfiguration)'!=''">
+
+      <Output TaskParameter="ResolvedOutputPaths" ItemName="_ResolvedProjectReferencePaths" />
+      <Output TaskParameter="UnresolvedProjectReferences" ItemName="_MSBuildProjectReference" />
+
+    </ResolveNonMSBuildProjectOutput>
+
+    <!--
+    If building from the command line, simply copy the _ProjectReferenceWithConfiguration item list to
+    _MSBuildProjectReference, since we have to assume all non-VC projects are in the MSBuild format.
+    We have no way of building VSIP (3rd party) projects from the command line.
+    -->
+    <ItemGroup>
+      <_MSBuildProjectReference Include="@(_ProjectReferenceWithConfiguration)" Condition="'$(BuildingInsideVisualStudio)'!='true' and '@(_ProjectReferenceWithConfiguration)'!=''"/>
+    </ItemGroup>
+
+    <!-- Break the project list into two lists: those that exist on disk and those that don't. -->
+    <ItemGroup>
+      <_MSBuildProjectReferenceExistent Include="@(_MSBuildProjectReference)" Condition="Exists('%(Identity)')"/>
+      <_MSBuildProjectReferenceNonexistent Include="@(_MSBuildProjectReference)" Condition="!Exists('%(Identity)')"/>
+    </ItemGroup>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  ResolveProjectReferences
+
+    Builds all of the referenced projects to get their outputs.
+
+    [IN]
+    @(NonVCProjectReference) - The list of non-VC project references.
+
+    [OUT]
+    @(_ProjectReferenceWithConfiguration) - The list of non-VC project references.
+  ================================================================================================
+  -->
+  <Target
+    Name="ResolveProjectReferences"
+    DependsOnTargets="AssignProjectConfiguration;_SplitProjectReferencesByFileExistence"
+    Condition=" '@(_ProjectReferenceWithConfiguration)' != '' ">
+
+    <!--
+    When building this project from the IDE or when building a .sln from the command line, just
+    gather the referenced build outputs. The code that builds the .sln will already have built
+    the project, so there's no need to do it again here.
+    
+    The ContinueOnError setting is here so that, during project load, as much information as
+    possible will be passed to the compilers.
+    -->
+    <MSBuild
+      Projects="@(_MSBuildProjectReferenceExistent)"
+      Targets="GetTargetPath"
+      Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration); %(_MSBuildProjectReferenceExistent.SetPlatform)"
+      Condition="'@(_ProjectReferenceWithConfiguration)'!='' and ('$(BuildingInsideVisualStudio)' == 'true' or '$(BuildProjectReferences)' != 'true') and '@(_MSBuildProjectReferenceExistent)' != ''"
+      ContinueOnError="!$(BuildingProject)">
+
+      <Output TaskParameter="TargetOutputs" ItemName="_ResolvedProjectReferencePaths" />
+      <Output TaskParameter="TargetOutputs" ItemName="_MSBuildResolvedProjectReferencePaths" />
+    </MSBuild>
+
+    <!--
+    Build referenced projects when building from the command line.
+    
+    The $(ProjectReferenceBuildTargets) will normally be blank so that the project's default target
+    is used during a P2P reference. However if a custom build process requires that the referenced
+    project has a different target to build it can be specified.
+    -->
+    <MSBuild
+      Projects="@(_MSBuildProjectReferenceExistent)"
+      Targets="$(ProjectReferenceBuildTargets)"
+      Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration); %(_MSBuildProjectReferenceExistent.SetPlatform)"
+      Condition="'@(_ProjectReferenceWithConfiguration)'!='' and '$(BuildingInsideVisualStudio)' != 'true' and '$(BuildProjectReferences)' == 'true' and '@(_MSBuildProjectReferenceExistent)' != ''">
+
+      <Output TaskParameter="TargetOutputs" ItemName="_ResolvedProjectReferencePaths" />
+      <Output TaskParameter="TargetOutputs" ItemName="_MSBuildResolvedProjectReferencePaths" />
+    </MSBuild>
+
+    <!-- 
+    VC project references must build GetNativeTargetPath because neither GetTargetPath nor the return of the default build
+    target return the output for a native C++ project. 
+    This will not produce duplicate paths because GetNativeTargetPath is mutually exclusive with GetTargetPath & Build TargetOutputs. 
+    -->
+    <MSBuild
+      Projects="@(_MSBuildProjectReferenceExistent)"
+      Targets="GetNativeTargetPath"
+      Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration); %(_MSBuildProjectReferenceExistent.SetPlatform)"
+      Condition="'@(_ProjectReferenceWithConfiguration)'!='' and '%(_MSBuildProjectReferenceExistent.Extension)' == '.vcxproj'">
+
+      <Output TaskParameter="TargetOutputs" ItemName="_ResolvedProjectReferencePaths" />
+      <Output TaskParameter="TargetOutputs" ItemName="_MSBuildResolvedProjectReferencePaths" />
+    </MSBuild>
+    
+    <!-- Issue a warning for each non-existent project. -->
+    <Warning
+      Text="The referenced project '%(_MSBuildProjectReferenceNonexistent.Identity)' does not exist."
+      Condition=" '@(_ProjectReferenceWithConfiguration)' != '' and '@(_MSBuildProjectReferenceNonexistent)'!=''"/>
+
+    <!-- Create list of all .wixlib project references-->
+    <CreateItem
+      Include="@(_ResolvedProjectReferencePaths)"
+      Condition=" '%(Extension)' == '.wixlib' ">
+
+      <Output TaskParameter="Include" ItemName="WixLibProjects" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  GetTargetPath
+
+    This stand-alone target returns the name of the build product (i.e. MSI, MSM) that would be
+    produced if we built this project.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <GetTargetPathDependsOn>
+      PrepareForBuild;
+      AssignCultures
+    </GetTargetPathDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="GetTargetPath"
+    DependsOnTargets="$(GetTargetPathDependsOn)"
+    Outputs="$(TargetPath)" />
+
+  <!--
+  ============================================================
+  GetResolvedReferencePaths
+  This allows the Referenced Projects to return more information than the build output.
+  ============================================================
+  -->
+  <Target
+    Name="GetResolvedReferencePaths"
+    Outputs="$(ResolvedTargetPath)" />
+
+  <!--
+  ================================================================================================
+  ResolveWixLibraryReferences
+
+    Resolve the library references to full paths.
+
+    [IN]
+    @(WixLibrary) - The list of .wixlib files.
+    
+    [OUT]
+    @(_ResolvedWixLibraryPaths) - Item group with full paths to libraries
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <ResolveWixLibraryReferencesDependsOn>
+      PrepareForBuild;
+    </ResolveWixLibraryReferencesDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="ResolveWixLibraryReferences"
+    DependsOnTargets="$(ResolveWixLibraryReferencesDependsOn)"
+    Condition=" '@(WixLibrary)' != ''">
+
+    <!--
+    The WixLibrarySearchPaths property is set to find assemblies in the following order:
+
+        (1) $(ReferencePaths) - the reference paths property, which comes from the .USER file.
+        (2) The hintpath from the referenced item itself, indicated by {HintPathFromItem}.
+        (3) Treat the reference's Include as if it were a real file name.
+        (4) Path specified by the WixExtDir property.
+    -->
+    <CreateProperty Condition=" '$(WixLibrarySearchPaths)' == '' " Value="
+      $(ReferencePaths);
+      {HintPathFromItem};
+      {RawFileName};
+      $(WixExtDir)
+      ">
+      <Output TaskParameter="Value" PropertyName="WixLibrarySearchPaths" />
+    </CreateProperty>
+
+    <ResolveWixReferences
+      WixReferences="@(WixLibrary)"
+      SearchPaths="$(WixLibrarySearchPaths)"
+      SearchFilenameExtensions=".wixlib">
+      <Output TaskParameter="ResolvedWixReferences" ItemName="_AllResolvedWixLibraryPaths" />
+    </ResolveWixReferences>
+    
+    <!-- Remove duplicate library items that would cause build errors -->
+    <RemoveDuplicates Inputs="@(_AllResolvedWixLibraryPaths)">
+      <Output TaskParameter="Filtered" ItemName="_ResolvedWixLibraryPaths" />
+    </RemoveDuplicates>
+
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Compiler Define Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  AddCompilerDefineConstants
+
+    Adds solution and project references to the constants passed into the compiler.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <AddCompilerDefineConstantsDependsOn>
+      ResolveReferences;
+      AddSolutionDefineConstants;
+      AddProjectReferenceDefineConstants;
+    </AddCompilerDefineConstantsDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="AddCompilerDefineConstants"
+    DependsOnTargets="$(AddCompilerDefineConstantsDependsOn)">
+
+    <CreateProperty Value="
+      Configuration=$(ConfigurationName);
+      OutDir=$(OutDir);
+      Platform=$(PlatformName);
+      ProjectDir=$(ProjectDir);
+      ProjectExt=$(ProjectExt);
+      ProjectFileName=$(ProjectFileName);
+      ProjectName=$(ProjectName);
+      ProjectPath=$(ProjectPath);
+      TargetDir=$(TargetDir);
+      TargetExt=$(TargetExt);
+      TargetFileName=$(TargetFileName);
+      TargetName=$(TargetName);
+      TargetPath=$(TargetPath);
+      ">
+      <Output TaskParameter="Value" PropertyName="ProjectDefineConstants" />
+    </CreateProperty>
+    
+  </Target>
+
+  <!--
+  ==================================================================================================
+  AddSolutionDefineConstants
+
+    Adds solution references to the constants passed into the compiler, but only when building
+    from the Visual Studio IDE or when building a solution file via the command line.
+
+    [OUT]
+    $(SolutionDefineConstants) - the list of solution variables to be passed into the compiler
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <DefineSolutionProperties Condition=" '$(DefineSolutionProperties)' == '' ">true</DefineSolutionProperties>
+  </PropertyGroup>
+  <Target
+    Name="AddSolutionDefineConstants"
+    Condition=" '$(DefineSolutionProperties)' == 'true' ">
+
+    <Warning
+      Text="Solution properties are only available during IDE builds or when building the solution file from the command line. To turn off this warning set &lt;DefineSolutionProperties&gt;false&lt;/DefineSolutionProperties&gt; in your .wixproj file."
+      Condition=" '$(BuildingInsideVisualStudio)' != 'true' and '$(BuildingSolutionFile)' != 'true' " />
+
+    <CreateProperty Value="$(SolutionDefineConstants);DevEnvDir=$(DevEnvDir)" Condition=" '$(DevEnvDir)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+    <CreateProperty Value="$(SolutionDefineConstants);SolutionDir=$(SolutionDir)" Condition=" '$(SolutionDir)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+    <CreateProperty Value="$(SolutionDefineConstants);SolutionExt=$(SolutionExt)" Condition=" '$(SolutionExt)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+    <CreateProperty Value="$(SolutionDefineConstants);SolutionFileName=$(SolutionFileName)" Condition=" '$(SolutionFileName)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+    <CreateProperty Value="$(SolutionDefineConstants);SolutionName=$(SolutionName)" Condition=" '$(SolutionName)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+    <CreateProperty Value="$(SolutionDefineConstants);SolutionPath=$(SolutionPath)" Condition=" '$(SolutionPath)' != '' ">
+      <Output TaskParameter="Value" PropertyName="SolutionDefineConstants" />
+    </CreateProperty>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  AddProjectReferenceDefineConstants
+
+    Adds project references to the constants passed into the compiler.
+
+    [IN]
+    @(_ResolvedProjectReferencePaths) - paths to projects' outputs
+    $(VSProjectConfigurations) - map of project names to configurations, provided by VS when building in the IDE
+
+    [OUT]
+    $(ProjectReferenceDefineConstants) - the list of referenced project variables to be passed into the compiler
+  ==================================================================================================
+  -->
+  <Target
+    Name="AddProjectReferenceDefineConstants"
+    Condition=" '@(_ResolvedProjectReferencePaths)' != '' ">
+
+    <CreateProjectReferenceDefineConstants
+      ProjectReferencePaths="@(_ResolvedProjectReferencePaths)"
+      ProjectConfigurations="$(VSProjectConfigurations)">
+
+      <Output TaskParameter="DefineConstants" PropertyName="ProjectReferenceDefineConstants" />
+    </CreateProjectReferenceDefineConstants>
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  CompileAndLink Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  CompileAndLink
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <CompileAndLinkDependsOn>
+      ResolveReferences;
+      BeforeCompileAndLink;
+      _TimeStampBeforeCompileAndLink;
+      ConvertReferences;
+      ConvertBundleReferences;
+      Harvest;
+      GenerateCode;
+      Compile;
+      Lib;
+      Link;
+      _TimeStampAfterCompileAndLink;
+      AfterCompileAndLink
+    </CompileAndLinkDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="CompileAndLink"
+    DependsOnTargets="$(CompileAndLinkDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  BeforeCompileAndLink
+
+    Redefine this target in your project in order to run tasks just before CompileAndLink.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeCompileAndLink" />
+
+  <!--
+  ==================================================================================================
+  AfterCompileAndLink
+
+    Redefine this target in your project in order to run tasks just after CompileAndLink.
+  ==================================================================================================
+  -->
+  <Target Name="AfterCompileAndLink" />
+
+  <!--
+  ==================================================================================================
+  _TimeStampBeforeCompileAndLink
+
+    Record a timestamp so that we can compare it to a new timestamp during PostBuildEvent if
+    necessary.
+  ==================================================================================================
+  -->
+  <Target
+    Name="_TimeStampBeforeCompileAndLink" >
+
+    <CreateItem Include="$(TargetPath)">
+      <Output TaskParameter="Include" ItemName="TargetOutput" />
+    </CreateItem>
+    
+    <CreateItem Include="%(TargetOutput.ModifiedTime)">
+      <Output TaskParameter="Include" PropertyName="_TargetOutputTimestampBeforeCompileAndLink" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  _TimeStampAfterCompileAndLink
+
+    Take before and after timestamps so that we can compare them (used by post-build events that
+    are set to fire "OnOutputUpdated").
+  ==================================================================================================
+  -->
+  <Target
+    Name="_TimeStampAfterCompileAndLink">
+
+    <CreateItem Include="%(TargetOutput.ModifiedTime)">
+      <Output TaskParameter="Include" PropertyName="_TargetOutputTimestampAfterCompileAndLink" />
+    </CreateItem>
+
+    <!-- if our target path was updated by compile & link, and it's an "inscribe-able" output type,
+         then add it to the list of things to be inscribed -->
+    <CreateItem Include="$(TargetPath)"
+      Condition="'$(_TargetOutputTimestampBeforeCompileAndLink)' != '$(_TargetOutputTimestampAfterCompileAndLink)'
+      and ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module')
+      and '$(InscribeMainOutput)' == 'true'" >
+
+        <Output TaskParameter="Include" ItemName="Inscribe"/>
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  Harvest
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <HarvestDependsOn>
+      HarvestProjects;
+      HarvestDirectory;
+      HarvestFile;
+    </HarvestDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Harvest"
+    DependsOnTargets="$(HarvestDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  GenerateCode
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <GenerateCodeDependsOn>
+      RefreshGeneratedFile;
+      RefreshBundleGeneratedFile
+    </GenerateCodeDependsOn>
+  </PropertyGroup>
+  <Target Name="GenerateCode"
+    DependsOnTargets="$(GenerateCodeDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  Signing
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <SigningDependsOn>
+      CompileAndLink;
+      BeforeSigning;
+      SignCabs;
+      Inscribe;
+      SignMsi;
+      AfterSigning
+    </SigningDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Signing"
+    DependsOnTargets="$(SigningDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  BeforeSigning
+
+    Redefine this target in your project in order to run tasks just before all signing tasks.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeSigning" />
+
+  <!--
+  ==================================================================================================
+  SignCabs
+
+    Redefine this target in your project in order to sign the cabs of your database.
+  ==================================================================================================
+  -->
+  <Target Name="SignCabs" />
+
+  <!--
+  ==================================================================================================
+  SignMsi
+
+    Redefine this target in your project in order to sign your database, after it has been inscribed
+    with the signatures of your signed cabs
+  ==================================================================================================
+  -->
+  <Target Name="SignMsi" />
+
+  <!--
+  ==================================================================================================
+  AfterSigning
+
+    Redefine this target in your project in order to run tasks just after all signing tasks.
+  ==================================================================================================
+  -->
+  <Target Name="AfterSigning" />
+
+  <!--
+  ================================================================================================
+  ConvertReferences
+
+    Converts project references to HeatProject items to auto generate authoring.
+  ================================================================================================
+  -->
+  <Target
+    Name="ConvertReferences"
+    Condition=" ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module' ) ">
+
+    <ItemGroup>
+      <_HeatProjectReference Include="@(_MSBuildProjectReferenceExistent)" Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' ">
+        <DirectoryIds>%(_MSBuildProjectReferenceExistent.RefTargetDir)</DirectoryIds>
+        <ProjectOutputGroups>Binaries;Symbols;Sources;Content;Satellites;Documents</ProjectOutputGroups>
+        <ProjectName>%(_MSBuildProjectReferenceExistent.Name)</ProjectName>
+        <HeatOutput>$(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs</HeatOutput>
+      </_HeatProjectReference>
+      <HeatProject Include="@(_HeatProjectReference)" />
+    </ItemGroup>
+
+    <Error
+      Text="The following files are deprecated and should be removed from your project(s): @(Compile->'%(Identity)', ', ')"
+      Condition=" '%(Compile.GenerateComponentGroups)' != '' " />
+
+    <ItemGroup>
+      <!-- Unconditionally generate Compile items so they are always linked in. -->
+      <Compile Include="$(HarvestProjectsGeneratedFile)" />
+      <_GeneratedFiles Include="$(HarvestProjectsGeneratedFile)" />
+    </ItemGroup>
+
+  </Target>
+
+    <!--
+  ================================================================================================
+  ConvertBundleReferences
+
+    Converts project references in Bundle projects to HeatProject items to auto generate authoring.
+  ================================================================================================
+  -->
+  <Target
+    Name="ConvertBundleReferences"
+    Condition=" ('$(OutputType)' == 'Bundle')">
+
+    <ItemGroup>
+      <_HeatProjectReference Include="@(_MSBuildProjectReferenceExistent)" Condition=" '%(_MSBuildProjectReferenceExistent.DoNotHarvest)' == '' ">
+        <ProjectOutputGroups>Binaries;Symbols;Sources;Content;Satellites;Documents</ProjectOutputGroups>
+        <GenerateType>payloadgroup</GenerateType>
+        <HeatOutput>$(IntermediateOutputPath)_%(_MSBuildProjectReferenceExistent.Filename).wxs</HeatOutput>
+      </_HeatProjectReference>
+      <HeatProject Include="@(_HeatProjectReference)" />
+    </ItemGroup>
+
+    <Error
+      Text="The following files are deprecated and should be removed from your project(s): @(Compile->'%(Identity)', ', ')"
+      Condition=" '%(Compile.GenerateComponentGroups)' != '' " />
+
+    <ItemGroup>
+      <!-- Unconditionally generate Compile items so they are always linked in. -->
+      <Compile Include="$(HarvestProjectsGeneratedFile)" />
+      <_GeneratedFiles Include="$(HarvestProjectsGeneratedFile)" />
+    </ItemGroup>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  CombineHarvestProjects
+
+    Combines HeatProject and HarvestProject items together and ensures each has HeatOutput metadata.
+  ================================================================================================
+  -->
+  <Target Name="CombineHarvestProjects"
+    Condition=" '@(HeatProject)' != '' or '@(HarvestProject)' != '' ">
+
+    <!-- Add default HeatOutputs for those without one specified -->
+    <CreateItem Include="@(HeatProject)" Condition= " '%(HeatProject.HeatOutput)' == '' "
+    AdditionalMetadata="HeatOutput=$(IntermediateOutputPath)_%(HeatProject.Filename).wxs">
+      <Output TaskParameter="Include" ItemName="_AllHeatProjects" />
+    </CreateItem>
+    <CreateItem Include="@(HarvestProject)" Condition= " '%(HarvestProject.HeatOutput)' == '' "
+    AdditionalMetadata="HeatOutput=$(IntermediateOutputPath)_%(HarvestProject.Filename).wxs">
+      <Output TaskParameter="Include" ItemName="_AllHeatProjects" />
+    </CreateItem>
+
+
+    <CreateItem Include="@(HeatProject)" Condition= " '%(HeatProject.HeatOutput)' != '' ">
+      <Output TaskParameter="Include" ItemName="_AllHeatProjects" />
+    </CreateItem>
+    <CreateItem Include="@(HarvestProject)" Condition= " '%(HarvestProject.HeatOutput)' != '' ">
+      <Output TaskParameter="Include" ItemName="_AllHeatProjects" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  HarvestProjects
+
+    Harvests outputs of other MSBuild projects files using the VS project extension to heat.exe.
+
+    [IN]
+    @(HarvestProject)
+    @(HeatProject)
+        - The list of projects to harvest. HeatProject is provided for backward compatibility.
+          You should use HarvestProject instead.
+
+    %(HarvestProject.Transforms)
+    %(HeatProject.Transforms)
+        - XSL transforms to apply to the harvested WiX.
+
+    %(HarvestProject.ProjectOutputGroups)
+    %(HeatProjects.ProjectOutputGroups)
+        - The project output groups to harvest 
+
+    [OUT]
+    %(HeatOutput)
+        - The generated .wxs files which are added to the @(Compile) item list.
+  ================================================================================================
+  -->
+  <ItemDefinitionGroup>
+    <HeatProject>
+      <Transforms>$(HarvestProjectsTransforms)</Transforms>
+      <ProjectOutputGroups>$(HarvestProjectsProjectOutputGroups)</ProjectOutputGroups>
+      <DirectoryIds>$(HarvestProjectsDirectoryIds)</DirectoryIds>
+    </HeatProject>
+    <HarvestProject>
+      <Transforms>$(HarvestProjectsTransforms)</Transforms>
+      <ProjectOutputGroups>$(HarvestProjectsProjectOutputGroups)</ProjectOutputGroups>
+      <DirectoryIds>$(HarvestProjectsDirectoryIds)</DirectoryIds>
+    </HarvestProject>
+  </ItemDefinitionGroup>
+
+  <PropertyGroup>
+    <HarvestProjectsDependsOn>CombineHarvestProjects</HarvestProjectsDependsOn>
+  </PropertyGroup>
+  <Target Name="HarvestProjects"
+    DependsOnTargets="$(HarvestProjectsDependsOn)"
+    Inputs="@(_AllHeatProjects);%(_AllHeatProjects.Transforms);$(MSBuildAllProjects);$(ProjectPath)"
+    Outputs="@(_AllHeatProjects -> '%(HeatOutput)')"
+    Condition=" '@(HeatProject)' != '' or '@(HarvestProject)' != '' ">
+
+    <HeatProject
+      NoLogo="$(HarvestProjectsNoLogo)"
+      SuppressAllWarnings="$(HarvestProjectsSuppressAllWarnings)"
+      SuppressSpecificWarnings="$(HarvestProjectsSuppressSpecificWarnings)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(HarvestProjectsTreatWarningsAsErrors)"
+      TreatSpecificWarningsAsErrors="$(HarvestProjectsTreatSpecificWarningsAsErrors)"
+      VerboseOutput="$(HarvestProjectsVerboseOutput)"
+      AutogenerateGuids="$(HarvestProjectsAutogenerateGuids)"
+      GenerateGuidsNow="$(HarvestProjectsGenerateGuidsNow)"
+      OutputFile="%(_AllHeatProjects.HeatOutput)"
+      SuppressFragments="$(HarvestProjectsSuppressFragments)"
+      SuppressUniqueIds="$(HarvestProjectsSuppressUniqueIds)"
+      Transforms="%(_AllHeatProjects.Transforms)"
+      Project="%(_AllHeatProjects.FullPath)"
+      ProjectOutputGroups="%(_AllHeatProjects.ProjectOutputGroups)"
+      GenerateType="%(_AllHeatProjects.GenerateType)"
+      DirectoryIds="%(_AllHeatProjects.DirectoryIds)"
+      ProjectName="%(_AllHeatProjects.ProjectName)"
+      Configuration="%(_AllHeatProjects.Configuration)"
+      Platform="%(_AllHeatProjects.Platform)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      GenerateWixVariables="$(HarvestProjectsGenerateWixVariables)"
+      AdditionalOptions="$(HarvestProjectsAdditionalOptions)">
+
+      <Output TaskParameter="OutputFile" ItemName="Compile" />
+      <Output TaskParameter="OutputFile" ItemName="FileWrites" />
+
+    </HeatProject>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  HarvestDirectory
+
+    Harvests directories using heat.exe.
+
+    [IN]
+    @(HarvestDirectory) - The list of directories to harvest.
+    %(HarvestDirectory.Transforms) - XSL transforms to apply to the harvested WiX.
+    %(HarvestDirectory.ComponentGroupName) -  The name of the ComponentGroup to create.
+    %(HarvestDirectory.DirectoryRefId) - The ID of the directory to reference instead of TARGETDIR.
+    %(HarvestDirectory.KeepEmptyDirectories) - Whether to create Directory entries for empty directories.
+    %(HarvestDirectory.PreprocessorVariable) - Substitute SourceDir for another variable name (ex: var.Dir).
+    %(HarvestDirectory.SuppressCom) - Suppress COM elements.
+    %(HarvestDirectory.SuppressRootDirectory) - Suppress a Directory element for the root directory.
+    $(HarvestDirectory.SuppressRegistry) - Suppress registry harvesting.
+
+    [OUT]
+    $(IntermediateOutputPath)_%(HarvestDirectory.ComponentGroupName)_dir.wxs
+        - The generated .wxs files which are added to the @(Compile) item list.
+  ================================================================================================
+  -->
+
+  <ItemDefinitionGroup>
+    <HarvestDirectory>
+      <Transforms>$(HarvestDirectoryTransforms)</Transforms>
+      <ComponentGroupName>$(HarvestDirectoryComponentGroupName)</ComponentGroupName>
+      <DirectoryRefId>$(HarvestDirectoryDirectoryRefId)</DirectoryRefId>
+      <KeepEmptyDirectories>$(HarvestDirectoryKeepEmptyDirectories)</KeepEmptyDirectories>
+      <PreprocessorVariable>$(HarvestDirectoryPreprocessorVariable)</PreprocessorVariable>
+      <SuppressCom>$(HarvestDirectorySuppressCom)</SuppressCom>
+      <SuppressRootDirectory>$(HarvestDirectorySuppressRootDirectory)</SuppressRootDirectory>
+      <SuppressRegistry>$(HarvestDirectorySuppressRegistry)</SuppressRegistry>
+    </HarvestDirectory>
+  </ItemDefinitionGroup>
+
+  <PropertyGroup>
+    <HarvestDirectoryDependsOn>
+      GetHarvestDirectoryContent
+    </HarvestDirectoryDependsOn>
+  </PropertyGroup>
+
+  <!-- Creates items to include content since wildcards will not work in Target/@Inputs. -->
+  <Target Name="GetHarvestDirectoryContent">
+    <CreateItem Include="@(HarvestDirectory->'%(FullPath)\**\*')">
+      <Output TaskParameter="Include" ItemName="_HarvestDirectoryContent" />
+    </CreateItem>
+  </Target>
+
+  <Target Name="HarvestDirectory"
+    DependsOnTargets="$(HarvestDirectoryDependsOn)"
+    Inputs="@(_HarvestDirectoryContent);%(HarvestDirectory.Transforms)"
+    Outputs="$(IntermediateOutputPath)_%(HarvestDirectory.ComponentGroupName)_dir.wxs"
+    Condition=" '@(HarvestDirectory)' != '' ">
+
+    <HeatDirectory
+      NoLogo="$(HarvestDirectoryNoLogo)"
+      SuppressAllWarnings="$(HarvestDirectorySuppressAllWarnings)"
+      SuppressSpecificWarnings="$(HarvestDirectorySuppressSpecificWarnings)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(HarvestDirectoryTreatWarningsAsErrors)"
+      TreatSpecificWarningsAsErrors="$(HarvestDirectoryTreatSpecificWarningsAsErrors)"
+      VerboseOutput="$(HarvestDirectoryVerboseOutput)"
+      AutogenerateGuids="$(HarvestDirectoryAutogenerateGuids)"
+      GenerateGuidsNow="$(HarvestDirectoryGenerateGuidsNow)"
+      OutputFile="$(IntermediateOutputPath)_%(HarvestDirectory.ComponentGroupName)_dir.wxs"
+      SuppressFragments="$(HarvestDirectorySuppressFragments)"
+      SuppressUniqueIds="$(HarvestDirectorySuppressUniqueIds)"
+      Transforms="%(HarvestDirectory.Transforms)"
+      Directory="@(HarvestDirectory)"
+      ComponentGroupName="%(HarvestDirectory.ComponentGroupName)"
+      DirectoryRefId="%(HarvestDirectory.DirectoryRefId)"
+      KeepEmptyDirectories="%(HarvestDirectory.KeepEmptyDirectories)"
+      PreprocessorVariable="%(HarvestDirectory.PreprocessorVariable)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)" 
+      SuppressCom="%(HarvestDirectory.SuppressCom)"
+      SuppressRootDirectory="%(HarvestDirectory.SuppressRootDirectory)"
+      SuppressRegistry="%(HarvestDirectory.SuppressRegistry)"
+      AdditionalOptions="$(HarvestDirectoryAdditionalOptions)">
+
+      <Output TaskParameter="OutputFile" ItemName="Compile" />
+      <Output TaskParameter="OutputFile" ItemName="FileWrites" />
+
+    </HeatDirectory>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  HarvestFile
+
+    Harvests files of different types using heat.exe. This can harvest registry from
+    self-registering files, files with typelibs, and more.
+
+    [IN]
+    @(HarvestFile) - The list of files to harvest.
+    %(HarvestFile.Transforms) - XSL transforms to apply to the harvested WiX.
+    %(HarvestFile.ComponentGroupName) - The name of the ComponentGroup to create.
+    %(HarvestFile.DirectoryRefId) - The ID of the directory to reference instead of TARGETDIR.
+    %(HarvestFile.PreprocessorVariable) - Substitute SourceDir for another variable name (ex: var.Dir).
+    %(HarvestFile.SuppressCom) - Suppress COM elements.
+    %(HarvestFile.SuppressRootDirectory) - Suppress a Directory element for the root directory.
+    $(HarvestFile.SuppressRegistry) - Suppress registry harvesting.
+
+    [OUT]
+    $(IntermediateOutputPath)_%(HarvestFile.Filename)_file.wxs
+        - The generated .wxs files which are added to the @(Compile) item list.
+  ================================================================================================
+  -->
+
+  <ItemDefinitionGroup>
+    <HarvestFile>
+      <Transforms>$(HarvestFileTransforms)</Transforms>
+      <ComponentGroupName>$(HarvestFileComponentGroupName)</ComponentGroupName>
+      <DirectoryRefId>$(HarvestFileDirectoryRefId)</DirectoryRefId>
+      <PreprocessorVariable>$(HarvestFilePreprocessorVariable)</PreprocessorVariable>
+      <SuppressCom>$(HarvestFileSuppressCom)</SuppressCom>
+      <SuppressRegistry>$(HarvestFileSuppressRegistry)</SuppressRegistry>
+      <SuppressRootDirectory>$(HarvestFileSuppressRootDirectory)</SuppressRootDirectory>
+    </HarvestFile>
+  </ItemDefinitionGroup>
+
+  <PropertyGroup>
+    <HarvestFileDependsOn></HarvestFileDependsOn>
+  </PropertyGroup>
+  <Target Name="HarvestFile"
+    DependsOnTargets="$(HarvestFileDependsOn)"
+    Inputs="@(HarvestFile);%(HarvestFile.Transforms)"
+    Outputs="$(IntermediateOutputPath)_%(HarvestFile.Filename)_file.wxs"
+    Condition=" '@(HarvestFile)' != '' ">
+
+    <HeatFile
+      NoLogo="$(HarvestFileNoLogo)"
+      SuppressAllWarnings="$(HarvestFileSuppressAllWarnings)"
+      SuppressSpecificWarnings="$(HarvestFileSuppressSpecificWarnings)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(HarvestFileTreatWarningsAsErrors)"
+      TreatSpecificWarningsAsErrors="$(HarvestFileTreatSpecificWarningsAsErrors)"
+      VerboseOutput="$(HarvestFileVerboseOutput)"
+      AutogenerateGuids="$(HarvestFileAutogenerateGuids)"
+      GenerateGuidsNow="$(HarvestFileGenerateGuidsNow)"
+      OutputFile="$(IntermediateOutputPath)_%(HarvestFile.Filename)_file.wxs"
+      SuppressFragments="$(HarvestFileSuppressFragments)"
+      SuppressUniqueIds="$(HarvestFileSuppressUniqueIds)"
+      Transforms="%(HarvestFile.Transforms)"
+      File="@(HarvestFile)"
+      ComponentGroupName="%(HarvestFile.ComponentGroupName)"
+      DirectoryRefId="%(HarvestFile.DirectoryRefId)"
+      PreprocessorVariable="%(HarvestFile.PreprocessorVariable)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)" 
+      SuppressCom="%(HarvestFile.SuppressCom)"
+      SuppressRegistry="%(HarvestFile.SuppressRegistry)"
+      SuppressRootDirectory="%(HarvestFile.SuppressRootDirectory)"
+      AdditionalOptions="$(HarvestFileAdditionalOptions)">
+
+      <Output TaskParameter="OutputFile" ItemName="Compile" />
+      <Output TaskParameter="OutputFile" ItemName="FileWrites" />
+
+    </HeatFile>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  RefreshGeneratedFile
+
+    Generates code based on metadata defined in project references.
+
+    [IN]
+    @(_MSBuildResolvedProjectReferencePaths) - The list of MSBuildable project references.
+
+    [OUT]
+    @(_GeneratedFiles) - The generated source file.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <RefreshGeneratedFileDependsOn></RefreshGeneratedFileDependsOn>
+  </PropertyGroup>
+  <Target Name="RefreshGeneratedFile"
+    DependsOnTargets="$(RefreshGeneratedFileDependsOn)"
+    Inputs="@(_MSBuildResolvedProjectReferencePaths);@(Compile);$(ProjectPath)"
+    Outputs="@(_GeneratedFiles)"
+    Condition=" ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module') and '@(_GeneratedFiles)' != '' ">
+
+    <RefreshGeneratedFile
+      GeneratedFiles="@(_GeneratedFiles)"
+      ProjectReferencePaths="@(_MSBuildResolvedProjectReferencePaths)" />
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  RefreshBundleGeneratedFile
+
+    Generates code for bundle projects based on metadata defined in project references.
+
+    [IN]
+    @(_MSBuildResolvedProjectReferencePaths) - The list of MSBuildable project references.
+
+    [OUT]
+    @(_GeneratedFiles) - The generated source file.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <RefreshBundleGeneratedFileDependsOn></RefreshBundleGeneratedFileDependsOn>
+  </PropertyGroup>
+  <Target Name="RefreshBundleGeneratedFile"
+    DependsOnTargets="$(RefreshBundleGeneratedFileDependsOn)"
+    Inputs="@(_MSBuildResolvedProjectReferencePaths);@(Compile);$(ProjectPath)"
+    Outputs="@(_GeneratedFiles)"
+    Condition=" '$(OutputType)' == 'Bundle' and '@(_GeneratedFiles)' != '' ">
+
+    <RefreshBundleGeneratedFile
+      GeneratedFiles="@(_GeneratedFiles)"
+      ProjectReferencePaths="@(_MSBuildResolvedProjectReferencePaths)" />
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  GenerateCompileWithObjectPath
+
+    Generates metadata on the for compile output objects.
+
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <GenerateCompileWithObjectPathDependsOn></GenerateCompileWithObjectPathDependsOn>
+  </PropertyGroup>
+  <Target Name="GenerateCompileWithObjectPath"
+    Condition=" '@(Compile)' != '' ">
+
+    <ItemGroup>
+      <_CompileWithObjectPath Include="@(Compile)">
+        <!-- If RelativeDir is not rooted and not in IntermediateOutputPath, and ObjectPath is undefined use IntermediateOutputPath\RelativeDir -->
+        <ObjectPath Condition=" '%(RelativeDir)%(FileName)%(Extension)' != '%(FullPath)' AND '%(RelativeDir)%(FileName)%(Extension)' != '$(IntermediateOutputPath)%(FileName)%(Extension)' AND '%(Compile.ObjectPath)' == '' " >$(IntermediateOutputPath)%(RelativeDir)</ObjectPath>
+        <!-- If RelativeDir is rooted or in IntermediateOutputPath, and ObjectPath is undefined use IntermediateOutputPath -->
+        <ObjectPath Condition=" ('%(RelativeDir)%(FileName)%(Extension)' == '%(FullPath)' OR '%(RelativeDir)%(FileName)%(Extension)' == '$(IntermediateOutputPath)%(FileName)%(Extension)') AND '%(Compile.ObjectPath)' == '' " >$(IntermediateOutputPath)</ObjectPath>
+      </_CompileWithObjectPath>
+    </ItemGroup>
+
+  </Target>
+
+  <!--
+  ================================================================================================
+  Compile
+
+    Compiles the wxs files into wixobj files using candle.exe.
+
+    [IN]
+    @(Compile) - The list of wxs files to compile.
+    @(Content) - Files that the project uses in the installer.
+    @(WixExtension) - The list of wixlib or wix dll extensions.
+
+    [OUT]
+    @(CompileObjOutput) - The compiled .wixobj files.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <CompileDependsOn>
+      PrepareForBuild;
+      ResolveWixExtensionReferences;
+      GenerateCompileWithObjectPath
+    </CompileDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Compile"
+    Inputs="@(Compile);
+            @(Content);
+            @(_ResolvedWixExtensionPaths);
+            @(_ResolvedProjectReferencePaths);
+            $(MSBuildAllProjects)"
+    Outputs="@(_CompileWithObjectPath  -> '%(ObjectPath)%(Filename)$(IntermediateExt)')"
+    DependsOnTargets="$(CompileDependsOn)"
+    Condition=" '@(Compile)' != '' ">
+
+    <Candle
+      SourceFiles="@(_CompileWithObjectPath)"
+      AdditionalOptions="$(CompilerAdditionalOptions)" 
+      DefineConstants="$(DefineConstants);$(SolutionDefineConstants);$(ProjectDefineConstants);$(ProjectReferenceDefineConstants)"
+      ExtensionDirectory="$(WixExtDir)"
+      Extensions="@(_ResolvedWixExtensionPaths)"
+      FipsCompliant="$(FipsCompliant)"
+      SuppressFilesVitalByDefault="$(SuppressFilesVitalByDefault)"
+      PreprocessToStdOut="$(PreprocessToStdOut)"
+      PreprocessToFile="$(PreprocessToFile)"
+      IncludeSearchPaths="$(IncludeSearchPaths)"
+      InstallerPlatform="$(InstallerPlatform)"
+      NoLogo="$(CompilerNoLogo)"
+      OnlyValidateDocuments="$(OnlyValidateDocuments)" 
+      OutputFile="%(_CompileWithObjectPath.ObjectPath)"
+      Pedantic="$(Pedantic)"
+      ReferencePaths="$(ReferencePaths)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      ShowSourceTrace="$(ShowSourceTrace)"
+      SuppressAllWarnings="$(CompilerSuppressAllWarnings)"
+      SuppressSchemaValidation="$(CompilerSuppressSchemaValidation)"
+      SuppressSpecificWarnings="$(CompilerSuppressSpecificWarnings)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(CompilerTreatWarningsAsErrors)"
+      TreatSpecificWarningsAsErrors="$(CompilerTreatSpecificWarningsAsErrors)" 
+      VerboseOutput="$(CompilerVerboseOutput)">
+    </Candle>
+
+    <ItemGroup>
+        <CompileObjOutput Include="@(_CompileWithObjectPath -> '%(ObjectPath)%(Filename)$(IntermediateExt)')" />
+    </ItemGroup>
+  </Target>
+
+  <!--
+  ================================================================================================
+  Inscribe
+
+    To be called after signing an MSI's cabs - inscribes an MSI with the digital signature of its
+      external cabs.
+
+    [IN/OUT]
+    @(Inscribe) - The list of database files to inscribe - database files will be modified in-place.
+
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <InscribeDependsOn>
+      PrepareForBuild;
+      ResolveWixExtensionReferences;
+      CompileAndLink;
+      SignCabs
+    </InscribeDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Inscribe"
+    DependsOnTargets="$(InscribeDependsOn)"
+    Condition=" '@(Inscribe)' != '' and '$(OutputCabList)' != ''">
+
+    <Insignia
+      DatabaseFiles="@(Inscribe)"
+      ToolPath="$(WixToolPath)"
+      NoLogo="$(InscribeNoLogo)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      SuppressAllWarnings="$(InscribeSuppressAllWarnings)"
+      SuppressSpecificWarnings="$(InscribeSuppressSpecificWarnings)"
+      TreatWarningsAsErrors="$(InscribeTreatWarningsAsErrors)"
+      TreatSpecificWarningsAsErrors="$(InscribeTreatSpecificWarningsAsErrors)"
+      VerboseOutput="$(InscribeVerboseOutput)"
+      AdditionalOptions="$(InscribeAdditionalOptions)">
+    </Insignia>
+  </Target>
+
+  <!--
+  ================================================================================================
+  Lib
+
+    Links the .wixobj, .wxl, .wixlib, wix extensions into a .wixlib file using lit.exe.
+
+    [IN]
+    @(CompileObjOutput) - The compiled .wixobj file.
+    @(EmbeddedResource) - The list of wxl files to use for localization.
+    @(WixObject) - The list of .wixobj files.
+    @(WixLibrary) - The list of .wixlib files.
+    @(WixExtension) - The list of wix dll extension files.
+
+    [OUT]
+    $(TargetPath) - The compiled .wixlib file.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <LibDependsOn>
+      PrepareForBuild;
+      ResolveWixExtensionReferences
+    </LibDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Lib"
+    Inputs="@(CompileObjOutput);
+            @(EmbeddedResource);
+            @(WixObject);
+            @(WixLibrary);
+            @(_ResolvedWixExtensionPaths);
+            $(MSBuildAllProjects)"
+    Outputs="$(TargetPath)"
+    DependsOnTargets="$(LibDependsOn)"
+    Condition=" '$(OutputType)' == 'Library' ">
+
+    <Lit
+      ObjectFiles="@(CompileObjOutput);@(WixObject);@(WixLibProjects);@(WixLibrary)"
+      AdditionalOptions="$(LibAdditionalOptions)" 
+      BaseInputPaths="$(LinkerBaseInputPaths)"
+      BindFiles="$(LibBindFiles)"
+      ExtensionDirectory="$(WixExtDir)"
+      Extensions="@(_ResolvedWixExtensionPaths)"
+      LocalizationFiles="@(EmbeddedResource)"
+      NoLogo="$(LibNoLogo)"
+      OutputFile="$(TargetPath)"
+      Pedantic="$(LibPedantic)"
+      ReferencePaths="$(ReferencePaths)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      SuppressAllWarnings="$(LibSuppressAllWarnings)"
+      SuppressIntermediateFileVersionMatching="$(LibSuppressIntermediateFileVersionMatching)"
+      SuppressSchemaValidation="$(LibSuppressSchemaValidation)"
+      SuppressSpecificWarnings="$(LibSuppressSpecificWarnings)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(LibTreatWarningsAsErrors)"
+      VerboseOutput="$(LibVerboseOutput)" />
+  </Target>
+
+  <!--
+  ================================================================================================
+  AssignCultures
+
+    Determines the final list of culture groups to build based on either the Cultures property or
+    those specified in .wxl files. 
+    
+      Culture groups specified in the Cultures property must be specified as a semi-colon 
+      delimited  list of groups, with comma-delimited cultures within a group.  
+      For example:
+        <Cultures>en-US,en;en-GB,en</Cultures>
+      This will build 2 targets, outputing to en-US and en-GB sub-folders.  Light will first look
+      for strings in the first culture (en-US or en-GB) then the second (en).
+    
+      Cultures of .wxl files will be used when the Culture property is not set.  The culture of a 
+      .wxl file is determined by the Culture attribute in the WixLocalization element in the file
+
+    Sets the OutputFolder metadata on each culture group.  In most cases this is the same as the 
+    first culture in the culture group.  When the Culture's property is unspecified and no .wxl 
+    files are provided this is the same as the output directory.  When the Culture's property 
+    specifies a single culture group and no .wxl files are provided this is the same as the output
+    directory.
+
+    Updates the TargetPath and TargetPdbPath properties to be used in subsequent targets.
+    
+    [IN]
+    @(EmbeddedResource) - The list of wxl files to use for localization.
+    $(Cultures) - The list of culture groups to build.
+
+    [OUT]
+    @(CultureGroup) - The list of culture group strings with OutputFolder metadata
+    $(TargetPath) - Property list of target link output MSIs/MSMs
+    $(TargetPdbPath) - Property list of target output pdbs
+    
+  ================================================================================================
+  -->
+  <Target 
+    Name="AssignCultures"
+    Condition=" ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module')">
+    
+    <WixAssignCulture
+      Cultures="$(Cultures)"
+      Files="@(EmbeddedResource)"
+      >
+
+      <Output TaskParameter="CultureGroups" ItemName="CultureGroup" />
+    </WixAssignCulture>
+
+    <!-- Build an itemgroup of outputs -->
+    <CreateItem
+      Include="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)">
+      <Output TaskParameter="Include"
+              ItemName="_TargetPathItems"/>
+    </CreateItem>
+    
+    <!-- Convert the itemgroup to a semicolon-delimited property -->
+    <CreateProperty
+      Value="@(_TargetPathItems)">
+      <Output TaskParameter="Value"
+              PropertyName="TargetPath"/>
+    </CreateProperty>
+
+    <!-- Build an itemgroup of PDB outputs -->
+    <CreateItem
+      Include="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetPdbExt)">
+      <Output TaskParameter="Include"
+              ItemName="_TargetPdbPathItems"/>
+    </CreateItem>
+
+    <!-- Convert the itemgroup to a semicolon-delimited property -->
+    <CreateProperty
+      Value="@(_TargetPdbPathItems)">
+      <Output TaskParameter="Value"
+              PropertyName="TargetPdbPath"/>
+    </CreateProperty>
+  </Target>
+
+  <!--
+  ================================================================================================
+  Link
+
+    Links the .wixobj, .wxl, .wixlib, wix extensions into an .msi or .msm file using light.exe,
+    once per culture group. All WXL files are passed into light and the culture switch determines
+    which are used
+
+    [IN]
+    @(CompileObjOutput) - The compiled .wixobj file.
+    @(CultureGroup) - The cultures to build
+    @(EmbeddedResource) - The list of wxl files to use for localization.
+    @(WixObject) - The list of .wixobj files.
+    @(WixLibrary) - The list of .wixlib files.
+    @(WixExtension) - The list of wix dll extension files.
+
+    [OUT]
+    $(TargetDir)\%(Culture)\$(TargetName)$(TargetExt) - The compiled .msi, .msm, or .exe files.
+  ================================================================================================
+  -->
+  <PropertyGroup>
+    <LinkDependsOn>
+      PrepareForBuild;
+      ResolveReferences;
+      AssignCultures;
+    </LinkDependsOn>
+  </PropertyGroup>
+  
+  <Target
+    Name="Link"
+    Inputs="@(CompileObjOutput);
+            @(EmbeddedResource);
+            @(WixObject);
+            @(_ResolvedProjectReferencePaths);
+            @(_ResolvedWixLibraryPaths);
+            @(_ResolvedWixExtensionPaths);
+            $(MSBuildAllProjects)"
+    Outputs="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)"
+    DependsOnTargets="$(LinkDependsOn)"
+    Condition=" ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module' or '$(OutputType)' == 'Bundle')">
+
+    <CreateProperty Condition=" '$(OutputType)' != 'Bundle' " Value="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetPdbExt)">
+      <Output TaskParameter="Value" PropertyName="PdbOutputFile" />
+    </CreateProperty>
+
+    <!-- Call light using the culture subdirectory for output -->
+    <Light
+      ObjectFiles="@(CompileObjOutput);@(WixObject);@(WixLibProjects);@(_ResolvedWixLibraryPaths)"
+      AdditionalOptions="$(LinkerAdditionalOptions)" 
+      AllowIdenticalRows="$(AllowIdenticalRows)"
+      AllowUnresolvedReferences="$(AllowUnresolvedReferences)"
+      AdditionalCub="$(AdditionalCub)" 
+      BackwardsCompatibleGuidGeneration="$(BackwardsCompatibleGuidGeneration)" 
+      BaseInputPaths="$(LinkerBaseInputPaths)"
+      BindFiles="$(LinkerBindFiles)"
+      CabinetCachePath="$(CabinetCachePath)"
+      CabinetCreationThreadCount="$(CabinetCreationThreadCount)"
+      Cultures="%(CultureGroup.Identity)"
+      CustomBinder="$(CustomBinder)"
+      DefaultCompressionLevel="$(DefaultCompressionLevel)"
+      DropUnrealTables="$(DropUnrealTables)"
+      ExactAssemblyVersions="$(ExactAssemblyVersions)"
+      ExtensionDirectory="$(WixExtDir)"
+      Extensions="@(_ResolvedWixExtensionPaths)"
+      Ices="$(Ices)"
+      LeaveTemporaryFiles="$(LeaveTemporaryFiles)"
+      LocalizationFiles="@(EmbeddedResource)"
+      NoLogo="$(LinkerNoLogo)"
+      OutputAsXml="$(OutputAsXml)"
+      OutputFile="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)"
+      PdbOutputFile="$(PdbOutputFile)"
+      Pedantic="$(LinkerPedantic)"
+      ReferencePaths="$(ReferencePaths)"
+      ReuseCabinetCache="$(ReuseCabinetCache)"
+      RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
+      SetMsiAssemblyNameFileVersion="$(SetMsiAssemblyNameFileVersion)"
+      SuppressAclReset="$(SuppressAclReset)"
+      SuppressAllWarnings="$(LinkerSuppressAllWarnings)"
+      SuppressAssemblies="$(SuppressAssemblies)"
+      SuppressDefaultAdminSequenceActions="$(SuppressDefaultAdminSequenceActions)"
+      SuppressDefaultAdvSequenceActions="$(SuppressDefaultAdvSequenceActions)"
+      SuppressDefaultUISequenceActions="$(SuppressDefaultUISequenceActions)"
+      SuppressFileHashAndInfo="$(SuppressFileHashAndInfo)"
+      SuppressFiles="$(SuppressFiles)"
+      SuppressIntermediateFileVersionMatching="$(LinkerSuppressIntermediateFileVersionMatching)"
+      SuppressIces="$(SuppressIces)"
+      SuppressLayout="$(SuppressLayout)"
+      SuppressLocalization="$(SuppressLocalization)"
+      SuppressMsiAssemblyTableProcessing="$(SuppressMsiAssemblyTableProcessing)"
+      SuppressPdbOutput="$(SuppressPdbOutput)"
+      SuppressSchemaValidation="$(LinkerSuppressSchemaValidation)"
+      SuppressValidation="$(SuppressValidation)"
+      SuppressSpecificWarnings="$(LinkerSuppressSpecificWarnings)"
+      SuppressTagSectionIdAttributeOnTuples="$(SuppressTagSectionIdAttributeOnTuples)"
+      ToolPath="$(WixToolPath)"
+      TreatWarningsAsErrors="$(LinkerTreatWarningsAsErrors)"
+      UnreferencedSymbolsFile="$(UnreferencedSymbolsFile)"
+      VerboseOutput="$(LinkerVerboseOutput)"
+      WixVariables="$(WixVariables)" />
+
+    <GetCabList Database="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)"
+        Condition="('$(OutputType)' == 'Package' or '$(OutputType)' == 'Module') and '$(OutputAsXml)' != 'true' " >
+      <Output TaskParameter="CabList" PropertyName="OutputCabs" />
+      <Output TaskParameter="CabList" ItemName="FileWrites" />
+    </GetCabList>
+
+    <GetLooseFileList Database="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)"
+        Condition="('$(OutputType)' == 'Package' or '$(OutputType)' == 'Module') and '$(OutputAsXml)' != 'true' " >
+      <Output TaskParameter="LooseFileList" ItemName="FileWrites" />
+    </GetLooseFileList>
+
+    <CreateItem Include="$(OutputCabs)" >
+      <Output TaskParameter="Include" ItemName="OutputCabList" />
+    </CreateItem>
+    
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  IncrementalClean Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  IncrementalClean
+
+    Remove files that were produced in a prior build but weren't produced in the current build.
+    The reason is that if, for example, the name of the .msi/.msm has changed we want to delete the
+    old copy.
+
+    Leave the Clean cache file containing only the files produced in the current build.
+  ==================================================================================================
+  -->
+  <Target
+    Name="IncrementalClean"
+    DependsOnTargets="_CleanGetCurrentAndPriorFileWrites">
+
+    <!-- Subtract list of files produced in prior builds from list of files produced in this build. -->
+    <CreateItem Include="@(_CleanPriorFileWrites)" Exclude="@(_CleanCurrentFileWrites)">
+      <Output TaskParameter="Include" ItemName="_CleanOrphanFileWrites" />
+    </CreateItem>
+
+    <!-- Find all files in the final output directory. -->
+    <FindUnderPath Path="$(OutDir)" Files="@(_CleanOrphanFileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanOrphanFileWritesInOutput" />
+    </FindUnderPath>
+
+    <!-- Find all files in the intermediate output directory. -->
+    <FindUnderPath Path="$(IntermediateOutputPath)" Files="@(_CleanOrphanFileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanOrphanFileWritesInIntermediate" />
+    </FindUnderPath>
+
+    <!-- Delete the orphaned files. -->
+    <Delete
+      Files="@(_CleanOrphanFileWritesInIntermediate);@(_CleanOrphanFileWritesInOutput)"
+      TreatErrorsAsWarnings="true">
+
+      <Output TaskParameter="DeletedFiles" ItemName="_CleanOrphanFilesDeleted" />
+    </Delete>
+
+    <!-- Create a list of everything that wasn't deleted. -->
+    <CreateItem Include="@(_CleanPriorFileWrites);@(_CleanCurrentFileWrites)" Exclude="@(_CleanOrphanFilesDeleted)">
+      <Output TaskParameter="Include" ItemName="_CleanRemainingFileWritesAfterIncrementalClean" />
+    </CreateItem>
+
+    <!-- Remove duplicates. -->
+    <RemoveDuplicates Inputs="@(_CleanRemainingFileWritesAfterIncrementalClean)">
+      <Output TaskParameter="Filtered" ItemName="_CleanUniqueRemainingFileWritesAfterIncrementalClean" />
+    </RemoveDuplicates>
+
+    <!-- Make sure the directory exists. -->
+    <MakeDir Directories="$(IntermediateOutputPath)" />
+
+    <!-- Write new list of current files back to disk, replacing the existing list.-->
+    <WriteLinesToFile
+      File="$(IntermediateOutputPath)$(CleanFile)"
+      Lines="@(_CleanUniqueRemainingFileWritesAfterIncrementalClean)"
+      Overwrite="true" />
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  _CleanGetCurrentAndPriorFileWrites
+
+    Get the list of files built in the current build and in prior builds.
+  ==================================================================================================
+  -->
+  <Target
+    Name="_CleanGetCurrentAndPriorFileWrites"
+    DependsOnTargets="_CheckForCompileAndLinkOutputs">
+
+    <!-- Read the list of files produced by a prior builds from disk. -->
+    <ReadLinesFromFile File="$(IntermediateOutputPath)$(CleanFile)">
+      <Output TaskParameter="Lines" ItemName="_CleanPriorFileWrites" />
+    </ReadLinesFromFile>
+
+    <!-- Find all files in the final output directory. -->
+    <FindUnderPath Path="$(OutDir)" Files="@(FileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanCurrentFileWritesInOutput" />
+    </FindUnderPath>
+
+    <!-- Find all files in the intermediate output directory. -->
+    <FindUnderPath Path="$(IntermediateOutputPath)" Files="@(FileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanCurrentFileWritesInIntermediate" />
+    </FindUnderPath>
+
+    <!-- Remove duplicates from files produced in this build. -->
+    <RemoveDuplicates Inputs="@(_CleanCurrentFileWritesInOutput);@(_CleanCurrentFileWritesInIntermediate)">
+      <Output TaskParameter="Filtered" ItemName="_CleanCurrentFileWrites" />
+    </RemoveDuplicates>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  _CheckForCompileAndLinkOutputs
+
+    Checks each file output from the main CompileAndLink target to make sure they really exist.
+    If they do, then record them in the clean cache.
+  ==================================================================================================
+  -->
+  <Target Name="_CheckForCompileAndLinkOutputs">
+
+    <!--Record the main compile outputs -->
+    <CreateItem Include="@(CompileObjOutput)" Condition="Exists('%(FullPath)')">
+      <Output TaskParameter="Include" ItemName="FileWrites" />
+    </CreateItem>
+
+    <!-- Record the link ouput(s) -->
+    <!-- Stuff into an itemgroup -->
+    <CreateItem Include="$(TargetPath);$(TargetPdbPath)">
+      <Output TaskParameter="Include" ItemName="_TempTargetOutputs" />
+    </CreateItem>
+
+    <CreateItem Include="@(_TempTargetOutputs)" Condition="Exists('%(FullPath)')">
+      <Output TaskParameter="Include" ItemName="FileWrites" />
+    </CreateItem>
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  Clean Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  Clean
+
+    Delete all intermediate and final build outputs.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <CleanDependsOn>
+      BeforeClean;
+      CleanReferencedProjects;
+      CoreClean;
+      AfterClean
+    </CleanDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="Clean"
+    DependsOnTargets="$(CleanDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  BeforeClean
+
+    Redefine this target in your project in order to run tasks just before Clean.
+  ==================================================================================================
+  -->
+  <Target Name="BeforeClean" />
+
+  <!--
+  ==================================================================================================
+  AfterClean
+
+    Redefine this target in your project in order to run tasks just after Clean.
+  ==================================================================================================
+  -->
+  <Target Name="AfterClean" />
+
+  <!--
+  ==================================================================================================
+  CleanReferencedProjects
+
+    Call Clean target on all Referenced Projects.
+  ==================================================================================================
+  -->
+  <Target
+    Name="CleanReferencedProjects">
+
+    <!-- TODO -->
+    <!--
+    When building the project directly from the command-line, clean those referenced projects that
+    exist on disk. For IDE builds and command-line .SLN builds, the solution build manager takes
+    care of this.
+    -->
+    <!--MSBuild
+      Projects="@(_MSBuildProjectReferenceExistent)"
+      Targets="Clean"
+      Condition=" '$(BuildingInsideVisualStudio)' != 'true' and '$(BuildingSolutionFile)' != 'true' and '@(_MSBuildProjectReferenceExistent)' != '' " /-->
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  CoreClean
+
+    Cleans all of the compile and link outputs as well as any intermediate files generated along
+    the way.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <CoreCleanDependsOn></CoreCleanDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="CoreClean"
+    DependsOnTargets="$(CoreCleanDependsOn)">
+
+    <!-- Read in list of files that were written to disk in past builds. -->
+    <ReadLinesFromFile File="$(IntermediateOutputPath)$(CleanFile)">
+      <Output TaskParameter="Lines" ItemName="_CleanPriorFileWrites" />
+    </ReadLinesFromFile>
+
+    <!-- Find all files in the final output directory. -->
+    <FindUnderPath Path="$(OutDir)" Files="@(_CleanPriorFileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanPriorFileWritesInOutput" />
+    </FindUnderPath>
+
+    <!-- Find all files in the intermediate output directory. -->
+    <FindUnderPath Path="$(IntermediateOutputPath)" Files="@(_CleanPriorFileWrites)">
+      <Output TaskParameter="InPath" ItemName="_CleanPriorFileWritesInIntermediate" />
+    </FindUnderPath>
+
+    <!-- Delete those files. -->
+    <Delete Files="@(_CleanPriorFileWritesInOutput);@(_CleanPriorFileWritesInIntermediate)" TreatErrorsAsWarnings="true">
+      <Output TaskParameter="DeletedFiles" ItemName="_CleanPriorFileWritesDeleted" />
+    </Delete>
+
+    <!-- Create a list of everything that wasn't deleted. -->
+    <CreateItem Include="@(_CleanPriorFileWrites)" Exclude="@(_CleanPriorFileWritesDeleted)">
+      <Output TaskParameter="Include" ItemName="_CleanRemainingFileWritesAfterClean" />
+    </CreateItem>
+
+    <!-- Remove duplicates. -->
+    <RemoveDuplicates Inputs="@(_CleanRemainingFileWritesAfterClean)">
+      <Output TaskParameter="Filtered" ItemName="_CleanUniqueRemainingFileWrites" />
+    </RemoveDuplicates>
+
+    <!-- Make sure the directory exists. -->
+    <MakeDir Directories="$(IntermediateOutputPath)" />
+
+    <!-- Write new list of current files back to disk. -->
+    <WriteLinesToFile File="$(IntermediateOutputPath)$(CleanFile)" Lines="@(_CleanUniqueRemainingFileWrites)" Overwrite="true" />
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  _CleanRecordFileWrites
+
+    Save the list of all files written to disk so that it can be used for "Clean" later.
+    Files written in prior builds are not removed from Clean cache.
+  ==================================================================================================
+  -->
+  <Target
+    Name="_CleanRecordFileWrites"
+    DependsOnTargets="_CleanGetCurrentAndPriorFileWrites">
+
+    <!-- Merge list of files from prior builds with the current build and then remove duplicates. -->
+    <RemoveDuplicates Inputs="@(_CleanPriorFileWrites);@(_CleanCurrentFileWrites)">
+      <Output TaskParameter="Filtered" ItemName="_CleanUniqueFileWrites" />
+    </RemoveDuplicates>
+
+    <!-- Make sure the directory exists. -->
+    <MakeDir Directories="$(IntermediateOutputPath)" />
+
+    <!-- Write merged file list back to disk, replacing existing contents. -->
+    <WriteLinesToFile
+        File="$(IntermediateOutputPath)$(CleanFile)"
+        Lines="@(_CleanUniqueFileWrites)"
+        Overwrite="true" />
+
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  PostBuildEvent Targets
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  PostBuildEvent
+
+    Run the post-build event. This step is driven by two parameters:
+
+    1) $(RunPostBuildEvent) is set by the user through the IDE and can be one of four values:
+       1) OnBuildSuccess: In this case, every step of the build must succeed for the post-build
+          step to run.
+       2) <Blank>: This is the same as OnBuildSuccess.
+       3) OnOutputUpdated: In this case, the post-build step will run only if the main output was
+          actually updated.
+       4) Always: The post-build step is always run.
+
+    2) $(_TargetOutputTimestampBeforeCompileAndLink) and $(_TargetOutputTimestampAfterCompileAndLink)
+       are set by the _TimeStampBeforeCompileAndLink and _TimeStampAfterCompileAndLink targets. If
+       the output was actually rebuilt during this build, then the two values will be different.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <PostBuildEventDependsOn>GetTargetPath</PostBuildEventDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="PostBuildEvent"
+    Condition=" '$(PostBuildEvent)' != '' and
+      ( '$(RunPostBuildEvent)' != 'OnOutputUpdated' or '$(_TargetOutputTimestampBeforeCompileAndLink)' != '$(_TargetOutputTimestampAfterCompileAndLink)' )"
+    DependsOnTargets="$(PostBuildEventDependsOn)">
+
+    <ReplaceString
+      Text="$(PostBuildEvent)"
+      OldValue="!(TargetPath)"
+      NewValue="$(TargetPath)">
+      
+      <Output TaskParameter="Text" PropertyName="ExpandedPostBuildEvent" />
+    </ReplaceString>
+
+    <ReplaceString
+      Text="$(ExpandedPostBuildEvent)"
+      OldValue="!(TargetPdbPath)"
+      NewValue="$(TargetPdbPath)">
+      
+      <Output TaskParameter="Text" PropertyName="ExpandedPostBuildEvent" />
+    </ReplaceString>
+
+    <Exec WorkingDirectory="$(OutDir)" Command="$(ExpandedPostBuildEvent)" />
+  </Target>
+
+  <!--
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  AllProjectOutputGroups Section
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  //////////////////////////////////////////////////////////////////////////////////////////////////
+  -->
+
+  <!--
+  ==================================================================================================
+  AllProjectOutputGroups
+
+    The targets below drive output groups, which provide generic information about a
+    project's inputs (e.g., content files, compilation sources, etc.) and built outputs
+    (e.g., built EXE/DLL, PDB, XML documentation files, etc.)
+
+    Each target may produce two kinds of items:  outputs and dependencies. Outputs are
+    items from the current project; dependencies are items that are brought into the
+    current project as a result of referencing other projects or components.
+
+    For both outputs and dependencies, the Include attribute
+    specifies the location of the output/dependency; it must be a full path. Any number
+    of additional attributes may be placed on an output/dependency item.
+  ==================================================================================================
+  -->
+  <Target
+    Name="AllProjectOutputGroups"
+    DependsOnTargets="
+      BuiltProjectOutputGroup;
+      DebugSymbolsProjectOutputGroup;
+      DocumentationProjectOutputGroup;
+      SatelliteDllsProjectOutputGroup;
+      SourceFilesProjectOutputGroup;
+      ContentFilesProjectOutputGroup;
+      SGenFilesOutputGroup" />
+
+  <!-- 
+  This is the key output for the BuiltProjectOutputGroup and is meant to be read directly from the IDE.
+  Reading an item is faster than invoking a target.
+  -->
+  <ItemGroup>
+    <BuiltProjectOutputGroupKeyOutput Include="$(TargetPath)">
+      <IsKeyOutput>true</IsKeyOutput>
+      <FinalOutputPath>$(TargetPath)</FinalOutputPath>
+      <TargetPath>$(TargetFileName)</TargetPath>
+    </BuiltProjectOutputGroupKeyOutput>
+  </ItemGroup>
+
+  <!--
+  ==================================================================================================
+  BuiltProjectOutputGroup
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <BuiltProjectOutputGroupDependsOn>PrepareForBuild;AssignCultures</BuiltProjectOutputGroupDependsOn>
+    <AddAppConfigToBuildOutputs Condition="('$(AddAppConfigToBuildOutputs)' == '') and ('$(OutputType)' != 'library')">true</AddAppConfigToBuildOutputs>
+  </PropertyGroup>
+  <Target
+    Name="BuiltProjectOutputGroup"
+    Outputs="@(BuiltProjectOutputGroupOutput)"
+    DependsOnTargets="$(BuiltProjectOutputGroupDependsOn)">
+
+    <!-- Don't add BuiltProjectOutputGroupKeyOutput - to avoid duplicates, we only want to get the updated list of TargetPaths from the TargetPath property below -->
+
+    <!-- Convert intermediate items into final items; this way we can get the full path for each item -->
+    <ItemGroup>
+        <BuiltProjectOutputGroupOutput Include="@(_BuiltProjectOutputGroupOutputIntermediate->'%(FullPath)')">
+            <!-- For compatibility with 2.0 -->
+            <OriginalItemSpec Condition="'%(_BuiltProjectOutputGroupOutputIntermediate.OriginalItemSpec)' == ''">%(_BuiltProjectOutputGroupOutputIntermediate.FullPath)</OriginalItemSpec>
+        </BuiltProjectOutputGroupOutput>
+    </ItemGroup>
+
+    <!-- Include build output(s).  Different than predefined itemgroup since AssignCultures target may change it -->
+    <CreateItem
+      Include="$(TargetPath)">
+      <Output TaskParameter="Include" ItemName="BuiltProjectOutputGroupOutput" />
+    </CreateItem>
+
+    <GetCabList Database="@(BuiltProjectOutputGroupKeyOutput)" Condition="('$(OutputType)' == 'Package' or '$(OutputType)' == 'Module')">
+      <Output TaskParameter="CabList" ItemName="BuiltProjectOutputGroupOutput" />
+    </GetCabList>
+
+    <GetLooseFileList Database="@(BuiltProjectOutputGroupKeyOutput)" Condition="('$(OutputType)' == 'Package' or '$(OutputType)' == 'Module')" >
+      <Output TaskParameter="LooseFileList" ItemName="BuiltProjectOutputGroupOutput" />
+    </GetLooseFileList>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  DebugSymbolsProjectOutputGroup
+
+    Populates the Debug Symbols project output group.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <DebugSymbolsProjectOutputGroupDependsOn>AssignCultures</DebugSymbolsProjectOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="DebugSymbolsProjectOutputGroup"
+    Outputs="@(DebugSymbolsProjectOutputGroupOutput)"
+    DependsOnTargets="$(DebugSymbolsProjectOutputGroupDependsOn)">
+
+    <!-- Include build output pdb(s).  Different than predefined itemgroup since AssignCultures target may change -->
+    <CreateItem
+      Include="$(TargetPdbPath)"
+      Condition=" '$(SuppressPdbOutput)' != 'true' ">
+      <Output TaskParameter="Include" ItemName="DebugSymbolsProjectOutputGroupOutput" />
+    </CreateItem>
+  </Target>
+
+  <!--
+  ==================================================================================================
+  DocumentationProjectOutputGroup
+
+    Populates the Documentation project output group.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <DocumentationProjectOutputGroupDependsOn></DocumentationProjectOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="DocumentationProjectOutputGroup"
+    Outputs="@(DocumentationProjectOutputGroupOutput)"
+    DependsOnTargets="$(DocumentationProjectOutputGroupDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  SatelliteDllsProjectOutputGroup
+
+    Populates the Satellite Files project output group.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <SatelliteDllsProjectOutputGroupDependsOn>PrepareForBuild</SatelliteDllsProjectOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="SatelliteDllsProjectOutputGroup"
+    Outputs="@(SatelliteDllsProjectOutputGroupOutput)"
+    DependsOnTargets="$(SatelliteDllsProjectOutputGroupDependsOn)" />
+
+  <!--
+  ==================================================================================================
+  SourceFilesProjectOutputGroup
+
+    Populates the Source Files project output group.
+    Source files are items in the project whose type is "Compile" and "EmbeddedResource".
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <SourceFilesProjectOutputGroupDependsOn>PrepareForBuild</SourceFilesProjectOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="SourceFilesProjectOutputGroup"
+    Outputs="@(SourceFilesProjectOutputGroupOutput)"
+    DependsOnTargets="$(SourceFilesProjectOutputGroupDependsOn)">
+
+    <AssignTargetPath Files="@(Compile)" RootFolder="$(MSBuildProjectDirectory)">
+      <Output TaskParameter="AssignedFiles" ItemName="_CompileWithTargetPath"  />
+    </AssignTargetPath>
+
+    <AssignTargetPath Files="@(EmbeddedResource)" RootFolder="$(MSBuildProjectDirectory)">
+      <Output TaskParameter="AssignedFiles" ItemName="_EmbeddedResourceWithTargetPath" />
+    </AssignTargetPath>
+
+    <!-- First we deal with Compile and EmbeddedResource -->
+    <CreateItem Include="@(_CompileWithTargetPath->'%(FullPath)');@(_EmbeddedResourceWithTargetPath->'%(FullPath)')">
+      <Output TaskParameter="Include" ItemName="SourceFilesProjectOutputGroupOutput" />
+    </CreateItem>
+
+    <!-- Include the project file -->
+    <CreateItem Include="$(MSBuildProjectFullPath)" AdditionalMetadata="TargetPath=$(ProjectFileName)">
+      <Output TaskParameter="Include" ItemName="SourceFilesProjectOutputGroupOutput" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  ContentFilesProjectOutputGroup
+
+    Populates the Content Files project output group.
+    Content files are items in the project whose type is "Content".
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <ContentFilesProjectOutputGroupDependsOn>PrepareForBuild</ContentFilesProjectOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="ContentFilesProjectOutputGroup"
+    Outputs="@(ContentFilesProjectOutputGroupOutput)"
+    DependsOnTargets="$(ContentFilesProjectOutputGroupDependsOn)">
+
+    <AssignTargetPath Files="@(Content)" RootFolder="$(MSBuildProjectDirectory)">
+      <Output TaskParameter="AssignedFiles" ItemName="ContentWithTargetPath" />
+    </AssignTargetPath>
+
+    <!-- Convert items into final items; this way we can get the full path for each item. -->
+    <CreateItem Include="@(ContentWithTargetPath->'%(FullPath)')">
+      <Output TaskParameter="Include" ItemName="ContentFilesProjectOutputGroupOutput" />
+    </CreateItem>
+
+  </Target>
+
+  <!--
+  ==================================================================================================
+  SGenFilesOutputGroup
+
+    Populates the GenerateSerializationAssemblies Files project output group.
+    GenerateSerializationAssemblies files are those generated by the GenerateSerializationAssemblies
+    target and task.
+  ==================================================================================================
+  -->
+  <PropertyGroup>
+    <SGenFilesOutputGroupDependsOn></SGenFilesOutputGroupDependsOn>
+  </PropertyGroup>
+  <Target
+    Name="SGenFilesOutputGroup"
+    Outputs="@(SGenFilesOutputGroupOutput)"
+    DependsOnTargets="$(SGenFilesOutputGroupDependsOn)" />
+
+  <!-- Extension point: Define CustomAfterWixTargets to a .targets file that you want to include after this file. -->
+  <Import Project="$(CustomAfterWixTargets)" Condition=" '$(CustomAfterWixTargets)' != '' and Exists('$(CustomAfterWixTargets)')" />
+
+  <!-- MSBuildToolsVersion is set for MSBuild 3.5 and later, which is a requirement for lux.targets. -->
+  <Import Project="$(LuxTargetsPath)" Condition=" '$(MSBuildToolsVersion)' != '' and '$(LuxTargetsPath)' != '' and Exists('$(LuxTargetsPath)')" />
+</Project>
diff --git a/wui.dll b/wui.dll
new file mode 100755
index 0000000..95b7aad
--- /dev/null
+++ b/wui.dll
Binary files differ
