Browse Source

Updated to WiX 3.0.5301

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@4060 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 16 years ago
parent
commit
ceef846b4c
  1. 14
      data/schemas/gaming.xsd
  2. 4
      data/schemas/iis.xsd
  3. 8
      data/schemas/netfx.xsd
  4. 26
      data/schemas/sql.xsd
  5. 238
      data/schemas/wix.xsd
  6. BIN
      src/Tools/wix/Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll
  7. BIN
      src/Tools/wix/WixComPlusExtension.dll
  8. BIN
      src/Tools/wix/WixCop.exe
  9. BIN
      src/Tools/wix/WixDifxAppExtension.dll
  10. BIN
      src/Tools/wix/WixDirectXExtension.dll
  11. BIN
      src/Tools/wix/WixFirewallExtension.dll
  12. BIN
      src/Tools/wix/WixGamingExtension.dll
  13. BIN
      src/Tools/wix/WixIIsExtension.dll
  14. BIN
      src/Tools/wix/WixIsolatedAppExtension.dll
  15. BIN
      src/Tools/wix/WixMsmqExtension.dll
  16. BIN
      src/Tools/wix/WixNetFxExtension.dll
  17. BIN
      src/Tools/wix/WixOfficeExtension.dll
  18. BIN
      src/Tools/wix/WixPSExtension.dll
  19. BIN
      src/Tools/wix/WixSqlExtension.dll
  20. BIN
      src/Tools/wix/WixTasks.dll
  21. BIN
      src/Tools/wix/WixUIExtension.dll
  22. BIN
      src/Tools/wix/WixUtilExtension.dll
  23. BIN
      src/Tools/wix/WixVSExtension.dll
  24. BIN
      src/Tools/wix/candle.exe
  25. BIN
      src/Tools/wix/dark.exe
  26. BIN
      src/Tools/wix/difxapp_x64.wixlib
  27. BIN
      src/Tools/wix/difxapp_x86.wixlib
  28. BIN
      src/Tools/wix/heat.exe
  29. BIN
      src/Tools/wix/light.exe
  30. BIN
      src/Tools/wix/lit.exe
  31. BIN
      src/Tools/wix/melt.exe
  32. BIN
      src/Tools/wix/pyro.exe
  33. BIN
      src/Tools/wix/smoke.exe
  34. BIN
      src/Tools/wix/torch.exe
  35. BIN
      src/Tools/wix/wconsole.dll
  36. BIN
      src/Tools/wix/winterop.dll
  37. BIN
      src/Tools/wix/wix.dll
  38. 378
      src/Tools/wix/wix.targets
  39. BIN
      src/Tools/wix/wui.dll

14
data/schemas/gaming.xsd

@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
<xs:annotation>
<xs:documentation>
Registers this extension for the
<html:a href="http://msdn2.microsoft.com/en-us/library/bb173448.aspx">rich saved games</html:a>
<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>
@ -40,7 +40,7 @@ @@ -40,7 +40,7 @@
<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://msdn2.microsoft.com/en-us/library/bb173432.aspx">The Windows Vista Game Explorer</html:a>.
<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
@ -53,7 +53,7 @@ @@ -53,7 +53,7 @@
<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.</xs:documentation>
<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"/>
@ -81,9 +81,9 @@ @@ -81,9 +81,9 @@
<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://msdn2.microsoft.com/en-us/library/bb173450.aspx">
<html:a href="http://msdn.microsoft.com/library/bb173450.aspx" target="_blank">
Game Explorer Tasks
</html:a>.
</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>
@ -104,9 +104,9 @@ @@ -104,9 +104,9 @@
<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://msdn2.microsoft.com/en-us/library/bb173450.aspx">
<html:a href="http://msdn.microsoft.com/library/bb173450.aspx" target="_blank">
Game Explorer Tasks
</html:a>.
</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>

4
data/schemas/iis.xsd

@ -428,7 +428,7 @@ @@ -428,7 +428,7 @@
<xs:element name="Certificate">
<xs:annotation>
<xs:documentation>
Used to install and unintall certificates.
Used to install and uninstall certificates.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
@ -635,7 +635,7 @@ @@ -635,7 +635,7 @@
<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, directory, or vroot, by defining this element in a common location and referring to it by setting the WebApplication attribute of the WebSite, WebDir, and WebVirtualDir elements.</xs:documentation>
<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>

8
data/schemas/netfx.xsd

@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
<xs:annotation>
<xs:documentation>
Improves the performance of managed applications by creating native images.
Requires the .NET Framework 2.0 to be installed on the target machine since
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>
@ -109,7 +109,7 @@ @@ -109,7 +109,7 @@
<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 is not
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>
@ -119,7 +119,7 @@ @@ -119,7 +119,7 @@
<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 is not
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>
@ -128,7 +128,7 @@ @@ -128,7 +128,7 @@
<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 is not present on the
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>

26
data/schemas/sql.xsd

@ -72,7 +72,7 @@ @@ -72,7 +72,7 @@
<xs:attribute name="Database" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the database. If the name does not follow the SQL server "Rules for Regular Identifiers" (see <html:a href="http://msdn.microsoft.com/library/en-us/acdata/ac_8_con_03_6e9e.asp">MSDN</html:a>) it must be surrounded by quotes or square brackets. Since this value can be formatted text, this means that if you choose to use square brackets you must use the MSI method for escaping square brackets, for example: [\[]blah[\]].
The name of the database. If the name does not follow the SQL server "Rules for Regular Identifiers" (see <html:a href="http://msdn.microsoft.com/en-us/library/ms175874.aspx">MSDN</html:a>) it must be surrounded by quotes or square brackets. Since this value can be formatted text, this means that if you choose to use square brackets you must use the MSI method for escaping square brackets, for example: [\[]blah[\]].
</xs:documentation>
</xs:annotation>
</xs:attribute>
@ -232,32 +232,32 @@ @@ -232,32 +232,32 @@
</xs:attribute>
<xs:attribute name="ExecuteOnInstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies to execute the script when the associated component is installed.</xs:documentation>
<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.</xs:documentation>
<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.</xs:documentation>
<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.</xs:documentation>
<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.</xs:documentation>
<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.</xs:documentation>
<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">
@ -291,34 +291,34 @@ @@ -291,34 +291,34 @@
</xs:attribute>
<xs:attribute name="ExecuteOnInstall" type="YesNoType">
<xs:annotation>
<xs:documentation>Specifies to execute the string when the associated component is installed.</xs:documentation>
<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.
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.</xs:documentation>
<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.</xs:documentation>
<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.</xs:documentation>
<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.</xs:documentation>
<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">

