aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2020-07-12 22:40:30 -0400
committerBob Arnson <bob@firegiant.com>2020-07-12 22:44:02 -0400
commita34b060e7b1375be7c8c557a985b484155ff2702 (patch)
tree4fa2e115e49467c12b14ce9cdb49b103c3e4515f /src
parent3bbca19f75e748242f0966dce7461c0508c208ba (diff)
downloadwix-a34b060e7b1375be7c8c557a985b484155ff2702.tar.gz
wix-a34b060e7b1375be7c8c557a985b484155ff2702.tar.bz2
wix-a34b060e7b1375be7c8c557a985b484155ff2702.zip
Add elements to reference platform-specific extension custom actions.
Diffstat (limited to '')
-rw-r--r--src/test/WixToolsetTest.Util/TestData/Queries/Package.en-us.wxl11
-rw-r--r--src/test/WixToolsetTest.Util/TestData/Queries/Package.wxs26
-rw-r--r--src/test/WixToolsetTest.Util/TestData/Queries/PackageComponents.wxs9
-rw-r--r--src/test/WixToolsetTest.Util/TestData/Queries/example.txt1
-rw-r--r--src/test/WixToolsetTest.Util/UtilExtensionFixture.cs18
-rw-r--r--src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj4
-rw-r--r--src/wixext/UtilCompiler.cs85
-rw-r--r--src/wixext/util.xsd121
-rw-r--r--src/wixlib/UtilExtension.wxs258
-rw-r--r--src/wixlib/UtilExtension_Platform.wxi48
10 files changed, 323 insertions, 258 deletions
diff --git a/src/test/WixToolsetTest.Util/TestData/Queries/Package.en-us.wxl b/src/test/WixToolsetTest.Util/TestData/Queries/Package.en-us.wxl
new file mode 100644
index 00000000..38c12ac1
--- /dev/null
+++ b/src/test/WixToolsetTest.Util/TestData/Queries/Package.en-us.wxl
@@ -0,0 +1,11 @@
1<?xml version="1.0" encoding="utf-8"?>
2
3<!--
4This file contains the declaration of all the localizable strings.
5-->
6<WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US">
7
8 <String Id="DowngradeError">A newer version of [ProductName] is already installed.</String>
9 <String Id="FeatureTitle">MsiPackage</String>
10
11</WixLocalization>
diff --git a/src/test/WixToolsetTest.Util/TestData/Queries/Package.wxs b/src/test/WixToolsetTest.Util/TestData/Queries/Package.wxs
new file mode 100644
index 00000000..7f6cd7fa
--- /dev/null
+++ b/src/test/WixToolsetTest.Util/TestData/Queries/Package.wxs
@@ -0,0 +1,26 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
2 <Product Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a">
3 <Package InstallerVersion="200" Compressed="no" InstallScope="perMachine" />
4
5 <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" />
6
7 <util:BroadcastEnvironmentChange />
8 <util:CheckRebootRequired />
9 <util:QueryWindowsDriverInfo />
10 <util:QueryWindowsSuiteInfo />
11
12 <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)">
13 <ComponentGroupRef Id="ProductComponents" />
14 </Feature>
15 </Product>
16
17 <Fragment>
18 <util:BroadcastSettingChange />
19
20 <Directory Id="TARGETDIR" Name="SourceDir">
21 <Directory Id="ProgramFilesFolder">
22 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
23 </Directory>
24 </Directory>
25 </Fragment>
26</Wix>
diff --git a/src/test/WixToolsetTest.Util/TestData/Queries/PackageComponents.wxs b/src/test/WixToolsetTest.Util/TestData/Queries/PackageComponents.wxs
new file mode 100644
index 00000000..e2dce4ae
--- /dev/null
+++ b/src/test/WixToolsetTest.Util/TestData/Queries/PackageComponents.wxs
@@ -0,0 +1,9 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
2 <Fragment>
3 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
4 <Component>
5 <File Source="example.txt" />
6 </Component>
7 </ComponentGroup>
8 </Fragment>
9</Wix>
diff --git a/src/test/WixToolsetTest.Util/TestData/Queries/example.txt b/src/test/WixToolsetTest.Util/TestData/Queries/example.txt
new file mode 100644
index 00000000..1b4ffe8a
--- /dev/null
+++ b/src/test/WixToolsetTest.Util/TestData/Queries/example.txt
@@ -0,0 +1 @@
This is example.txt. \ No newline at end of file
diff --git a/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs b/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs
index 78a9f967..848e4aa2 100644
--- a/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs
+++ b/src/test/WixToolsetTest.Util/UtilExtensionFixture.cs
@@ -133,6 +133,24 @@ namespace WixToolsetTest.Util
133 } 133 }
134 134
135 [Fact] 135 [Fact]
136 public void CanBuildWithQueries()
137 {
138 var folder = TestData.Get(@"TestData\Queries");
139 var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder });
140
141 var results = build.BuildAndQuery(BuildARM64, "Binary", "CustomAction");
142 Assert.Equal(new[]
143 {
144 "Binary:Wix4UtilCA_A64\t[Binary data]",
145 "CustomAction:Wix4BroadcastEnvironmentChange_A64\t65\tWix4UtilCA_A64\tWixBroadcastEnvironmentChange\t",
146 "CustomAction:Wix4BroadcastSettingChange_A64\t65\tWix4UtilCA_A64\tWixBroadcastSettingChange\t",
147 "CustomAction:Wix4CheckRebootRequired_A64\t65\tWix4UtilCA_A64\tWixCheckRebootRequired\t",
148 "CustomAction:Wix4QueryOsDriverInfo_A64\t257\tWix4UtilCA_A64\tWixQueryOsDriverInfo\t",
149 "CustomAction:Wix4QueryOsInfo_A64\t257\tWix4UtilCA_A64\tWixQueryOsInfo\t",
150 }, results.OrderBy(s => s).ToArray());
151 }
152
153 [Fact]
136 public void CanBuildBundleWithSearches() 154 public void CanBuildBundleWithSearches()
137 { 155 {
138 var burnStubPath = TestData.Get(@"TestData\.Data\burn.exe"); 156 var burnStubPath = TestData.Get(@"TestData\.Data\burn.exe");
diff --git a/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj b/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj
index fcac4644..f2d5c486 100644
--- a/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj
+++ b/src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj
@@ -39,6 +39,10 @@
39 <Content Include="TestData\EventManifest\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" /> 39 <Content Include="TestData\EventManifest\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
40 <Content Include="TestData\EventManifest\Package.wxs" CopyToOutputDirectory="PreserveNewest" /> 40 <Content Include="TestData\EventManifest\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
41 <Content Include="TestData\EventManifest\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" /> 41 <Content Include="TestData\EventManifest\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
42 <Content Include="TestData\Queries\example.txt" CopyToOutputDirectory="PreserveNewest" />
43 <Content Include="TestData\Queries\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
44 <Content Include="TestData\Queries\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
45 <Content Include="TestData\Queries\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
42 </ItemGroup> 46 </ItemGroup>
43 47
44 <ItemGroup> 48 <ItemGroup>
diff --git a/src/wixext/UtilCompiler.cs b/src/wixext/UtilCompiler.cs
index 79dbbc6d..fdc1c9eb 100644
--- a/src/wixext/UtilCompiler.cs
+++ b/src/wixext/UtilCompiler.cs
@@ -233,6 +233,19 @@ namespace WixToolset.Util
233 case "User": 233 case "User":
234 this.ParseUserElement(intermediate, section, element, null); 234 this.ParseUserElement(intermediate, section, element, null);
235 break; 235 break;
236 case "BroadcastEnvironmentChange":
237 case "BroadcastSettingChange":
238 case "CheckRebootRequired":
239 case "ExitEarlyWithSuccess":
240 case "FailWhenDeferred":
241 case "QueryWindowsDirectories":
242 case "QueryWindowsDriverInfo":
243 case "QueryWindowsSuiteInfo":
244 case "QueryWindowsWellKnownSIDs":
245 case "WaitForEvent":
246 case "WaitForEventDeferred":
247 this.AddCustomActionReference(intermediate, section, element, parentElement);
248 break;
236 case "ComponentSearch": 249 case "ComponentSearch":
237 case "ComponentSearchRef": 250 case "ComponentSearchRef":
238 case "DirectorySearch": 251 case "DirectorySearch":
@@ -340,6 +353,24 @@ namespace WixToolset.Util
340 break; 353 break;
341 } 354 }
342 break; 355 break;
356 case "UI":
357 switch (element.Name.LocalName)
358 {
359 case "BroadcastEnvironmentChange":
360 case "BroadcastSettingChange":
361 case "CheckRebootRequired":
362 case "ExitEarlyWithSuccess":
363 case "FailWhenDeferred":
364 case "QueryWindowsDirectories":
365 case "QueryWindowsDriverInfo":
366 case "QueryWindowsSuiteInfo":
367 case "QueryWindowsWellKnownSIDs":
368 case "WaitForEvent":
369 case "WaitForEventDeferred":
370 this.AddCustomActionReference(intermediate, section, element, parentElement);
371 break;
372 }
373 break;
343 default: 374 default:
344 this.ParseHelper.UnexpectedElement(parentElement, element); 375 this.ParseHelper.UnexpectedElement(parentElement, element);
345 break; 376 break;
@@ -348,6 +379,60 @@ namespace WixToolset.Util
348 return possibleKeyPath; 379 return possibleKeyPath;
349 } 380 }
350 381
382 private void AddCustomActionReference(Intermediate intermediate, IntermediateSection section, XElement element, XElement parentElement)
383 {
384 // These elements are not supported for bundles.
385 if (parentElement.Name.LocalName == "Bundle")
386 {
387 this.ParseHelper.UnexpectedElement(parentElement, element);
388 return;
389 }
390
391 var customAction = element.Name.LocalName;
392 switch (element.Name.LocalName)
393 {
394 case "BroadcastEnvironmentChange":
395 case "BroadcastSettingChange":
396 case "CheckRebootRequired":
397 case "ExitEarlyWithSuccess":
398 case "FailWhenDeferred":
399 case "WaitForEvent":
400 case "WaitForEventDeferred":
401 //default: customAction = element.Name.LocalName;
402 break;
403 case "QueryWindowsDirectories":
404 customAction = "QueryOsDirs";
405 break;
406 case "QueryWindowsDriverInfo":
407 customAction = "QueryOsDriverInfo";
408 break;
409 case "QueryWindowsSuiteInfo":
410 customAction = "QueryOsInfo";
411 break;
412 case "QueryWindowsWellKnownSIDs":
413 customAction = "QueryOsWellKnownSID";
414 break;
415 }
416
417 foreach (var attrib in element.Attributes())
418 {
419 if (String.IsNullOrEmpty(attrib.Name.NamespaceName) || this.Namespace == attrib.Name.Namespace)
420 {
421 // no attributes today
422 }
423 else
424 {
425 this.ParseHelper.ParseExtensionAttribute(this.Context.Extensions, intermediate, section, element, attrib);
426 }
427 }
428
429 var sourceLineNumbers = this.ParseHelper.GetSourceLineNumbers(element);
430
431 this.ParseHelper.ParseForExtensionElements(this.Context.Extensions, intermediate, section, element);
432
433 this.ParseHelper.CreateCustomActionReference(sourceLineNumbers, section, customAction, this.Context.Platform, CustomActionPlatforms.X86 | CustomActionPlatforms.X64 | CustomActionPlatforms.ARM | CustomActionPlatforms.ARM64);
434 }
435
351 /// <summary> 436 /// <summary>
352 /// Parses the common search attributes shared across all searches. 437 /// Parses the common search attributes shared across all searches.
353 /// </summary> 438 /// </summary>
diff --git a/src/wixext/util.xsd b/src/wixext/util.xsd
index b6f0365b..133a93fa 100644
--- a/src/wixext/util.xsd
+++ b/src/wixext/util.xsd
@@ -1586,6 +1586,127 @@
1586 </xs:attribute> 1586 </xs:attribute>
1587 </xs:complexType> 1587 </xs:complexType>
1588 </xs:element> 1588 </xs:element>
1589 <xs:element name="BroadcastEnvironmentChange">
1590 <xs:annotation>
1591 <xs:documentation>Schedules the BroadcastEnvironmentChange custom action for the current platform.</xs:documentation>
1592 <xs:appinfo>
1593 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1594 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1595 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1596 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1597 </xs:appinfo>
1598 </xs:annotation>
1599 </xs:element>
1600 <xs:element name="BroadcastSettingChange">
1601 <xs:annotation>
1602 <xs:documentation>Schedules the BroadcastSettingChange custom action for the current platform.</xs:documentation>
1603 <xs:appinfo>
1604 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1605 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1606 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1607 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1608 </xs:appinfo>
1609 </xs:annotation>
1610 </xs:element>
1611 <xs:element name="CheckRebootRequired">
1612 <xs:annotation>
1613 <xs:documentation>Schedules the CheckRebootRequired custom action for the current platform.</xs:documentation>
1614 <xs:appinfo>
1615 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1616 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1617 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1618 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1619 </xs:appinfo>
1620 </xs:annotation>
1621 </xs:element>
1622 <xs:element name="ExitEarlyWithSuccess">
1623 <xs:annotation>
1624 <xs:documentation>Schedules the ExitEarlyWithSuccess custom action for the current platform.</xs:documentation>
1625 <xs:appinfo>
1626 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1627 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1628 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1629 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1630 </xs:appinfo>
1631 </xs:annotation>
1632 </xs:element>
1633 <xs:element name="FailWhenDeferred">
1634 <xs:annotation>
1635 <xs:documentation>Schedules the FailWhenDeferred custom action for the current platform.</xs:documentation>
1636 <xs:appinfo>
1637 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1638 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1639 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1640 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1641 </xs:appinfo>
1642 </xs:annotation>
1643 <xs:element name="WaitForEvent">
1644 <xs:annotation>
1645 <xs:documentation>Schedules the WaitForEvent custom action for the current platform.</xs:documentation>
1646 <xs:appinfo>
1647 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1648 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1649 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1650 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1651 </xs:appinfo>
1652 </xs:annotation>
1653 </xs:element>
1654 <xs:element name="WaitForEventDeferred">
1655 <xs:annotation>
1656 <xs:documentation>Schedules the WaitForEventDeferred custom action for the current platform.</xs:documentation>
1657 <xs:appinfo>
1658 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1659 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1660 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1661 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1662 </xs:appinfo>
1663 </xs:annotation>
1664 </xs:element>
1665 <xs:element name="QueryWindowsDirectories">
1666 <xs:annotation>
1667 <xs:documentation>Schedules the QueryOsDirs custom action for the current platform.</xs:documentation>
1668 <xs:appinfo>
1669 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1670 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1671 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1672 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1673 </xs:appinfo>
1674 </xs:annotation>
1675 </xs:element>
1676 <xs:element name="QueryWindowsDriverInfo">
1677 <xs:annotation>
1678 <xs:documentation>Schedules the QueryOsDriverInfo custom action for the current platform.</xs:documentation>
1679 <xs:appinfo>
1680 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1681 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1682 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1683 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1684 </xs:appinfo>
1685 </xs:annotation>
1686 </xs:element>
1687 <xs:element name="QueryWindowsSuiteInfo">
1688 <xs:annotation>
1689 <xs:documentation>Schedules the QueryOsInfo custom action for the current platform.</xs:documentation>
1690 <xs:appinfo>
1691 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1692 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1693 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1694 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1695 </xs:appinfo>
1696 </xs:annotation>
1697 </xs:element>
1698 <xs:element name="QueryWindowsWellKnownSIDs">
1699 <xs:annotation>
1700 <xs:documentation>Schedules the QueryOsWellKnownSID custom action for the current platform.</xs:documentation>
1701 <xs:appinfo>
1702 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Product" />
1703 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Module" />
1704 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="Fragment" />
1705 <xse:parent namespace="http://wixtoolset.org/schemas/v4/wxs" ref="UI" />
1706 </xs:appinfo>
1707 </xs:annotation>
1708 </xs:element>
1709
1589 <xs:attributeGroup name="SearchCommonAttributes"> 1710 <xs:attributeGroup name="SearchCommonAttributes">
1590 <xs:attribute name="Id" type="xs:string"> 1711 <xs:attribute name="Id" type="xs:string">
1591 <xs:annotation> 1712 <xs:annotation>
diff --git a/src/wixlib/UtilExtension.wxs b/src/wixlib/UtilExtension.wxs
index 2e9ad272..fccba7bf 100644
--- a/src/wixlib/UtilExtension.wxs
+++ b/src/wixlib/UtilExtension.wxs
@@ -62,264 +62,6 @@
62 </UI> 62 </UI>
63 </Fragment> 63 </Fragment>
64 64
65 <!-- WiX OS-detection properties and custom action -->
66 <Fragment>
67 <CustomAction Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" />
68 <InstallExecuteSequence>
69 <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
70 </InstallExecuteSequence>
71 <InstallUISequence>
72 <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
73 </InstallUISequence>
74 </Fragment>
75
76 <Fragment>
77 <Property Id="WIX_SUITE_BACKOFFICE" Secure="yes" />
78 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
79 </Fragment>
80 <Fragment>
81 <Property Id="WIX_SUITE_BLADE" Secure="yes" />
82 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
83 </Fragment>
84 <Fragment>
85 <Property Id="WIX_SUITE_COMMUNICATIONS" Secure="yes" />
86 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
87 </Fragment>
88 <Fragment>
89 <Property Id="WIX_SUITE_COMPUTE_SERVER" Secure="yes" />
90 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
91 </Fragment>
92 <Fragment>
93 <Property Id="WIX_SUITE_DATACENTER" Secure="yes" />
94 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
95 </Fragment>
96 <Fragment>
97 <Property Id="WIX_SUITE_EMBEDDED_RESTRICTED" Secure="yes" />
98 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
99 </Fragment>
100 <Fragment>
101 <Property Id="WIX_SUITE_EMBEDDEDNT" Secure="yes" />
102 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
103 </Fragment>
104 <Fragment>
105 <Property Id="WIX_SUITE_ENTERPRISE" Secure="yes" />
106 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
107 </Fragment>
108 <Fragment>
109 <Property Id="WIX_SUITE_MEDIACENTER" Secure="yes" />
110 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
111 </Fragment>
112 <Fragment>
113 <Property Id="WIX_SUITE_PERSONAL" Secure="yes" />
114 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
115 </Fragment>
116 <Fragment>
117 <Property Id="WIX_SUITE_SECURITY_APPLIANCE" Secure="yes" />
118 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
119 </Fragment>
120 <Fragment>
121 <Property Id="WIX_SUITE_SERVERR2" Secure="yes" />
122 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
123 </Fragment>
124 <Fragment>
125 <Property Id="WIX_SUITE_SINGLEUSERTS" Secure="yes" />
126 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
127 </Fragment>
128 <Fragment>
129 <Property Id="WIX_SUITE_SMALLBUSINESS" Secure="yes" />
130 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
131 </Fragment>
132 <Fragment>
133 <Property Id="WIX_SUITE_SMALLBUSINESS_RESTRICTED" Secure="yes" />
134 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
135 </Fragment>
136 <Fragment>
137 <Property Id="WIX_SUITE_STARTER" Secure="yes" />
138 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
139 </Fragment>
140 <Fragment>
141 <Property Id="WIX_SUITE_STORAGE_SERVER" Secure="yes" />
142 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
143 </Fragment>
144 <Fragment>
145 <Property Id="WIX_SUITE_TABLETPC" Secure="yes" />
146 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
147 </Fragment>
148 <Fragment>
149 <Property Id="WIX_SUITE_TERMINAL" Secure="yes" />
150 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
151 </Fragment>
152 <Fragment>
153 <Property Id="WIX_SUITE_WH_SERVER" Secure="yes" />
154 <CustomActionRef Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" />
155 </Fragment>
156
157 <Fragment>
158 <CustomAction Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsDirs" Execute="firstSequence" Return="check" SuppressModularization="yes" />
159 <InstallExecuteSequence>
160 <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
161 </InstallExecuteSequence>
162 <InstallUISequence>
163 <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
164 </InstallUISequence>
165 </Fragment>
166
167 <Fragment>
168 <Property Id="WIX_DIR_ADMINTOOLS" Secure="yes" />
169 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
170 </Fragment>
171 <Fragment>
172 <Property Id="WIX_DIR_ALTSTARTUP" Secure="yes" />
173 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
174 </Fragment>
175 <Fragment>
176 <Property Id="WIX_DIR_CDBURN_AREA" Secure="yes" />
177 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
178 </Fragment>
179 <Fragment>
180 <Property Id="WIX_DIR_COMMON_ADMINTOOLS" Secure="yes" />
181 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
182 </Fragment>
183 <Fragment>
184 <Property Id="WIX_DIR_COMMON_ALTSTARTUP" Secure="yes" />
185 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
186 </Fragment>
187 <Fragment>
188 <Property Id="WIX_DIR_COMMON_DOCUMENTS" Secure="yes" />
189 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
190 </Fragment>
191 <Fragment>
192 <Property Id="WIX_DIR_COMMON_FAVORITES" Secure="yes" />
193 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
194 </Fragment>
195 <Fragment>
196 <Property Id="WIX_DIR_COMMON_MUSIC" Secure="yes" />
197 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
198 </Fragment>
199 <Fragment>
200 <Property Id="WIX_DIR_COMMON_PICTURES" Secure="yes" />
201 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
202 </Fragment>
203 <Fragment>
204 <Property Id="WIX_DIR_COMMON_VIDEO" Secure="yes" />
205 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
206 </Fragment>
207 <Fragment>
208 <Property Id="WIX_DIR_COOKIES" Secure="yes" />
209 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
210 </Fragment>
211 <Fragment>
212 <Property Id="WIX_DIR_DESKTOP" Secure="yes" />
213 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
214 </Fragment>
215 <Fragment>
216 <Property Id="WIX_DIR_HISTORY" Secure="yes" />
217 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
218 </Fragment>
219 <Fragment>
220 <Property Id="WIX_DIR_INTERNET_CACHE" Secure="yes" />
221 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
222 </Fragment>
223 <Fragment>
224 <Property Id="WIX_DIR_MYMUSIC" Secure="yes" />
225 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
226 </Fragment>
227 <Fragment>
228 <Property Id="WIX_DIR_MYPICTURES" Secure="yes" />
229 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
230 </Fragment>
231 <Fragment>
232 <Property Id="WIX_DIR_MYVIDEO" Secure="yes" />
233 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
234 </Fragment>
235 <Fragment>
236 <Property Id="WIX_DIR_NETHOOD" Secure="yes" />
237 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
238 </Fragment>
239 <Fragment>
240 <Property Id="WIX_DIR_PERSONAL" Secure="yes" />
241 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
242 </Fragment>
243 <Fragment>
244 <Property Id="WIX_DIR_PRINTHOOD" Secure="yes" />
245 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
246 </Fragment>
247 <Fragment>
248 <Property Id="WIX_DIR_PROFILE" Secure="yes" />
249 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
250 </Fragment>
251 <Fragment>
252 <Property Id="WIX_DIR_RECENT" Secure="yes" />
253 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
254 </Fragment>
255 <Fragment>
256 <Property Id="WIX_DIR_RESOURCES" Secure="yes" />
257 <CustomActionRef Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" />
258 </Fragment>
259
260 <Fragment>
261 <CustomAction Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsWellKnownSID" Execute="firstSequence" Return="check" SuppressModularization="yes" />
262
263 <InstallExecuteSequence>
264 <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
265 </InstallExecuteSequence>
266
267 <InstallUISequence>
268 <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
269 </InstallUISequence>
270 </Fragment>
271 <Fragment>
272 <Property Id="WIX_ACCOUNT_LOCALSYSTEM" Secure="yes" />
273 <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
274 </Fragment>
275 <Fragment>
276 <Property Id="WIX_ACCOUNT_LOCALSERVICE" Secure="yes" />
277 <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
278 </Fragment>
279 <Fragment>
280 <Property Id="WIX_ACCOUNT_NETWORKSERVICE" Secure="yes" />
281 <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
282 </Fragment>
283 <Fragment>
284 <Property Id="WIX_ACCOUNT_ADMINISTRATORS" Secure="yes" />
285 <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
286 </Fragment>
287 <Fragment>
288 <Property Id="WIX_ACCOUNT_USERS" Secure="yes" />
289 <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
290 </Fragment>
291 <Fragment>
292 <Property Id="WIX_ACCOUNT_GUESTS" Secure="yes" />
293 <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
294 </Fragment>
295 <Fragment>
296 <Property Id="WIX_ACCOUNT_PERFLOGUSERS" Secure="yes" />
297 <Property Id="WIX_ACCOUNT_PERFLOGUSERS_NODOMAIN" Secure="yes" />
298 <CustomActionRef Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" />
299 </Fragment>
300
301 <Fragment>
302 <CustomAction Id="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsDriverInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" />
303
304 <InstallExecuteSequence>
305 <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
306 </InstallExecuteSequence>
307
308 <InstallUISequence>
309 <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
310 </InstallUISequence>
311 </Fragment>
312
313 <Fragment>
314 <Property Id="WIX_WDDM_DRIVER_PRESENT" Secure="yes" />
315 <CustomActionRef Id="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" />
316 </Fragment>
317
318 <Fragment>
319 <Property Id="WIX_DWM_COMPOSITION_ENABLED" Secure="yes" />
320 <CustomActionRef Id="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" />
321 </Fragment>
322
323 <Fragment> 65 <Fragment>
324 <BundleExtension Id="WixUtilBundleExtension" SourceFile="utilbe.dll" Name="WixUtilBundleExtension\utilbe.dll" /> 66 <BundleExtension Id="WixUtilBundleExtension" SourceFile="utilbe.dll" Name="WixUtilBundleExtension\utilbe.dll" />
325 </Fragment> 67 </Fragment>
diff --git a/src/wixlib/UtilExtension_Platform.wxi b/src/wixlib/UtilExtension_Platform.wxi
index c557e04b..5fb1d0ae 100644
--- a/src/wixlib/UtilExtension_Platform.wxi
+++ b/src/wixlib/UtilExtension_Platform.wxi
@@ -300,6 +300,54 @@
300 </Fragment> 300 </Fragment>
301 301
302 <Fragment> 302 <Fragment>
303 <CustomAction Id="$(var.Prefix)QueryOsInfo$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" />
304
305 <InstallExecuteSequence>
306 <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
307 </InstallExecuteSequence>
308
309 <InstallUISequence>
310 <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
311 </InstallUISequence>
312 </Fragment>
313
314 <Fragment>
315 <CustomAction Id="$(var.Prefix)QueryOsDirs$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsDirs" Execute="firstSequence" Return="check" SuppressModularization="yes" />
316
317 <InstallExecuteSequence>
318 <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
319 </InstallExecuteSequence>
320
321 <InstallUISequence>
322 <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
323 </InstallUISequence>
324 </Fragment>
325
326 <Fragment>
327 <CustomAction Id="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsWellKnownSID" Execute="firstSequence" Return="check" SuppressModularization="yes" />
328
329 <InstallExecuteSequence>
330 <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
331 </InstallExecuteSequence>
332
333 <InstallUISequence>
334 <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
335 </InstallUISequence>
336 </Fragment>
337
338 <Fragment>
339 <CustomAction Id="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" BinaryKey="$(var.Prefix)UtilCA$(var.Suffix)" DllEntry="WixQueryOsDriverInfo" Execute="firstSequence" Return="check" SuppressModularization="yes" />
340
341 <InstallExecuteSequence>
342 <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
343 </InstallExecuteSequence>
344
345 <InstallUISequence>
346 <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT &gt; 400 OR (VersionNT = 400 AND ServicePackLevel &gt; 3)" />
347 </InstallUISequence>
348 </Fragment>
349
350 <Fragment>
303 <Binary Id="$(var.Prefix)UtilCA$(var.Suffix)" SourceFile="!(bindpath.$(var.platform))utilca.dll" /> 351 <Binary Id="$(var.Prefix)UtilCA$(var.Suffix)" SourceFile="!(bindpath.$(var.platform))utilca.dll" />
304 </Fragment> 352 </Fragment>
305</Include> 353</Include>