aboutsummaryrefslogtreecommitdiff
path: root/src/ext
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2023-03-09 03:43:57 -0800
committerRob Mensching <rob@firegiant.com>2023-03-09 06:17:00 -0700
commit3efe3f3a8682f333741b3c52e10eea2297f43dc9 (patch)
treec4935644e337175b44ba137e99265144444857bc /src/ext
parent3bc1056b69b420de75ce571c102b3b24c8cab390 (diff)
downloadwix-3efe3f3a8682f333741b3c52e10eea2297f43dc9.tar.gz
wix-3efe3f3a8682f333741b3c52e10eea2297f43dc9.tar.bz2
wix-3efe3f3a8682f333741b3c52e10eea2297f43dc9.zip
Prevent direct references to platform neutral WixUI
Fixes 7265
Diffstat (limited to 'src/ext')
-rw-r--r--src/ext/UI/test/WixToolsetTest.UI/TestData/InvalidUIRef/Package.wxs23
-rw-r--r--src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs68
-rw-r--r--src/ext/UI/wixext/UICompiler.cs1
-rw-r--r--src/ext/UI/wixlib/WixUI_Advanced.wxs26
-rw-r--r--src/ext/UI/wixlib/WixUI_FeatureTree.wxs22
-rw-r--r--src/ext/UI/wixlib/WixUI_InstallDir.wxs26
-rw-r--r--src/ext/UI/wixlib/WixUI_Minimal.wxs22
-rw-r--r--src/ext/UI/wixlib/WixUI_Mondo.wxs26
-rw-r--r--src/ext/UI/wixlib/ui.v3.ncrunchproject5
9 files changed, 135 insertions, 84 deletions
diff --git a/src/ext/UI/test/WixToolsetTest.UI/TestData/InvalidUIRef/Package.wxs b/src/ext/UI/test/WixToolsetTest.UI/TestData/InvalidUIRef/Package.wxs
new file mode 100644
index 00000000..3cf78b3a
--- /dev/null
+++ b/src/ext/UI/test/WixToolsetTest.UI/TestData/InvalidUIRef/Package.wxs
@@ -0,0 +1,23 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:ui="http://wixtoolset.org/schemas/v4/wxs/ui">
2 <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" InstallerVersion="200">
3 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
4
5 <Feature Id="ProductFeature" Title="MsiPackage">
6 <ComponentGroupRef Id="ProductComponents" />
7 </Feature>
8
9 <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
10 <Component>
11 <File Source="example.txt" />
12 </Component>
13 </ComponentGroup>
14
15 <UIRef Id="WixUI_Mondo" />
16 </Package>
17
18 <Fragment>
19 <StandardDirectory Id="ProgramFilesFolder">
20 <Directory Id="INSTALLFOLDER" Name="MsiPackage" />
21 </StandardDirectory>
22 </Fragment>
23</Wix>
diff --git a/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs b/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs
index e1f18be5..7f9b7313 100644
--- a/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs
+++ b/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs
@@ -2,11 +2,10 @@
2 2
3namespace WixToolsetTest.UI 3namespace WixToolsetTest.UI
4{ 4{
5 using System;
6 using System.IO; 5 using System.IO;
7 using System.Linq; 6 using System.Linq;
8 using WixInternal.TestSupport;
9 using WixInternal.Core.TestPackage; 7 using WixInternal.Core.TestPackage;
8 using WixInternal.TestSupport;
10 using WixToolset.Data.WindowsInstaller; 9 using WixToolset.Data.WindowsInstaller;
11 using WixToolset.UI; 10 using WixToolset.UI;
12 using Xunit; 11 using Xunit;
@@ -16,8 +15,8 @@ namespace WixToolsetTest.UI
16 [Fact] 15 [Fact]
17 public void CanBuildUsingWixUIAdvanced() 16 public void CanBuildUsingWixUIAdvanced()
18 { 17 {
19 var folder = TestData.Get(@"TestData\WixUI_Advanced"); 18 var folder = TestData.Get(@"TestData", "WixUI_Advanced");
20 var bindFolder = TestData.Get(@"TestData\data"); 19 var bindFolder = TestData.Get(@"TestData", "data");
21 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); 20 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
22 21
23 var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent"); 22 var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent");
@@ -52,8 +51,8 @@ namespace WixToolsetTest.UI
52 [Fact] 51 [Fact]
53 public void CanBuildUsingWixUIAdvancedX64() 52 public void CanBuildUsingWixUIAdvancedX64()
54 { 53 {
55 var folder = TestData.Get(@"TestData\WixUI_Advanced"); 54 var folder = TestData.Get(@"TestData", "WixUI_Advanced");
56 var bindFolder = TestData.Get(@"TestData\data"); 55 var bindFolder = TestData.Get(@"TestData", "data");
57 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); 56 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
58 57
59 var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent"); 58 var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent");
@@ -88,8 +87,8 @@ namespace WixToolsetTest.UI
88 [Fact] 87 [Fact]
89 public void CanBuildUsingWixUIAdvancedARM64() 88 public void CanBuildUsingWixUIAdvancedARM64()
90 { 89 {
91 var folder = TestData.Get(@"TestData\WixUI_Advanced"); 90 var folder = TestData.Get(@"TestData", "WixUI_Advanced");
92 var bindFolder = TestData.Get(@"TestData\data"); 91 var bindFolder = TestData.Get(@"TestData", "data");
93 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); 92 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
94 93
95 var results = build.BuildAndQuery(BuildARM64, "Binary", "Dialog", "CustomAction", "ControlEvent"); 94 var results = build.BuildAndQuery(BuildARM64, "Binary", "Dialog", "CustomAction", "ControlEvent");
@@ -124,8 +123,8 @@ namespace WixToolsetTest.UI
124 [Fact] 123 [Fact]
125 public void CanBuildUsingWixUIFeatureTree() 124 public void CanBuildUsingWixUIFeatureTree()
126 { 125 {
127 var folder = TestData.Get(@"TestData\WixUI_FeatureTree"); 126 var folder = TestData.Get(@"TestData", "WixUI_FeatureTree");
128 var bindFolder = TestData.Get(@"TestData\data"); 127 var bindFolder = TestData.Get(@"TestData", "data");
129 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); 128 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
130 129
131 var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent"); 130 var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent");
@@ -155,8 +154,8 @@ namespace WixToolsetTest.UI
155 [Fact] 154 [Fact]
156 public void CanBuildUsingWixUIInstallDir() 155 public void CanBuildUsingWixUIInstallDir()
157 { 156 {
158 var folder = TestData.Get(@"TestData\WixUI_InstallDir"); 157 var folder = TestData.Get(@"TestData", "WixUI_InstallDir");
159 var bindFolder = TestData.Get(@"TestData\data"); 158 var bindFolder = TestData.Get(@"TestData", "data");
160 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); 159 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
161 160
162 var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "Property", "ControlEvent"); 161 var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "Property", "ControlEvent");
@@ -191,8 +190,8 @@ namespace WixToolsetTest.UI
191 [Fact] 190 [Fact]
192 public void CanBuildUsingWixUIMinimal() 191 public void CanBuildUsingWixUIMinimal()
193 { 192 {
194 var folder = TestData.Get(@"TestData\WixUI_Minimal"); 193 var folder = TestData.Get(@"TestData", "WixUI_Minimal");
195 var bindFolder = TestData.Get(@"TestData\data"); 194 var bindFolder = TestData.Get(@"TestData", "data");
196 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); 195 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
197 196
198 var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent"); 197 var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent");
@@ -220,8 +219,8 @@ namespace WixToolsetTest.UI
220 [Fact] 219 [Fact]
221 public void CanBuildUsingWixUIMinimalInKazakh() 220 public void CanBuildUsingWixUIMinimalInKazakh()
222 { 221 {
223 var folder = TestData.Get(@"TestData\WixUI_Minimal"); 222 var folder = TestData.Get(@"TestData", "WixUI_Minimal");
224 var bindFolder = TestData.Get(@"TestData\data"); 223 var bindFolder = TestData.Get(@"TestData", "data");
225 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); 224 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
226 225
227 var results = build.BuildAndQuery(BuildInKazakh, "Dialog"); 226 var results = build.BuildAndQuery(BuildInKazakh, "Dialog");
@@ -232,8 +231,8 @@ namespace WixToolsetTest.UI
232 [Fact] 231 [Fact]
233 public void CanBuildUsingWixUIMinimalAndReadPdb() 232 public void CanBuildUsingWixUIMinimalAndReadPdb()
234 { 233 {
235 var folder = TestData.Get(@"TestData\WixUI_Minimal"); 234 var folder = TestData.Get(@"TestData", "WixUI_Minimal");
236 var bindFolder = TestData.Get(@"TestData\data"); 235 var bindFolder = TestData.Get(@"TestData", "data");
237 236
238 using (var fs = new DisposableFileSystem()) 237 using (var fs = new DisposableFileSystem())
239 { 238 {
@@ -258,8 +257,8 @@ namespace WixToolsetTest.UI
258 [Fact] 257 [Fact]
259 public void CanBuildUsingWixUIMondo() 258 public void CanBuildUsingWixUIMondo()
260 { 259 {
261 var folder = TestData.Get(@"TestData\WixUI_Mondo"); 260 var folder = TestData.Get(@"TestData", "WixUI_Mondo");
262 var bindFolder = TestData.Get(@"TestData\data"); 261 var bindFolder = TestData.Get(@"TestData", "data");
263 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); 262 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
264 263
265 var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent"); 264 var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent");
@@ -292,8 +291,8 @@ namespace WixToolsetTest.UI
292 [Fact] 291 [Fact]
293 public void CanBuildUsingWixUIMondoLocalized() 292 public void CanBuildUsingWixUIMondoLocalized()
294 { 293 {
295 var folder = TestData.Get(@"TestData\WixUI_Mondo"); 294 var folder = TestData.Get(@"TestData", "WixUI_Mondo");
296 var bindFolder = TestData.Get(@"TestData\data"); 295 var bindFolder = TestData.Get(@"TestData", "data");
297 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); 296 var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder });
298 297
299 var results = build.BuildAndQuery(BuildInGerman, "Control"); 298 var results = build.BuildAndQuery(BuildInGerman, "Control");
@@ -303,6 +302,31 @@ namespace WixToolsetTest.UI
303 }, results.Where(s => s.StartsWith("Control:ErrorDlg\tY")).Select(s => s.Split('\t')[9]).ToArray()); 302 }, results.Where(s => s.StartsWith("Control:ErrorDlg\tY")).Select(s => s.Split('\t')[9]).ToArray());
304 } 303 }
305 304
305 [Fact]
306 public void CannotBuildWithV3LikeUIRef()
307 {
308 var folder = TestData.Get(@"TestData", "InvalidUIRef");
309
310 using (var fs = new DisposableFileSystem())
311 {
312 var intermediateFolder = fs.GetFolder();
313 var outputPath = Path.Combine(intermediateFolder, "bin", "test.msi");
314
315 var args = new[]
316 {
317 "build",
318 Path.Combine(folder, "Package.wxs"),
319 "-ext", typeof(UIExtensionFactory).Assembly.Location,
320 "-intermediateFolder", intermediateFolder,
321 "-o", outputPath,
322 };
323
324 var results = WixRunner.Execute(args);
325 var message = results.Messages.Single();
326 Assert.Equal("The identifier 'WixUI:WixUI_Mondo' is inaccessible due to its protection level.", message.ToString());
327 }
328 }
329
306 private static void Build(string[] args) 330 private static void Build(string[] args)
307 { 331 {
308 var result = WixRunner.Execute(args) 332 var result = WixRunner.Execute(args)
diff --git a/src/ext/UI/wixext/UICompiler.cs b/src/ext/UI/wixext/UICompiler.cs
index 8b527454..5f2751c9 100644
--- a/src/ext/UI/wixext/UICompiler.cs
+++ b/src/ext/UI/wixext/UICompiler.cs
@@ -87,7 +87,6 @@ namespace WixToolset.UI
87 else 87 else
88 { 88 {
89 var platform = this.Context.Platform == Platform.ARM64 ? "A64" : this.Context.Platform.ToString(); 89 var platform = this.Context.Platform == Platform.ARM64 ? "A64" : this.Context.Platform.ToString();
90 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.WixUI, id);
91 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.WixUI, $"{id}_{platform}"); 90 this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.WixUI, $"{id}_{platform}");
92 91
93 if (installDirectory != null) 92 if (installDirectory != null)
diff --git a/src/ext/UI/wixlib/WixUI_Advanced.wxs b/src/ext/UI/wixlib/WixUI_Advanced.wxs
index 1aabbf96..bab05ec9 100644
--- a/src/ext/UI/wixlib/WixUI_Advanced.wxs
+++ b/src/ext/UI/wixlib/WixUI_Advanced.wxs
@@ -1,7 +1,5 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2 2
3
4
5<!-- 3<!--
6WixUI_Advanced offers a two-click install (EULA checkbox and Install button) 4WixUI_Advanced offers a two-click install (EULA checkbox and Install button)
7and offers an Advanced button that lets users choose per-machine or per-user 5and offers an Advanced button that lets users choose per-machine or per-user
@@ -22,6 +20,18 @@ Todo:
22--> 20-->
23 21
24<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 22<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
23 <?foreach WIXUIARCH in X86;X64;A64 ?>
24 <Fragment>
25 <UI Id="WixUI_Advanced_$(WIXUIARCH)">
26 <Publish Dialog="AdvancedWelcomeEulaDlg" Control="Print" Event="DoAction" Value="WixUIPrintEula_$(WIXUIARCH)" />
27 <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="1" Condition="NOT WIXUI_DONTVALIDATEPATH" />
28 <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="2" Condition="NOT WIXUI_DONTVALIDATEPATH" />
29 </UI>
30
31 <UIRef Id="WixUI_Advanced" />
32 </Fragment>
33 <?endforeach?>
34
25 <Fragment> 35 <Fragment>
26 <WixVariable Id="WixUISupportPerUser" Value="1" Overridable="yes" /> 36 <WixVariable Id="WixUISupportPerUser" Value="1" Overridable="yes" />
27 <WixVariable Id="WixUISupportPerMachine" Value="1" Overridable="yes" /> 37 <WixVariable Id="WixUISupportPerMachine" Value="1" Overridable="yes" />
@@ -46,7 +56,7 @@ Todo:
46 <Custom Action="WixSetPerMachineFolder" After="WixSetPerUserFolder" Condition="ACTION=&quot;INSTALL&quot; AND APPLICATIONFOLDER=&quot;&quot; AND (ALLUSERS=1 OR (ALLUSERS=2 AND Privileged))" /> 56 <Custom Action="WixSetPerMachineFolder" After="WixSetPerUserFolder" Condition="ACTION=&quot;INSTALL&quot; AND APPLICATIONFOLDER=&quot;&quot; AND (ALLUSERS=1 OR (ALLUSERS=2 AND Privileged))" />
47 </InstallUISequence> 57 </InstallUISequence>
48 58
49 <UI Id="WixUI_Advanced"> 59 <UI Id="file WixUI_Advanced">
50 <TextStyle Id="WixUI_Font_Normal" FaceName="!(loc.Advanced_Font_FaceName)" Size="!(loc.Advanced_Font_Normal_Size)" /> 60 <TextStyle Id="WixUI_Font_Normal" FaceName="!(loc.Advanced_Font_FaceName)" Size="!(loc.Advanced_Font_Normal_Size)" />
51 <TextStyle Id="WixUI_Font_Bigger" FaceName="!(loc.Advanced_Font_FaceName)" Size="!(loc.Advanced_Font_Bigger_Size)" /> 61 <TextStyle Id="WixUI_Font_Bigger" FaceName="!(loc.Advanced_Font_FaceName)" Size="!(loc.Advanced_Font_Bigger_Size)" />
52 <TextStyle Id="WixUI_Font_Title" FaceName="!(loc.Advanced_Font_FaceName)" Size="!(loc.Advanced_Font_Title_Size)" Bold="yes" /> 62 <TextStyle Id="WixUI_Font_Title" FaceName="!(loc.Advanced_Font_FaceName)" Size="!(loc.Advanced_Font_Title_Size)" Bold="yes" />
@@ -115,14 +125,4 @@ Todo:
115 <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" /> 125 <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" />
116 <UIRef Id="WixUI_Common" /> 126 <UIRef Id="WixUI_Common" />
117 </Fragment> 127 </Fragment>
118
119 <?foreach WIXUIARCH in X86;X64;A64 ?>
120 <Fragment>
121 <UI Id="WixUI_Advanced_$(WIXUIARCH)">
122 <Publish Dialog="AdvancedWelcomeEulaDlg" Control="Print" Event="DoAction" Value="WixUIPrintEula_$(WIXUIARCH)" />
123 <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="1" Condition="NOT WIXUI_DONTVALIDATEPATH" />
124 <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="2" Condition="NOT WIXUI_DONTVALIDATEPATH" />
125 </UI>
126 </Fragment>
127 <?endforeach?>
128</Wix> 128</Wix>
diff --git a/src/ext/UI/wixlib/WixUI_FeatureTree.wxs b/src/ext/UI/wixlib/WixUI_FeatureTree.wxs
index e50839d3..6b9b1cf3 100644
--- a/src/ext/UI/wixlib/WixUI_FeatureTree.wxs
+++ b/src/ext/UI/wixlib/WixUI_FeatureTree.wxs
@@ -1,7 +1,5 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2 2
3
4
5<!-- 3<!--
6First-time install dialog sequence: 4First-time install dialog sequence:
7 - WixUI_WelcomeDlg 5 - WixUI_WelcomeDlg
@@ -22,8 +20,18 @@ Patch dialog sequence:
22--> 20-->
23 21
24<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 22<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
23 <?foreach WIXUIARCH in X86;X64;A64 ?>
25 <Fragment> 24 <Fragment>
26 <UI Id="WixUI_FeatureTree"> 25 <UI Id="WixUI_FeatureTree_$(WIXUIARCH)">
26 <Publish Dialog="LicenseAgreementDlg" Control="Print" Event="DoAction" Value="WixUIPrintEula_$(WIXUIARCH)" />
27 </UI>
28
29 <UIRef Id="WixUI_FeatureTree" />
30 </Fragment>
31 <?endforeach?>
32
33 <Fragment>
34 <UI Id="file WixUI_FeatureTree">
27 <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" /> 35 <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
28 <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" /> 36 <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
29 <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" /> 37 <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
@@ -65,12 +73,4 @@ Patch dialog sequence:
65 73
66 <UIRef Id="WixUI_Common" /> 74 <UIRef Id="WixUI_Common" />
67 </Fragment> 75 </Fragment>
68
69 <?foreach WIXUIARCH in X86;X64;A64 ?>
70 <Fragment>
71 <UI Id="WixUI_FeatureTree_$(WIXUIARCH)">
72 <Publish Dialog="LicenseAgreementDlg" Control="Print" Event="DoAction" Value="WixUIPrintEula_$(WIXUIARCH)" />
73 </UI>
74 </Fragment>
75 <?endforeach?>
76</Wix> 76</Wix>
diff --git a/src/ext/UI/wixlib/WixUI_InstallDir.wxs b/src/ext/UI/wixlib/WixUI_InstallDir.wxs
index 10b32ce8..e3c171df 100644
--- a/src/ext/UI/wixlib/WixUI_InstallDir.wxs
+++ b/src/ext/UI/wixlib/WixUI_InstallDir.wxs
@@ -1,7 +1,5 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2 2
3
4
5<!-- 3<!--
6First-time install dialog sequence: 4First-time install dialog sequence:
7 - WixUI_WelcomeDlg 5 - WixUI_WelcomeDlg
@@ -23,8 +21,20 @@ Patch dialog sequence:
23--> 21-->
24 22
25<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 23<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
24 <?foreach WIXUIARCH in X86;X64;A64 ?>
26 <Fragment> 25 <Fragment>
27 <UI Id="WixUI_InstallDir"> 26 <UI Id="WixUI_InstallDir_$(WIXUIARCH)">
27 <Publish Dialog="LicenseAgreementDlg" Control="Print" Event="DoAction" Value="WixUIPrintEula_$(WIXUIARCH)" />
28 <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="3" Condition="NOT WIXUI_DONTVALIDATEPATH" />
29 <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="2" Condition="NOT WIXUI_DONTVALIDATEPATH" />
30 </UI>
31
32 <UIRef Id="WixUI_InstallDir" />
33 </Fragment>
34 <?endforeach?>
35
36 <Fragment>
37 <UI Id="file WixUI_InstallDir">
28 <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" /> 38 <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
29 <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" /> 39 <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
30 <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" /> 40 <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
@@ -72,14 +82,4 @@ Patch dialog sequence:
72 82
73 <UIRef Id="WixUI_Common" /> 83 <UIRef Id="WixUI_Common" />
74 </Fragment> 84 </Fragment>
75
76 <?foreach WIXUIARCH in X86;X64;A64 ?>
77 <Fragment>
78 <UI Id="WixUI_InstallDir_$(WIXUIARCH)">
79 <Publish Dialog="LicenseAgreementDlg" Control="Print" Event="DoAction" Value="WixUIPrintEula_$(WIXUIARCH)" />
80 <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="3" Condition="NOT WIXUI_DONTVALIDATEPATH" />
81 <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="2" Condition="NOT WIXUI_DONTVALIDATEPATH" />
82 </UI>
83 </Fragment>
84 <?endforeach?>
85</Wix> 85</Wix>
diff --git a/src/ext/UI/wixlib/WixUI_Minimal.wxs b/src/ext/UI/wixlib/WixUI_Minimal.wxs
index 6d1709c5..0c69d8f8 100644
--- a/src/ext/UI/wixlib/WixUI_Minimal.wxs
+++ b/src/ext/UI/wixlib/WixUI_Minimal.wxs
@@ -1,7 +1,5 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2 2
3
4
5<!-- 3<!--
6First-time install dialog sequence: 4First-time install dialog sequence:
7 - WixUI_WelcomeEulaDlg 5 - WixUI_WelcomeEulaDlg
@@ -17,8 +15,18 @@ Patch dialog sequence:
17--> 15-->
18 16
19<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 17<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
18 <?foreach WIXUIARCH in X86;X64;A64 ?>
20 <Fragment> 19 <Fragment>
21 <UI Id="WixUI_Minimal"> 20 <UI Id="WixUI_Minimal_$(WIXUIARCH)">
21 <Publish Dialog="WelcomeEulaDlg" Control="Print" Event="DoAction" Value="WixUIPrintEula_$(WIXUIARCH)" />
22 </UI>
23
24 <UIRef Id="WixUI_Minimal" />
25 </Fragment>
26 <?endforeach?>
27
28 <Fragment>
29 <UI Id="file WixUI_Minimal">
22 <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" /> 30 <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
23 <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" /> 31 <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
24 <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" /> 32 <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
@@ -59,12 +67,4 @@ Patch dialog sequence:
59 67
60 <UIRef Id="WixUI_Common" /> 68 <UIRef Id="WixUI_Common" />
61 </Fragment> 69 </Fragment>
62
63 <?foreach WIXUIARCH in X86;X64;A64 ?>
64 <Fragment>
65 <UI Id="WixUI_Minimal_$(WIXUIARCH)">
66 <Publish Dialog="WelcomeEulaDlg" Control="Print" Event="DoAction" Value="WixUIPrintEula_$(WIXUIARCH)" />
67 </UI>
68 </Fragment>
69 <?endforeach?>
70</Wix> 70</Wix>
diff --git a/src/ext/UI/wixlib/WixUI_Mondo.wxs b/src/ext/UI/wixlib/WixUI_Mondo.wxs
index 92890572..2f883b8b 100644
--- a/src/ext/UI/wixlib/WixUI_Mondo.wxs
+++ b/src/ext/UI/wixlib/WixUI_Mondo.wxs
@@ -1,7 +1,5 @@
1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 1<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
2 2
3
4
5<!-- 3<!--
6First-time install dialog sequence: 4First-time install dialog sequence:
7- WixUI_WelcomeDlg 5- WixUI_WelcomeDlg
@@ -24,8 +22,20 @@ Patch dialog sequence:
24--> 22-->
25 23
26<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 24<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
25 <?foreach WIXUIARCH in X86;X64;A64 ?>
27 <Fragment> 26 <Fragment>
28 <UI Id="WixUI_Mondo"> 27 <UI Id="WixUI_Mondo_$(WIXUIARCH)">
28 <Publish Dialog="LicenseAgreementDlg" Control="Print" Event="DoAction" Value="WixUIPrintEula_$(WIXUIARCH)" />
29 <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="3" Condition="NOT WIXUI_DONTVALIDATEPATH" />
30 <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="2" Condition="NOT WIXUI_DONTVALIDATEPATH" />
31 </UI>
32
33 <UIRef Id="WixUI_Mondo" />
34 </Fragment>
35 <?endforeach?>
36
37 <Fragment>
38 <UI Id="file WixUI_Mondo">
29 <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" /> 39 <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
30 <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" /> 40 <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
31 <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" /> 41 <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
@@ -74,14 +84,4 @@ Patch dialog sequence:
74 84
75 <UIRef Id="WixUI_Common" /> 85 <UIRef Id="WixUI_Common" />
76 </Fragment> 86 </Fragment>
77
78 <?foreach WIXUIARCH in X86;X64;A64 ?>
79 <Fragment>
80 <UI Id="WixUI_Mondo_$(WIXUIARCH)">
81 <Publish Dialog="LicenseAgreementDlg" Control="Print" Event="DoAction" Value="WixUIPrintEula_$(WIXUIARCH)" />
82 <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="3" Condition="NOT WIXUI_DONTVALIDATEPATH" />
83 <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath_$(WIXUIARCH)" Order="2" Condition="NOT WIXUI_DONTVALIDATEPATH" />
84 </UI>
85 </Fragment>
86 <?endforeach?>
87</Wix> 87</Wix>
diff --git a/src/ext/UI/wixlib/ui.v3.ncrunchproject b/src/ext/UI/wixlib/ui.v3.ncrunchproject
new file mode 100644
index 00000000..319cd523
--- /dev/null
+++ b/src/ext/UI/wixlib/ui.v3.ncrunchproject
@@ -0,0 +1,5 @@
1<ProjectConfiguration>
2 <Settings>
3 <IgnoreThisComponentCompletely>True</IgnoreThisComponentCompletely>
4 </Settings>
5</ProjectConfiguration> \ No newline at end of file