238
data/schemas/wix.xsd

@ -488,6 +488,7 @@ @@ -488,6 +488,7 @@
<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
@ -589,21 +590,36 @@ @@ -589,21 +590,36 @@
</xs:element>
<xs:element name="Validate">
<xs:annotation><xs:documentation>Sets information on the patch transform that determines to which product the transform applies and what errors should be ignored when applying the patch transform.</xs:documentation></xs:annotation>
<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 upgrade ProductCode match the target ProductCode. The default is 'yes'.</xs:documentation>
<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 upgrade ProductLanguage match the target ProductLanguage. The default is 'no'.</xs:documentation>
<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 in the ProductVersion to check. The default is 'Update'.</xs:documentation>
<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">
@ -627,33 +643,33 @@ @@ -627,33 +643,33 @@
</xs:attribute>
<xs:attribute name="ProductVersionOperator" default="Equal">
<xs:annotation>
<xs:documentation>Determines how the target and upgrade ProductVersions are compared. The default is 'Equal'.</xs:documentation>
<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>Upgrade ProductVersion &lt; target ProductVersion.</xs:documentation>
<xs:documentation>Installed ProductVersion &lt; target ProductVersion.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="LesserOrEqual">
<xs:annotation>
<xs:documentation>Upgrade ProductVersion &lt;= target ProductVersion.</xs:documentation>
<xs:documentation>Installed ProductVersion &lt;= target ProductVersion.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Equal">
<xs:annotation>
<xs:documentation>Upgrade ProductVersion = target ProductVersion.</xs:documentation>
<xs:documentation>Installed ProductVersion = target ProductVersion.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="GreaterOrEqual">
<xs:annotation>
<xs:documentation>Upgrade ProductVersion &gt;= target ProductVersion.</xs:documentation>
<xs:documentation>Installed ProductVersion &gt;= target ProductVersion.</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Greater">
<xs:annotation>
<xs:documentation>Upgrade ProductVersion &gt; target ProductVersion.</xs:documentation>
<xs:documentation>Installed ProductVersion &gt; target ProductVersion.</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
@ -661,7 +677,7 @@ @@ -661,7 +677,7 @@
</xs:attribute>
<xs:attribute name="UpgradeCode" type="YesNoType" default="yes">
<xs:annotation>
<xs:documentation>Requires that the upgrade UpgradeCode match the target UpgradeCode. The default is 'yes'.</xs:documentation>
<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">
@ -971,7 +987,7 @@ @@ -971,7 +987,7 @@
with Windows Installer 3.1.
</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="MoreInfoURL" type="xs:string">
<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>
@ -1022,17 +1038,41 @@ @@ -1022,17 +1038,41 @@
</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 may receive this patch (or '*' for all products).
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 receive this patch (or '*' for all products).
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>
@ -1872,12 +1912,15 @@ @@ -1872,12 +1912,15 @@
<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 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 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 the parent DirectorySearch/@Depth is greater than 1, this must either be set to the parent DirectorySearch/@Id or absent.</xs:documentation></xs:annotation>
<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>
@ -1938,7 +1981,7 @@ @@ -1938,7 +1981,7 @@
<xs:appinfo>
<xse:seeAlso ref="FileSearch"/>
<xse:remarks>
<html:p>If you intend to use a FileSearchRef to reference a FileSearch but they have different parent elements, you must use a FileSearch instead of a FileSearchRef. This is because the DrLocator table in an installer package is keyed on the Id, Parent, and Path. A file is associated with its parent directory in the DrLocator table. When a FileSearch and a FileSearchRef element are under different parent elements, the Parent will automatically be different so a FileSearchRef will not have a FileSearch to reference.</html:p>
<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>
@ -1959,6 +2002,12 @@ @@ -1959,6 +2002,12 @@
<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>
@ -1979,13 +2028,12 @@ @@ -1979,13 +2028,12 @@
<xs:attribute name="Depth" type="xs:integer">
<xs:annotation>
<xs:documentation>
Depth below the path that the installer searches for the file or directory specified by the search.
If this value is not specified, the depth is assumed to be 0.
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 result of this search to the value of the outer Property.</xs:documentation></xs:annotation>
<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>
@ -1996,8 +2044,9 @@ @@ -1996,8 +2044,9 @@
<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>If you intend to use a DirectorySearchRef to reference a DirectorySearch but they have different parent elements, you must use a DirectorySearch instead of a DirectorySearchRef. This is because the DrLocator table in an installer package is keyed on the Id, Parent, and Path. When a DirectorySearch and a DirectorySearchRef element are under different parent elements, the Parent will automatically be different so a DirectorySearchRef will not have a DirectorySearch to reference.</html:p>
<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>
@ -2019,9 +2068,6 @@ @@ -2019,9 +2068,6 @@
<xs:attribute name="Path" type="xs:string">
<xs:annotation><xs:documentation>Path on the user's system. Either absolute, or relative to containing directories.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="AssignToProperty" type="YesNoType">
<xs:annotation><xs:documentation>Set the result of this search to the value of the outer Property.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
@ -2159,6 +2205,15 @@ @@ -2159,6 +2205,15 @@
<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>
@ -2217,7 +2272,7 @@ @@ -2217,7 +2272,7 @@
<xs:attribute name="Type" use="required">
<xs:annotation>
<xs:documentation>
The value must be 'file' if the last child is a FileSearch element and must be 'directory' if last child is a DirectorySearch element.
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>
@ -2225,26 +2280,33 @@ @@ -2225,26 +2280,33 @@
<xs:enumeration value="directory">
<xs:annotation>
<xs:documentation>
Sets a directory path from the registry value.
The registry value contains the path to a directory.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="file">
<xs:annotation>
<xs:documentation>
Sets a file path from the registry value.
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/>
DWORD: Starts with '#' optionally followed by '+' or '-'.<html:br />
REG_BINARY: Starts with '#x' and the installer converts and saves each hexadecimal digit (nibble) as an ASCII character prefixed by '#x'.<html:br/>
REG_EXPAND_SZ: Starts with '#%'.<html:br/>
REG_MULTI_SZ: Starts with '[~]' and ends with '[~]'.<html:br/>
REG_SZ: No prefix, but if the first character of the registry value is '#', the installer escapes the character by prefixing it with another '#'.<html:br/>
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>
@ -2588,17 +2650,17 @@ @@ -2588,17 +2650,17 @@
<xse:seeAlso ref="Shortcut"/>
<xse:msiRef table="MsiShortcutProperty" />
</xs:appinfo>
<xs:documentation>Property values for a shortcut.</xs:documentation>
<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>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: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>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:annotation><xs:documentation>A formatted string supplying the value of the property.</xs:documentation></xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
@ -3063,7 +3125,16 @@ @@ -3063,7 +3125,16 @@
</xs:simpleType>
</xs:attribute>
<xs:attribute name="DiskId" type="xs:integer">
<xs:annotation><xs:documentation>Specifies the Media this File should be sourced on. This attribute overrides the default DiskId attribute from the parent Component element. If no DiskId attribute is specifed, the default is "1".</xs:documentation></xs:annotation>
<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 <a href="\html\specifying_source_files.htm">Specifying source files</a>.</xs:documentation></xs:annotation>
@ -4098,8 +4169,8 @@ @@ -4098,8 +4169,8 @@
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="ProgId" minOccurs="0">
<xs:annotation><xs:documentation>Version-independent ProgId must be child element of actual ProgId. Nesting further ProgId elements within the Version-independent ProgId is disallowed.</xs:documentation></xs:annotation>
<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 <a href="http://support.microsoft.com/kb/305745">http://support.microsoft.com/kb/305745</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>
@ -4347,6 +4418,25 @@ @@ -4347,6 +4418,25 @@
</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>
@ -4688,10 +4778,17 @@ @@ -4688,10 +4778,17 @@
<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". File Id of the
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>
@ -4817,6 +4914,9 @@ @@ -4817,6 +4914,9 @@
</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>
@ -5114,7 +5214,7 @@ @@ -5114,7 +5214,7 @@
<xs:element name="ServiceConfig">
<xs:annotation>
<xs:documentation>
Configures a service being installed or one that already exists.
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"/>
@ -5207,7 +5307,7 @@ @@ -5207,7 +5307,7 @@
<xs:element name="ServiceConfigFailureActions">
<xs:annotation>
<xs:documentation>
Configures the failure actions for a service being installed or one that already exists.
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"/>
@ -5584,11 +5684,10 @@ @@ -5584,11 +5684,10 @@
<xs:attribute name="DiskId" type="xs:integer">
<xs:annotation>
<xs:documentation>
This attribute must be set either on a Component element or all of its children File
elements. The value of this attribute should correspond to the Id attribute of a
Media element authored elsewhere. By creating this connection between a component (or
particular files), you set the packaging options to the values specified in the Media
element (values such as compression level, cab embedding, etc...).
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>
@ -5883,7 +5982,7 @@ @@ -5883,7 +5982,7 @@
</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
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>
@ -5984,11 +6083,9 @@ @@ -5984,11 +6083,9 @@
<xs:annotation>
<xs:documentation>
Sets the default disk identifier for the files contained in this directory.
This attribute must be set on a Component, Directory, or DirectoryRef element or all of its children File
elements, else the default disk identifier of 1 is assumed. The value of this attribute should correspond to the Id attribute of a
Media element authored elsewhere. By creating this connection between a component (or
particular files), you set the packaging options to the values specified in the Media
element (values such as compression level, cab embedding, etc...).
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>
@ -6052,7 +6149,7 @@ @@ -6052,7 +6149,7 @@
<xs:annotation>
<xs:documentation>
The name of the directory on the source media.
If this attribute is note specified, the Windows Installer will default to the Name attribute.
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.
@ -6103,11 +6200,9 @@ @@ -6103,11 +6200,9 @@
<xs:annotation>
<xs:documentation>
Sets the default disk identifier for the files contained in this directory.
This attribute must be set on a Component, Directory, or DirectoryRef element or all of its children File
elements, else the default disk identifier of 1 is assumed. The value of this attribute should correspond to the Id attribute of a
Media element authored elsewhere. By creating this connection between a component (or
particular files), you set the packaging options to the values specified in the Media
element (values such as compression level, cab embedding, etc...).
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>
@ -6282,7 +6377,7 @@ @@ -6282,7 +6377,7 @@
<xs:enumeration value="no">
<xs:annotation>
<xs:documentation>
Prevents this feature from being advertised by settting the msidbFeatureAttributesDisallowAdvertise attribute.
Prevents this feature from being advertised by setting the msidbFeatureAttributesDisallowAdvertise attribute.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
@ -8517,9 +8612,12 @@ @@ -8517,9 +8612,12 @@
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>Unique identifier for embedded UI.</xs:documentation>
<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">
@ -8602,12 +8700,23 @@ @@ -8602,12 +8700,23 @@
<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 Id attribute will be used.
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>
@ -8837,7 +8946,7 @@ @@ -8837,7 +8946,7 @@
<xs:annotation><xs:documentation>Combined with the Dialog Id to make up the primary key of the Control table.</xs:documentation></xs:annotation>
</xs:attribute>
<xs:attribute name="Type" use="required" type="xs:string">
<xs:annotation><xs:documentation>The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo</xs:documentation></xs:annotation>
<xs: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>
@ -8866,6 +8975,9 @@ @@ -8866,6 +8975,9 @@
<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>

