Add elements to reference platform-specific extension custom actions.
Bob Arnson committed
Jul 12, 2020 at 22:40 UTC
a34b060e7b1375be7c8c557a985b484155ff2702
10 files changed
+323
-258
src/test/WixToolsetTest.Util/TestData/Queries/Package.en-us.wxl
new
+11
@@ -0,0 +1,11 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+
3
+<!--
4
+This 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>
src/test/WixToolsetTest.Util/TestData/Queries/Package.wxs
new
+26
@@ -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>
src/test/WixToolsetTest.Util/TestData/Queries/PackageComponents.wxs
new
+9
@@ -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>
src/test/WixToolsetTest.Util/TestData/Queries/example.txt
new
+1
@@ -0,0 +1 @@
1
+This is example.txt.
\ No newline at end of file
src/test/WixToolsetTest.Util/UtilExtensionFixture.cs
+18
@@ -132,6 +132,24 @@ namespace WixToolsetTest.Util
132
}, results.OrderBy(s => s).ToArray());
133
}
134
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]
154
public void CanBuildBundleWithSearches()
155
{
src/test/WixToolsetTest.Util/WixToolsetTest.Util.csproj
+4
@@ -39,6 +39,10 @@
39
<Content Include="TestData\EventManifest\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
40
<Content Include="TestData\EventManifest\Package.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" />
46
</ItemGroup>
47
48
<ItemGroup>
src/wixext/UtilCompiler.cs
+85
@@ -233,6 +233,19 @@ namespace WixToolset.Util
233
case "User":
234
this.ParseUserElement(intermediate, section, element, null);
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;
249
case "ComponentSearch":
250
case "ComponentSearchRef":
251
case "DirectorySearch":
@@ -340,6 +353,24 @@ namespace WixToolset.Util
353
break;
354
}
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;
374
default:
375
this.ParseHelper.UnexpectedElement(parentElement, element);
376
break;
@@ -348,6 +379,60 @@ namespace WixToolset.Util
379
return possibleKeyPath;
380
}
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
+
436
/// <summary>
437
/// Parses the common search attributes shared across all searches.
438
/// </summary>
src/wixext/util.xsd
+121
@@ -1586,6 +1586,127 @@
1586
</xs:attribute>
1587
</xs:complexType>
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
+
1710
<xs:attributeGroup name="SearchCommonAttributes">
1711
<xs:attribute name="Id" type="xs:string">
1712
<xs:annotation>
src/wixlib/UtilExtension.wxs
-258
@@ -62,264 +62,6 @@
62
</UI>
63
</Fragment>
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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)" />
70
- </InstallExecuteSequence>
71
- <InstallUISequence>
72
- <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)" />
161
- </InstallExecuteSequence>
162
- <InstallUISequence>
163
- <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)" />
265
- </InstallExecuteSequence>
266
-
267
- <InstallUISequence>
268
- <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)" />
306
- </InstallExecuteSequence>
307
-
308
- <InstallUISequence>
309
- <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 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
-
65
<Fragment>
66
<BundleExtension Id="WixUtilBundleExtension" SourceFile="utilbe.dll" Name="WixUtilBundleExtension\utilbe.dll" />
67
</Fragment>
src/wixlib/UtilExtension_Platform.wxi
+48
@@ -299,6 +299,54 @@
299
</InstallExecuteSequence>
300
</Fragment>
301
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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)" />
307
+ </InstallExecuteSequence>
308
+
309
+ <InstallUISequence>
310
+ <Custom Action="$(var.Prefix)QueryOsInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)" />
319
+ </InstallExecuteSequence>
320
+
321
+ <InstallUISequence>
322
+ <Custom Action="$(var.Prefix)QueryOsDirs$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)" />
331
+ </InstallExecuteSequence>
332
+
333
+ <InstallUISequence>
334
+ <Custom Action="$(var.Prefix)QueryOsWellKnownSID$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 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 > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)" />
343
+ </InstallExecuteSequence>
344
+
345
+ <InstallUISequence>
346
+ <Custom Action="$(var.Prefix)QueryOsDriverInfo$(var.Suffix)" After="AppSearch" Overridable="yes" Condition="VersionNT > 400 OR (VersionNT = 400 AND ServicePackLevel > 3)" />
347
+ </InstallUISequence>
348
+ </Fragment>
349
+
350
<Fragment>
351
<Binary Id="$(var.Prefix)UtilCA$(var.Suffix)" SourceFile="!(bindpath.$(var.platform))utilca.dll" />
352
</Fragment>