BIN
src/Tools/wix/Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll

Binary file not shown.

BIN
src/Tools/wix/WixComPlusExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixCop.exe

Binary file not shown.

BIN
src/Tools/wix/WixDifxAppExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixDirectXExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixFirewallExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixGamingExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixIIsExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixIsolatedAppExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixMsmqExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixNetFxExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixOfficeExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixPSExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixSqlExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixTasks.dll

Binary file not shown.

BIN
src/Tools/wix/WixUIExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixUtilExtension.dll

Binary file not shown.

BIN
src/Tools/wix/WixVSExtension.dll

Binary file not shown.

BIN
src/Tools/wix/candle.exe

Binary file not shown.

BIN
src/Tools/wix/dark.exe

Binary file not shown.

BIN
src/Tools/wix/difxapp_x64.wixlib

Binary file not shown.

BIN
src/Tools/wix/difxapp_x86.wixlib

Binary file not shown.

BIN
src/Tools/wix/heat.exe

Binary file not shown.

BIN
src/Tools/wix/light.exe

Binary file not shown.

BIN
src/Tools/wix/lit.exe

Binary file not shown.

BIN
src/Tools/wix/melt.exe

Binary file not shown.

BIN
src/Tools/wix/pyro.exe

Binary file not shown.

BIN
src/Tools/wix/smoke.exe

Binary file not shown.

BIN
src/Tools/wix/torch.exe

Binary file not shown.

BIN
src/Tools/wix/wconsole.dll

Binary file not shown.

BIN
src/Tools/wix/winterop.dll

Binary file not shown.

BIN
src/Tools/wix/wix.dll

Binary file not shown.

378
src/Tools/wix/wix.targets

@ -57,6 +57,8 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -57,6 +57,8 @@ Copyright (c) Microsoft Corporation. All rights reserved.
<!-- These properties can be overridden to support non-default installations. -->
<PropertyGroup>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.0\Wix.targets</WixTargetsPath>
<WixTasksPath Condition=" '$(WixTasksPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.0\WixTasks.dll</WixTasksPath>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.0\Wix.targets</WixTargetsPath>
<WixTasksPath Condition=" '$(WixTasksPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.0\WixTasks.dll</WixTasksPath>
</PropertyGroup>
@ -86,9 +88,9 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -86,9 +88,9 @@ Copyright (c) Microsoft Corporation. All rights reserved.
<UsingTask TaskName="ReadRegistry" AssemblyFile="$(WixTasksPath)" />
<!-- These tasks are extensions for harvesting WiX source code from other sources. -->
<UsingTask TaskName="HeatFile" AssemblyFile="$(WixToolPath)WixUtilExtension.dll" />
<UsingTask TaskName="HeatDirectory" AssemblyFile="$(WixToolPath)WixUtilExtension.dll" />
<UsingTask TaskName="HeatProject" AssemblyFile="$(WixToolPath)WixVSExtension.dll" />
<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=" '$(Framework35Dir)' == '' " />
@ -103,6 +105,7 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -103,6 +105,7 @@ Copyright (c) Microsoft Corporation. All rights reserved.
<UsingTask TaskName="CreateProjectReferenceDefineConstants" AssemblyFile="$(WixTasksPath)" />
<UsingTask TaskName="WixAssignCulture" AssemblyFile="$(WixTasksPath)" />
<UsingTask TaskName="ResolveWixExtensionReference" AssemblyFile="$(WixTasksPath)"/>
<!--
Several properties must be set in the main project file, before using this .targets file.
@ -144,6 +147,7 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -144,6 +147,7 @@ Copyright (c) Microsoft Corporation. All rights reserved.
<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>
</PropertyGroup>
@ -231,11 +235,6 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -231,11 +235,6 @@ Copyright (c) Microsoft Corporation. All rights reserved.
<SolutionExt Condition=" '$(SolutionExt)' == '' ">*Undefined if not building a solution or within Visual Studio*</SolutionExt>
</PropertyGroup>
<!-- Convert $(TargetPath) to an item so we can use %(ModifiedTime) on it. -->
<ItemGroup>
<TargetOutput Include="$(TargetPath)" />
</ItemGroup>
<!--
//////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////
@ -307,12 +306,12 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -307,12 +306,12 @@ Copyright (c) Microsoft Corporation. All rights reserved.
[IN]
$(OutputName) - The name of the MSI/MSM/wixlib to build (without the extension)
$(OutputType) - Possible values are 'package', 'module', 'library'
$(OutputType) - Possible values are 'package', 'PatchCreation', 'module', 'library'
==================================================================================================
-->
<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), merge module (.msm), or wix library (.wixlib) is being built. $(_PleaseSetThisInProjectFile) Possible values are 'Package', 'Module', and 'Library'.</_OutputTypeDescription>
<_OutputTypeDescription>The OutputType defines whether a Windows Installer package (.msi), PatchCreation (.pcp), merge module (.msm), or wix library (.wixlib) is being built. $(_PleaseSetThisInProjectFile) Possible values are 'Package', 'Module', and 'Library'.</_OutputTypeDescription>
</PropertyGroup>
<Target Name="_CheckRequiredProperties">
@ -328,7 +327,7 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -328,7 +327,7 @@ Copyright (c) Microsoft Corporation. All rights reserved.
<Error
Code="WIXTARGETS102"
Condition=" '$(OutputType)' != 'Package' and '$(OutputType)' != 'Module' and '$(OutputType)' != 'Library' "
Condition=" '$(OutputType)' != 'Package' and '$(OutputType)' != 'PatchCreation' and '$(OutputType)' != 'Module' and '$(OutputType)' != 'Library' "
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 -->
@ -599,31 +598,28 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -599,31 +598,28 @@ Copyright (c) Microsoft Corporation. All rights reserved.
-->
<Target
Name="ResolveWixExtensionPaths">
<PropertyGroup>
<WixExtensionSearchPaths>
$(ReferencePaths);
{HintPathFromItem};
{RawFileName};
$(WixExtDir)
</WixExtensionSearchPaths>
</PropertyGroup>
<!-- Generate flat item group without metadata -->
<CreateItem Include="@(WixExtension)" Condition=" '%(WixExtension.HintPath)' == '' ">
<Output TaskParameter="Include" ItemName="_AllWixExtensions" />
</CreateItem>
<CreateItem Include="@(WixExtension->'%(HintPath)')" Condition=" '%(WixExtension.HintPath)' != '' ">
<Output TaskParameter="Include" ItemName="_AllWixExtensions" />
</CreateItem>
<!-- Resolve flat item group to full paths, defaulting to WixExtDir -->
<CreateItem Include="@(_AllWixExtensions)" Condition="Exists('%(_AllWixExtensions.FullPath)')">
<Output TaskParameter="Include" ItemName="_AllResolvedWixExtensionPaths" />
</CreateItem>
<ResolveWixExtensionReference
WixExtensions="@(WixExtension)"
SearchPaths="$(WixExtensionSearchPaths)">
<Output TaskParameter="ResolvedWixExtensions" ItemName="_AllResolvedWixExtensionPaths" />
</ResolveWixExtensionReference>
<CreateItem Include="@(_AllWixExtensions->'$(WixExtDir)%(Filename).dll')" Condition="!Exists('%(_AllWixExtensions.FullPath)') and '%(_AllWixExtensions.Extension)' == '' ">
<Output TaskParameter="Include" ItemName="_AllResolvedWixExtensionPaths" />
</CreateItem>
<CreateItem Include="@(_AllWixExtensions->'$(WixExtDir)%(Filename)%(Extension)')" Condition="!Exists('%(_AllWixExtensions.FullPath)') and '%(_AllWixExtensions.Extension)' != '' ">
<Output TaskParameter="Include" ItemName="_AllResolvedWixExtensionPaths" />
</CreateItem>
<!-- Normalize the paths to ensure remove duplicates catches everything -->
<ConvertToAbsolutePath Paths="@(_AllResolvedWixExtensionPaths)">
<Output TaskParameter="AbsolutePaths" ItemName="_AllResolvedWixExtensionFullPaths" />
</ConvertToAbsolutePath>
<!-- Remove duplicate extension items that would cause build errors -->
<RemoveDuplicates Inputs="@(_AllResolvedWixExtensionPaths)">
<RemoveDuplicates Inputs="@(_AllResolvedWixExtensionFullPaths)">
<Output TaskParameter="Filtered" ItemName="_ResolvedWixExtensionPaths" />
</RemoveDuplicates>
</Target>
@ -1105,8 +1101,7 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1105,8 +1101,7 @@ Copyright (c) Microsoft Corporation. All rights reserved.
HarvestProjects;
Compile;
Lib;
LinkUnlocalizedProject;
LinkLocalizedProject;
Link;
_TimeStampAfterCompileAndLink;
AfterCompileAndLink
</CompileAndLinkDependsOn>
@ -1145,6 +1140,10 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1145,6 +1140,10 @@ Copyright (c) Microsoft Corporation. All rights reserved.
Name="_TimeStampBeforeCompileAndLink"
Condition=" '$(RunPostBuildEvent)' == 'OnOutputUpdated' ">
<CreateItem Include="$(TargetPath)">
<Output TaskParameter="Include" ItemName="TargetOutput" />
</CreateItem>
<CreateItem Include="%(TargetOutput.ModifiedTime)">
<Output TaskParameter="Include" PropertyName="_TargetOutputTimestampBeforeCompileAndLink" />
</CreateItem>
@ -1243,6 +1242,7 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1243,6 +1242,7 @@ Copyright (c) Microsoft Corporation. All rights reserved.
DefineConstants="$(DefineConstants);$(SolutionDefineConstants);$(ProjectDefineConstants);$(ProjectReferenceDefineConstants)"
ExtensionDirectory="$(WixExtDir)"
Extensions="@(_ResolvedWixExtensionPaths)"
FipsCompliant="$(FipsCompliant)"
SuppressFilesVitalByDefault="$(SuppressFilesVitalByDefault)"
PreprocessToStdOut="$(PreprocessToStdOut)"
PreprocessToFile="$(PreprocessToFile)"
@ -1252,7 +1252,7 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1252,7 +1252,7 @@ Copyright (c) Microsoft Corporation. All rights reserved.
OnlyValidateDocuments="$(OnlyValidateDocuments)"
OutputFile="$(IntermediateOutputPath)%(Compile.Filename)$(IntermediateExt)"
Pedantic="$(Pedantic)"
ReferencePaths="$(ReferencePath)"
ReferencePaths="$(ReferencePaths)"
RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
ShowSourceTrace="$(ShowSourceTrace)"
SuppressAllWarnings="$(CompilerSuppressAllWarnings)"
@ -1313,7 +1313,7 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1313,7 +1313,7 @@ Copyright (c) Microsoft Corporation. All rights reserved.
NoLogo="$(LibNoLogo)"
OutputFile="$(TargetPath)"
Pedantic="$(LibPedantic)"
ReferencePaths="$(ReferencePath)"
ReferencePaths="$(ReferencePaths)"
RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
SuppressAllWarnings="$(LibSuppressAllWarnings)"
SuppressIntermediateFileVersionMatching="$(LibSuppressIntermediateFileVersionMatching)"
@ -1326,162 +1326,89 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1326,162 +1326,89 @@ Copyright (c) Microsoft Corporation. All rights reserved.
<!--
================================================================================================
LinkUnlocalizedProject
Links the .wixobj, .wxl, .wixlib, wix extensions into an .msi or .msm file using light.exe,
when there are no localized resources specified in the project file.
[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.
AssignCultures
[OUT]
$(TargetPath) - The compiled .msi or .msm file.
================================================================================================
-->
<PropertyGroup>
<LinkUnlocalizedProjectDependsOn>
PrepareForBuild;
ResolveWixExtensionPaths
</LinkUnlocalizedProjectDependsOn>
</PropertyGroup>
Determines the final list of culture groups to build based on either the Cultures property or
those specified in .wxl files.
<Target
Name="LinkUnlocalizedProject"
Inputs="@(CompileObjOutput);
@(WixObject);
@(WixLibrary);
@(_ResolvedWixExtensionPaths);
$(MSBuildAllProjects)"
Outputs="$(TargetPath)"
DependsOnTargets="$(LinkUnlocalizedProjectDependsOn)"
Condition=" ('$(OutputType)' == 'Package' or '$(OutputType)' == 'Module') and '@(EmbeddedResource)' == '' ">
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).
<Light
ObjectFiles="@(CompileObjOutput);@(WixObject);@(WixLibProjects);@(WixLibrary)"
AdditionalOptions="$(LinkerAdditionalOptions)"
AllowIdenticalRows="$(AllowIdenticalRows)"
AllowUnresolvedReferences="$(AllowUnresolvedReferences)"
AdditionalCub="$(AdditionalCub)"
BackwardsCompatibleGuidGeneration="$(BackwardsCompatibleGuidGeneration)"
BaseInputPaths="$(LinkerBaseInputPaths)"
BindFiles="$(LinkerBindFiles)"
CabinetCachePath="$(CabinetCachePath)"
CabinetCreationThreadCount="$(CabinetCreationThreadCount)"
Cultures="$(Cultures)"
DefaultCompressionLevel="$(DefaultCompressionLevel)"
DropUnrealTables="$(DropUnrealTables)"
ExtensionDirectory="$(WixExtDir)"
Extensions="@(_ResolvedWixExtensionPaths)"
Ices="$(Ices)"
LeaveTemporaryFiles="$(LeaveTemporaryFiles)"
NoLogo="$(LinkerNoLogo)"
OutputAsXml="$(OutputAsXml)"
OutputFile="$(TargetPath)"
PdbOutputFile="$(TargetPdbPath)"
Pedantic="$(LinkerPedantic)"
ReferencePaths="$(ReferencePath)"
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)" />
</Target>
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
<!--
================================================================================================
AssignCultures
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.
Takes any .wxl files in the project and assigns culture metadata to them based on the file name.
If the file is of the form name.culture.wxl, the culture metadata will be set to the culture
portion of the file name. If the culture is already specified via metadata in the project file it
will be left untouched.
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]
@(EmbeddedResourceWithCulture) - The list of wxl files with the culture metadata set.
@(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">
<WixAssignCulture
Cultures="$(Cultures)"
Files="@(EmbeddedResource)"
Condition=" '%(Extension)' == '.wxl' ">
>
<Output TaskParameter="AllFilesWithCulture" ItemName="_TempEmbeddedResourceWithCulture" />
<Output TaskParameter="CultureGroups" ItemName="CultureGroup" />
</WixAssignCulture>
<!-- Now that we have the cultures assigned to the files we only want to build the ones specified -->
<!-- in the Cultures list from the project properties. -->
<!-- If the Cultures list is empty include all the cultures. -->
<!-- Build an itemgroup of outputs -->
<CreateItem
Include="@(_TempEmbeddedResourceWithCulture)"
Condition=" '$(Cultures)' == '' ">
<Output TaskParameter="Include" ItemName="EmbeddedResourceWithCulture" />
Include="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)">
<Output TaskParameter="Include"
ItemName="_TargetPathItems"/>
</CreateItem>
<!-- If the Cultures list isn't empty then only include items where the culture matches a -->
<!-- culture in the Cultures list. First we have to create an item list out of the semicolon -->
<!-- separated property list. Then we have to set the Culture metadata property on it. -->
<!-- After all that, it is possible to do a merge of the two lists to only get the embedded -->
<!-- resources that have the specified cultures to build. For an explanation of why -->
<!-- the condition on the last CreateItem works, see http://blogs.msdn.com/msbuild/archive/2006/05/18/601146.aspx. -->
<CreateItem Include="$(Cultures)">
<Output TaskParameter="Include" ItemName="_CulturesToBuild" />
</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="@(_CulturesToBuild)"
AdditionalMetadata="Culture=%(Identity)">
<Output TaskParameter="Include" ItemName="_CulturesToBuildWithMetadata" />
Include="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetPdbExt)">
<Output TaskParameter="Include"
ItemName="_TargetPdbPathItems"/>
</CreateItem>
<CreateItem
Include="@(_TempEmbeddedResourceWithCulture)"
Condition=" '%(Culture)' != '' and '@(_TempEmbeddedResourceWithCulture)'!= '' and '@(_CulturesToBuildWithMetadata)' != '' ">
<Output TaskParameter="Include" ItemName="EmbeddedResourceWithCulture" />
</CreateItem>
<!-- Convert the itemgroup to a semicolon-delimited property -->
<CreateProperty
Value="@(_TargetPdbPathItems)">
<Output TaskParameter="Value"
PropertyName="TargetPdbPath"/>
</CreateProperty>
</Target>
<!--
================================================================================================
LinkLocalizedProject
Link
Links the .wixobj, .wxl, .wixlib, wix extensions into an .msi or .msm file using light.exe,
once per language. If multiple .wxl files are present with the same culture they will all
be passed to a single light.exe call with multiple -loc parameters.
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.
@ -1492,24 +1419,25 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1492,24 +1419,25 @@ Copyright (c) Microsoft Corporation. All rights reserved.
================================================================================================
-->
<PropertyGroup>
<LinkLocalizedProjectDependsOn>
<LinkDependsOn>
PrepareForBuild;
ResolveWixExtensionPaths;
AssignCultures;
</LinkLocalizedProjectDependsOn>
</LinkDependsOn>
</PropertyGroup>
<Target
Name="LinkLocalizedProject"
Name="Link"
Inputs="@(CompileObjOutput);
@(EmbeddedResourceWithCulture);
@(EmbeddedResource);
@(WixObject);
@(WixLibrary);
@(_ResolvedProjectReferencePaths);
@(_ResolvedWixExtensionPaths);
$(MSBuildAllProjects)"
Outputs="$(TargetDir)%(EmbeddedResourceWithCulture.Culture)\$(TargetName)$(TargetExt)"
DependsOnTargets="$(LinkLocalizedProjectDependsOn)"
Condition=" ('$(OutputType)' == 'Package' or '$(OutputType)' == 'Module') and '@(EmbeddedResource)' != '' ">
Outputs="$(TargetPath)"
DependsOnTargets="$(LinkDependsOn)"
Condition=" ('$(OutputType)' == 'Package' or '$(OutputType)' == 'PatchCreation' or '$(OutputType)' == 'Module')">
<!-- Call light using the culture subdirectory for output -->
<Light
@ -1523,20 +1451,20 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1523,20 +1451,20 @@ Copyright (c) Microsoft Corporation. All rights reserved.
BindFiles="$(LinkerBindFiles)"
CabinetCachePath="$(CabinetCachePath)"
CabinetCreationThreadCount="$(CabinetCreationThreadCount)"
Cultures="%(EmbeddedResourceWithCulture.Culture)"
Cultures="%(CultureGroup.Identity)"
DefaultCompressionLevel="$(DefaultCompressionLevel)"
DropUnrealTables="$(DropUnrealTables)"
ExtensionDirectory="$(WixExtDir)"
Extensions="@(_ResolvedWixExtensionPaths)"
Ices="$(Ices)"
LeaveTemporaryFiles="$(LeaveTemporaryFiles)"
LocalizationFiles="@(EmbeddedResourceWithCulture)"
LocalizationFiles="@(EmbeddedResource)"
NoLogo="$(LinkerNoLogo)"
OutputAsXml="$(OutputAsXml)"
OutputFile="$(TargetDir)%(EmbeddedResourceWithCulture.Culture)\$(TargetName)$(TargetExt)"
PdbOutputFile="$(TargetDir)%(EmbeddedResourceWithCulture.Culture)\$(TargetName)$(TargetPdbExt)"
OutputFile="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetExt)"
PdbOutputFile="$(TargetDir)%(CultureGroup.OutputFolder)$(TargetName)$(TargetPdbExt)"
Pedantic="$(LinkerPedantic)"
ReferencePaths="$(ReferencePath)"
ReferencePaths="$(ReferencePaths)"
ReuseCabinetCache="$(ReuseCabinetCache)"
RunAsSeparateProcess="$(RunWixToolsOutOfProc)"
SetMsiAssemblyNameFileVersion="$(SetMsiAssemblyNameFileVersion)"
@ -1562,62 +1490,7 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1562,62 +1490,7 @@ Copyright (c) Microsoft Corporation. All rights reserved.
TreatWarningsAsErrors="$(LinkerTreatWarningsAsErrors)"
UnreferencedSymbolsFile="$(UnreferencedSymbolsFile)"
VerboseOutput="$(LinkerVerboseOutput)"
WixVariables="$(WixVariables)"
Condition="%(EmbeddedResourceWithCulture.Culture) != ''" />
<!-- Culture invaiant output goes in the output directory with no culture subdirectory, we need a second task
because batching (%) occurs at the task level -->
<Light
ObjectFiles="@(CompileObjOutput);@(WixObject);@(WixLibProjects);@(WixLibrary)"
AdditionalOptions="$(LinkerAdditionalOptions)"
AllowIdenticalRows="$(AllowIdenticalRows)"
AllowUnresolvedReferences="$(AllowUnresolvedReferences)"
AdditionalCub="$(AdditionalCub)"
BackwardsCompatibleGuidGeneration="$(BackwardsCompatibleGuidGeneration)"
BaseInputPaths="$(LinkerBaseInputPaths)"
BindFiles="$(LinkerBindFiles)"
CabinetCachePath="$(CabinetCachePath)"
CabinetCreationThreadCount="$(CabinetCreationThreadCount)"
Cultures="%(EmbeddedResourceWithCulture.Culture)"
DefaultCompressionLevel="$(DefaultCompressionLevel)"
DropUnrealTables="$(DropUnrealTables)"
ExtensionDirectory="$(WixExtDir)"
Extensions="@(_ResolvedWixExtensionPaths)"
Ices="$(Ices)"
LeaveTemporaryFiles="$(LeaveTemporaryFiles)"
LocalizationFiles="@(EmbeddedResourceWithCulture)"
NoLogo="$(LinkerNoLogo)"
OutputAsXml="$(OutputAsXml)"
OutputFile="$(TargetPath)"
PdbOutputFile="$(TargetPdbPath)"
Pedantic="$(LinkerPedantic)"
ReferencePaths="$(ReferencePath)"
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)"
SuppressMsiAssemblyTableProcessing="$(SuppressMsiAssemblyTableProcessing)"
SuppressPdbOutput="$(SuppressPdbOutput)"
SuppressSchemaValidation="$(LinkerSuppressSchemaValidation)"
SuppressValidation="$(SuppressValidation)"
SuppressSpecificWarnings="$(LinkerSuppressSpecificWarnings)"
SuppressTagSectionIdAttributeOnTuples="$(SuppressTagSectionIdAttributeOnTuples)"
ToolPath="$(WixToolPath)"
TreatWarningsAsErrors="$(LinkerTreatWarningsAsErrors)"
UnreferencedSymbolsFile="$(UnreferencedSymbolsFile)"
VerboseOutput="$(LinkerVerboseOutput)"
WixVariables="$(WixVariables)"
Condition="%(EmbeddedResourceWithCulture.Culture) == ''" />
WixVariables="$(WixVariables)" />
</Target>
@ -1678,11 +1551,11 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1678,11 +1551,11 @@ Copyright (c) Microsoft Corporation. All rights reserved.
</RemoveDuplicates>
<!-- Make sure the directory exists. -->
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<MakeDir Directories="$(IntermediateOutputPath)" />
<!-- Write new list of current files back to disk, replacing the existing list.-->
<WriteLinesToFile
File="$(BaseIntermediateOutputPath)$(CleanFile)"
File="$(IntermediateOutputPath)$(CleanFile)"
Lines="@(_CleanUniqueRemainingFileWritesAfterIncrementalClean)"
Overwrite="true" />
@ -1700,7 +1573,7 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1700,7 +1573,7 @@ Copyright (c) Microsoft Corporation. All rights reserved.
DependsOnTargets="_CheckForCompileAndLinkOutputs">
<!-- Read the list of files produced by a prior builds from disk. -->
<ReadLinesFromFile File="$(BaseIntermediateOutputPath)$(CleanFile)">
<ReadLinesFromFile File="$(IntermediateOutputPath)$(CleanFile)">
<Output TaskParameter="Lines" ItemName="_CleanPriorFileWrites" />
</ReadLinesFromFile>
@ -1736,29 +1609,18 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1736,29 +1609,18 @@ Copyright (c) Microsoft Corporation. All rights reserved.
<Output TaskParameter="Include" ItemName="FileWrites" />
</CreateItem>
<!-- Record the link ouput -->
<CreateItem Include="$(TargetPath)" Condition="Exists('$(TargetPath)')">
<!-- Record the link ouput(s) -->
<CreateItem Include="@(TargetOutput)" Condition="Exists('%(FullPath)')">
<Output TaskParameter="Include" ItemName="FileWrites" />
</CreateItem>
<!-- Record the wixpdb file generated -->
<CreateItem Include="$(TargetPdbPath)" Condition="Exists('$(TargetPdbPath)')">
<Output TaskParameter="Include" ItemName="FileWrites" />
</CreateItem>
<!-- Record the localized link output -->
<CreateItem
Include="$(TargetDir)%(EmbeddedResourceWithCulture.Culture)\$(TargetName)$(TargetExt)"
Condition="Exists('$(TargetDir)%(EmbeddedResourceWithCulture.Culture)\$(TargetName)$(TargetExt)') And '%(EmbeddedResourceWithCulture.Culture)' != ''">
<Output TaskParameter="Include" ItemName="FileWrites" />
<!--Stuff into an itemgroup-->
<CreateItem Include="$(TargetPdbPath)">
<Output TaskParameter="Include" ItemName="_TempTargetPdbPath" />
</CreateItem>
<!-- Record the localized wixpdb output -->
<CreateItem
Include="$(TargetDir)%(EmbeddedResourceWithCulture.Culture)\$(TargetName)$(TargetPdbExt)"
Condition="Exists('$(TargetDir)%(EmbeddedResourceWithCulture.Culture)\$(TargetName)$(TargetPdbExt)') And '%(EmbeddedResourceWithCulture.Culture)' != ''">
<!-- Record the wixpdb file(s) generated -->
<CreateItem Include="@(_TempTargetPdbPath)" Condition="Exists('%(FullPath)')">
<Output TaskParameter="Include" ItemName="FileWrites" />
</CreateItem>
</Target>
@ -1847,7 +1709,7 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1847,7 +1709,7 @@ Copyright (c) Microsoft Corporation. All rights reserved.
DependsOnTargets="$(CoreCleanDependsOn)">
<!-- Read in list of files that were written to disk in past builds. -->
<ReadLinesFromFile File="$(BaseIntermediateOutputPath)$(CleanFile)">
<ReadLinesFromFile File="$(IntermediateOutputPath)$(CleanFile)">
<Output TaskParameter="Lines" ItemName="_CleanPriorFileWrites" />
</ReadLinesFromFile>
@ -1877,10 +1739,10 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1877,10 +1739,10 @@ Copyright (c) Microsoft Corporation. All rights reserved.
</RemoveDuplicates>
<!-- Make sure the directory exists. -->
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<MakeDir Directories="$(IntermediateOutputPath)" />
<!-- Write new list of current files back to disk. -->
<WriteLinesToFile File="$(BaseIntermediateOutputPath)$(CleanFile)" Lines="@(_CleanUniqueRemainingFileWrites)" Overwrite="true" />
<WriteLinesToFile File="$(IntermediateOutputPath)$(CleanFile)" Lines="@(_CleanUniqueRemainingFileWrites)" Overwrite="true" />
</Target>
@ -1902,11 +1764,11 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -1902,11 +1764,11 @@ Copyright (c) Microsoft Corporation. All rights reserved.
</RemoveDuplicates>
<!-- Make sure the directory exists. -->
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
<MakeDir Directories="$(IntermediateOutputPath)" />
<!-- Write merged file list back to disk, replacing existing contents. -->
<WriteLinesToFile
File="$(BaseIntermediateOutputPath)$(CleanFile)"
File="$(IntermediateOutputPath)$(CleanFile)"
Lines="@(_CleanUniqueFileWrites)"
Overwrite="true" />
@ -2022,11 +1884,9 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -2022,11 +1884,9 @@ Copyright (c) Microsoft Corporation. All rights reserved.
<Output TaskParameter="Include" ItemName="BuiltProjectOutputGroupOutput" />
</CreateItem>
<!-- Figure out the localized versions of the output and include if appropriate -->
<!-- Include build output(s). Different than predefined itemgroup since AssignCultures target may change it -->
<CreateItem
Include="$(TargetDir)%(EmbeddedResourceWithCulture.Culture)\$(TargetName)$(TargetExt)"
Condition=" '%(EmbeddedResourceWithCulture.Culture)' != '' ">
Include="$(TargetPath)">
<Output TaskParameter="Include" ItemName="BuiltProjectOutputGroupOutput" />
</CreateItem>
</Target>
@ -2052,11 +1912,9 @@ Copyright (c) Microsoft Corporation. All rights reserved. @@ -2052,11 +1912,9 @@ Copyright (c) Microsoft Corporation. All rights reserved.
Outputs="@(DebugSymbolsProjectOutputGroupOutput)"
DependsOnTargets="$(DebugSymbolsProjectOutputGroupDependsOn)">
<!-- Include the localized pdb files, if this project is localizable. -->
<!-- Include build output pdb(s). Different than predefined itemgroup since AssignCultures target may change -->
<CreateItem
Include="$(TargetDir)%(EmbeddedResourceWithCulture.Culture)\$(TargetName)$(TargetPdbExt)"
Condition=" '%(EmbeddedResourceWithCulture.Culture)' != '' ">
Include="$(TargetPdbPath)">
<Output TaskParameter="Include" ItemName="DebugSymbolsProjectOutputGroupOutput" />
</CreateItem>
</Target>

BIN
src/Tools/wix/wui.dll

Binary file not shown.
Loading…
Cancel
Save