diff options
author | Bob Arnson <bob@firegiant.com> | 2022-11-21 16:57:23 -0500 |
---|---|---|
committer | Bob Arnson <github@bobs.org> | 2022-12-06 15:16:20 -0500 |
commit | c4ffb9967e4e4f7d67f5925208e3e0a885e903c5 (patch) | |
tree | 3f34ca158b1bc39d5b6aaee2a4bb2f93dae0d365 | |
parent | 0af946e794ec85801dc542edd9905f9e9e18e7ed (diff) | |
download | wix-c4ffb9967e4e4f7d67f5925208e3e0a885e903c5.tar.gz wix-c4ffb9967e4e4f7d67f5925208e3e0a885e903c5.tar.bz2 wix-c4ffb9967e4e4f7d67f5925208e3e0a885e903c5.zip |
Better solution to the UI custom action "problem."
Add platform-specific fragments that are referenced by the compiler
extension. That makes it easier to customize: Just copy the dialog set
authoring and rename, like in v3.
-rw-r--r-- | src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs | 80 | ||||
-rw-r--r-- | src/ext/UI/wixext/UICompiler.cs | 40 | ||||
-rw-r--r-- | src/ext/UI/wixlib/AdvancedWelcomeEulaDlg.wxs | 6 | ||||
-rw-r--r-- | src/ext/UI/wixlib/Common_Platform.wxi | 16 | ||||
-rw-r--r-- | src/ext/UI/wixlib/LicenseAgreementDlg.wxs | 6 | ||||
-rw-r--r-- | src/ext/UI/wixlib/WelcomeEulaDlg.wxs | 6 | ||||
-rw-r--r-- | src/ext/UI/wixlib/WixUI_Advanced.wxs | 14 | ||||
-rw-r--r-- | src/ext/UI/wixlib/WixUI_FeatureTree.wxs | 10 | ||||
-rw-r--r-- | src/ext/UI/wixlib/WixUI_InstallDir.wxs | 14 | ||||
-rw-r--r-- | src/ext/UI/wixlib/WixUI_Minimal.wxs | 10 | ||||
-rw-r--r-- | src/ext/UI/wixlib/WixUI_Mondo.wxs | 12 | ||||
-rw-r--r-- | src/ext/UI/wixlib/ui.wixproj | 16 |
12 files changed, 133 insertions, 97 deletions
diff --git a/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs b/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs index 4fd203c5..c637b5dd 100644 --- a/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs +++ b/src/ext/UI/test/WixToolsetTest.UI/UIExtensionFixture.cs | |||
@@ -20,7 +20,7 @@ namespace WixToolsetTest.UI | |||
20 | var bindFolder = TestData.Get(@"TestData\data"); | 20 | var bindFolder = TestData.Get(@"TestData\data"); |
21 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); | 21 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); |
22 | 22 | ||
23 | var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction"); | 23 | var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent"); |
24 | Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t")); | 24 | Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t")); |
25 | WixAssert.CompareLineByLine(new[] | 25 | WixAssert.CompareLineByLine(new[] |
26 | { | 26 | { |
@@ -38,9 +38,15 @@ namespace WixToolsetTest.UI | |||
38 | "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t", | 38 | "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t", |
39 | "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t", | 39 | "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t", |
40 | "CustomAction:WixSetPerUserFolder\t51\tAPPLICATIONFOLDER\t[WixPerUserFolder]\t", | 40 | "CustomAction:WixSetPerUserFolder\t51\tAPPLICATIONFOLDER\t[WixPerUserFolder]\t", |
41 | "CustomAction:WixUIPrintEula\t65\tWixUiCa_X86\tPrintEula\t", | 41 | "CustomAction:WixUIPrintEula_X86\t65\tWixUiCa_X86\tPrintEula\t", |
42 | "CustomAction:WixUIValidatePath\t65\tWixUiCa_X86\tValidatePath\t", | 42 | "CustomAction:WixUIValidatePath_X86\t65\tWixUiCa_X86\tValidatePath\t", |
43 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); | 43 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); |
44 | WixAssert.CompareLineByLine(new[] | ||
45 | { | ||
46 | "ControlEvent:AdvancedWelcomeEulaDlg\tPrint\tDoAction\tWixUIPrintEula_X86\t1\t1", | ||
47 | "ControlEvent:BrowseDlg\tOK\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t1", | ||
48 | "ControlEvent:InstallDirDlg\tNext\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t2", | ||
49 | }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray()); | ||
44 | } | 50 | } |
45 | 51 | ||
46 | [Fact] | 52 | [Fact] |
@@ -50,7 +56,7 @@ namespace WixToolsetTest.UI | |||
50 | var bindFolder = TestData.Get(@"TestData\data"); | 56 | var bindFolder = TestData.Get(@"TestData\data"); |
51 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); | 57 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); |
52 | 58 | ||
53 | var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction"); | 59 | var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent"); |
54 | Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t")); | 60 | Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t")); |
55 | WixAssert.CompareLineByLine(new[] | 61 | WixAssert.CompareLineByLine(new[] |
56 | { | 62 | { |
@@ -68,9 +74,15 @@ namespace WixToolsetTest.UI | |||
68 | "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t", | 74 | "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t", |
69 | "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t", | 75 | "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t", |
70 | "CustomAction:WixSetPerUserFolder\t51\tAPPLICATIONFOLDER\t[WixPerUserFolder]\t", | 76 | "CustomAction:WixSetPerUserFolder\t51\tAPPLICATIONFOLDER\t[WixPerUserFolder]\t", |
71 | "CustomAction:WixUIPrintEula\t65\tWixUiCa_X64\tPrintEula\t", | 77 | "CustomAction:WixUIPrintEula_X64\t65\tWixUiCa_X64\tPrintEula\t", |
72 | "CustomAction:WixUIValidatePath\t65\tWixUiCa_X64\tValidatePath\t", | 78 | "CustomAction:WixUIValidatePath_X64\t65\tWixUiCa_X64\tValidatePath\t", |
73 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); | 79 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); |
80 | WixAssert.CompareLineByLine(new[] | ||
81 | { | ||
82 | "ControlEvent:AdvancedWelcomeEulaDlg\tPrint\tDoAction\tWixUIPrintEula_X64\t1\t1", | ||
83 | "ControlEvent:BrowseDlg\tOK\tDoAction\tWixUIValidatePath_X64\tNOT WIXUI_DONTVALIDATEPATH\t1", | ||
84 | "ControlEvent:InstallDirDlg\tNext\tDoAction\tWixUIValidatePath_X64\tNOT WIXUI_DONTVALIDATEPATH\t2", | ||
85 | }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray()); | ||
74 | } | 86 | } |
75 | 87 | ||
76 | [Fact] | 88 | [Fact] |
@@ -80,7 +92,7 @@ namespace WixToolsetTest.UI | |||
80 | var bindFolder = TestData.Get(@"TestData\data"); | 92 | var bindFolder = TestData.Get(@"TestData\data"); |
81 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); | 93 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); |
82 | 94 | ||
83 | var results = build.BuildAndQuery(BuildARM64, "Binary", "Dialog", "CustomAction"); | 95 | var results = build.BuildAndQuery(BuildARM64, "Binary", "Dialog", "CustomAction", "ControlEvent"); |
84 | Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t")); | 96 | Assert.Single(results, result => result.StartsWith("Dialog:AdvancedWelcomeEulaDlg\t")); |
85 | WixAssert.CompareLineByLine(new[] | 97 | WixAssert.CompareLineByLine(new[] |
86 | { | 98 | { |
@@ -98,9 +110,15 @@ namespace WixToolsetTest.UI | |||
98 | "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t", | 110 | "CustomAction:WixSetDefaultPerUserFolder\t51\tWixPerUserFolder\t[LocalAppDataFolder]Apps\\[ApplicationFolderName]\t", |
99 | "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t", | 111 | "CustomAction:WixSetPerMachineFolder\t51\tAPPLICATIONFOLDER\t[WixPerMachineFolder]\t", |
100 | "CustomAction:WixSetPerUserFolder\t51\tAPPLICATIONFOLDER\t[WixPerUserFolder]\t", | 112 | "CustomAction:WixSetPerUserFolder\t51\tAPPLICATIONFOLDER\t[WixPerUserFolder]\t", |
101 | "CustomAction:WixUIPrintEula\t65\tWixUiCa_A64\tPrintEula\t", | 113 | "CustomAction:WixUIPrintEula_A64\t65\tWixUiCa_A64\tPrintEula\t", |
102 | "CustomAction:WixUIValidatePath\t65\tWixUiCa_A64\tValidatePath\t", | 114 | "CustomAction:WixUIValidatePath_A64\t65\tWixUiCa_A64\tValidatePath\t", |
103 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); | 115 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); |
116 | WixAssert.CompareLineByLine(new[] | ||
117 | { | ||
118 | "ControlEvent:AdvancedWelcomeEulaDlg\tPrint\tDoAction\tWixUIPrintEula_A64\t1\t1", | ||
119 | "ControlEvent:BrowseDlg\tOK\tDoAction\tWixUIValidatePath_A64\tNOT WIXUI_DONTVALIDATEPATH\t1", | ||
120 | "ControlEvent:InstallDirDlg\tNext\tDoAction\tWixUIValidatePath_A64\tNOT WIXUI_DONTVALIDATEPATH\t2", | ||
121 | }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray()); | ||
104 | } | 122 | } |
105 | 123 | ||
106 | [Fact] | 124 | [Fact] |
@@ -110,7 +128,7 @@ namespace WixToolsetTest.UI | |||
110 | var bindFolder = TestData.Get(@"TestData\data"); | 128 | var bindFolder = TestData.Get(@"TestData\data"); |
111 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); | 129 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); |
112 | 130 | ||
113 | var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction"); | 131 | var results = build.BuildAndQuery(BuildX64, "Binary", "Dialog", "CustomAction", "ControlEvent"); |
114 | Assert.Single(results, result => result.StartsWith("Dialog:WelcomeDlg\t")); | 132 | Assert.Single(results, result => result.StartsWith("Dialog:WelcomeDlg\t")); |
115 | Assert.Single(results, result => result.StartsWith("Dialog:CustomizeDlg\t")); | 133 | Assert.Single(results, result => result.StartsWith("Dialog:CustomizeDlg\t")); |
116 | Assert.Empty(results.Where(result => result.StartsWith("Dialog:SetupTypeDlg\t"))); | 134 | Assert.Empty(results.Where(result => result.StartsWith("Dialog:SetupTypeDlg\t"))); |
@@ -122,13 +140,16 @@ namespace WixToolsetTest.UI | |||
122 | "Binary:WixUI_Bmp_Up\t[Binary data]", | 140 | "Binary:WixUI_Bmp_Up\t[Binary data]", |
123 | "Binary:WixUI_Ico_Exclam\t[Binary data]", | 141 | "Binary:WixUI_Ico_Exclam\t[Binary data]", |
124 | "Binary:WixUI_Ico_Info\t[Binary data]", | 142 | "Binary:WixUI_Ico_Info\t[Binary data]", |
125 | "Binary:WixUiCa_X86\t[Binary data]", | 143 | "Binary:WixUiCa_X64\t[Binary data]", |
126 | }, results.Where(r => r.StartsWith("Binary:")).ToArray()); | 144 | }, results.Where(r => r.StartsWith("Binary:")).ToArray()); |
127 | WixAssert.CompareLineByLine(new[] | 145 | WixAssert.CompareLineByLine(new[] |
128 | { | 146 | { |
129 | "CustomAction:WixUIPrintEula\t65\tWixUiCa_X86\tPrintEula\t", | 147 | "CustomAction:WixUIPrintEula_X64\t65\tWixUiCa_X64\tPrintEula\t", |
130 | "CustomAction:WixUIValidatePath\t65\tWixUiCa_X86\tValidatePath\t", | ||
131 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); | 148 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); |
149 | WixAssert.CompareLineByLine(new[] | ||
150 | { | ||
151 | "ControlEvent:LicenseAgreementDlg\tPrint\tDoAction\tWixUIPrintEula_X64\t1\t1", | ||
152 | }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray()); | ||
132 | } | 153 | } |
133 | 154 | ||
134 | [Fact] | 155 | [Fact] |
@@ -138,7 +159,7 @@ namespace WixToolsetTest.UI | |||
138 | var bindFolder = TestData.Get(@"TestData\data"); | 159 | var bindFolder = TestData.Get(@"TestData\data"); |
139 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); | 160 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); |
140 | 161 | ||
141 | var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "Property"); | 162 | var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "Property", "ControlEvent"); |
142 | Assert.Single(results, result => result.StartsWith("Dialog:InstallDirDlg\t")); | 163 | Assert.Single(results, result => result.StartsWith("Dialog:InstallDirDlg\t")); |
143 | WixAssert.CompareLineByLine(new[] | 164 | WixAssert.CompareLineByLine(new[] |
144 | { | 165 | { |
@@ -152,13 +173,19 @@ namespace WixToolsetTest.UI | |||
152 | }, results.Where(r => r.StartsWith("Binary:")).ToArray()); | 173 | }, results.Where(r => r.StartsWith("Binary:")).ToArray()); |
153 | WixAssert.CompareLineByLine(new[] | 174 | WixAssert.CompareLineByLine(new[] |
154 | { | 175 | { |
155 | "CustomAction:WixUIPrintEula\t65\tWixUiCa_X86\tPrintEula\t", | 176 | "CustomAction:WixUIPrintEula_X86\t65\tWixUiCa_X86\tPrintEula\t", |
156 | "CustomAction:WixUIValidatePath\t65\tWixUiCa_X86\tValidatePath\t", | 177 | "CustomAction:WixUIValidatePath_X86\t65\tWixUiCa_X86\tValidatePath\t", |
157 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); | 178 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); |
158 | WixAssert.CompareLineByLine(new[] | 179 | WixAssert.CompareLineByLine(new[] |
159 | { | 180 | { |
160 | "Property:WIXUI_INSTALLDIR\tINSTALLFOLDER", | 181 | "Property:WIXUI_INSTALLDIR\tINSTALLFOLDER", |
161 | }, results.Where(r => r.StartsWith("Property:WIXUI")).ToArray()); | 182 | }, results.Where(r => r.StartsWith("Property:WIXUI")).ToArray()); |
183 | WixAssert.CompareLineByLine(new[] | ||
184 | { | ||
185 | "ControlEvent:BrowseDlg\tOK\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t3", | ||
186 | "ControlEvent:InstallDirDlg\tNext\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t2", | ||
187 | "ControlEvent:LicenseAgreementDlg\tPrint\tDoAction\tWixUIPrintEula_X86\t1\t1", | ||
188 | }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).OrderBy(s => s).ToArray()); | ||
162 | } | 189 | } |
163 | 190 | ||
164 | [Fact] | 191 | [Fact] |
@@ -168,7 +195,7 @@ namespace WixToolsetTest.UI | |||
168 | var bindFolder = TestData.Get(@"TestData\data"); | 195 | var bindFolder = TestData.Get(@"TestData\data"); |
169 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); | 196 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); |
170 | 197 | ||
171 | var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction"); | 198 | var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent"); |
172 | Assert.Single(results, result => result.StartsWith("Dialog:WelcomeEulaDlg\t")); | 199 | Assert.Single(results, result => result.StartsWith("Dialog:WelcomeEulaDlg\t")); |
173 | WixAssert.CompareLineByLine(new[] | 200 | WixAssert.CompareLineByLine(new[] |
174 | { | 201 | { |
@@ -182,9 +209,12 @@ namespace WixToolsetTest.UI | |||
182 | }, results.Where(r => r.StartsWith("Binary:")).ToArray()); | 209 | }, results.Where(r => r.StartsWith("Binary:")).ToArray()); |
183 | WixAssert.CompareLineByLine(new[] | 210 | WixAssert.CompareLineByLine(new[] |
184 | { | 211 | { |
185 | "CustomAction:WixUIPrintEula\t65\tWixUiCa_X86\tPrintEula\t", | 212 | "CustomAction:WixUIPrintEula_X86\t65\tWixUiCa_X86\tPrintEula\t", |
186 | "CustomAction:WixUIValidatePath\t65\tWixUiCa_X86\tValidatePath\t", | ||
187 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); | 213 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); |
214 | WixAssert.CompareLineByLine(new[] | ||
215 | { | ||
216 | "ControlEvent:WelcomeEulaDlg\tPrint\tDoAction\tWixUIPrintEula_X86\t1\t1", | ||
217 | }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).OrderBy(s => s).ToArray()); | ||
188 | } | 218 | } |
189 | 219 | ||
190 | [Fact] | 220 | [Fact] |
@@ -232,7 +262,7 @@ namespace WixToolsetTest.UI | |||
232 | var bindFolder = TestData.Get(@"TestData\data"); | 262 | var bindFolder = TestData.Get(@"TestData\data"); |
233 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); | 263 | var build = new Builder(folder, typeof(UIExtensionFactory), new[] { bindFolder }); |
234 | 264 | ||
235 | var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction"); | 265 | var results = build.BuildAndQuery(Build, "Binary", "Dialog", "CustomAction", "ControlEvent"); |
236 | Assert.Single(results, result => result.StartsWith("Dialog:WelcomeDlg\t")); | 266 | Assert.Single(results, result => result.StartsWith("Dialog:WelcomeDlg\t")); |
237 | Assert.Single(results, result => result.StartsWith("Dialog:CustomizeDlg\t")); | 267 | Assert.Single(results, result => result.StartsWith("Dialog:CustomizeDlg\t")); |
238 | Assert.Single(results, result => result.StartsWith("Dialog:SetupTypeDlg\t")); | 268 | Assert.Single(results, result => result.StartsWith("Dialog:SetupTypeDlg\t")); |
@@ -248,9 +278,15 @@ namespace WixToolsetTest.UI | |||
248 | }, results.Where(r => r.StartsWith("Binary:")).ToArray()); | 278 | }, results.Where(r => r.StartsWith("Binary:")).ToArray()); |
249 | WixAssert.CompareLineByLine(new[] | 279 | WixAssert.CompareLineByLine(new[] |
250 | { | 280 | { |
251 | "CustomAction:WixUIPrintEula\t65\tWixUiCa_X86\tPrintEula\t", | 281 | "CustomAction:WixUIPrintEula_X86\t65\tWixUiCa_X86\tPrintEula\t", |
252 | "CustomAction:WixUIValidatePath\t65\tWixUiCa_X86\tValidatePath\t", | 282 | "CustomAction:WixUIValidatePath_X86\t65\tWixUiCa_X86\tValidatePath\t", |
253 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); | 283 | }, results.Where(r => r.StartsWith("CustomAction:")).ToArray()); |
284 | WixAssert.CompareLineByLine(new[] | ||
285 | { | ||
286 | "ControlEvent:BrowseDlg\tOK\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t3", | ||
287 | "ControlEvent:InstallDirDlg\tNext\tDoAction\tWixUIValidatePath_X86\tNOT WIXUI_DONTVALIDATEPATH\t2", | ||
288 | "ControlEvent:LicenseAgreementDlg\tPrint\tDoAction\tWixUIPrintEula_X86\t1\t1", | ||
289 | }, results.Where(result => result.StartsWith("ControlEvent:") && result.Contains("DoAction")).ToArray()); | ||
254 | } | 290 | } |
255 | 291 | ||
256 | [Fact] | 292 | [Fact] |
diff --git a/src/ext/UI/wixext/UICompiler.cs b/src/ext/UI/wixext/UICompiler.cs index 6fdb5bd9..8b527454 100644 --- a/src/ext/UI/wixext/UICompiler.cs +++ b/src/ext/UI/wixext/UICompiler.cs | |||
@@ -17,11 +17,6 @@ namespace WixToolset.UI | |||
17 | public override XNamespace Namespace => "http://wixtoolset.org/schemas/v4/wxs/ui"; | 17 | public override XNamespace Namespace => "http://wixtoolset.org/schemas/v4/wxs/ui"; |
18 | 18 | ||
19 | /// <summary> | 19 | /// <summary> |
20 | /// Flag to prevent custom action symbols duplication. | ||
21 | /// </summary> | ||
22 | private bool customActionsAdded = false; | ||
23 | |||
24 | /// <summary> | ||
25 | /// Processes an element for the Compiler. | 20 | /// Processes an element for the Compiler. |
26 | /// </summary> | 21 | /// </summary> |
27 | /// <param name="sourceLineNumbers">Source line number for the parent element.</param> | 22 | /// <param name="sourceLineNumbers">Source line number for the parent element.</param> |
@@ -91,40 +86,9 @@ namespace WixToolset.UI | |||
91 | } | 86 | } |
92 | else | 87 | else |
93 | { | 88 | { |
89 | var platform = this.Context.Platform == Platform.ARM64 ? "A64" : this.Context.Platform.ToString(); | ||
94 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.WixUI, id); | 90 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.WixUI, id); |
95 | 91 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.WixUI, $"{id}_{platform}"); | |
96 | if (!customActionsAdded) | ||
97 | { | ||
98 | // Because these custom actions are "scheduled" via `DoAction` control events, we have to create the | ||
99 | // custom action definitions here, so the `DoAction` references are static and the targets are | ||
100 | // dynamically created to properly reflect the platform-specific DLL and avoid having duplicate ids | ||
101 | // in the UI .wixlib. | ||
102 | var platform = this.Context.Platform == Platform.ARM64 ? "A64" : this.Context.Platform.ToString(); | ||
103 | var source = $"WixUiCa_{platform}"; | ||
104 | this.ParseHelper.CreateSimpleReference(section, sourceLineNumbers, SymbolDefinitions.Binary, source); | ||
105 | |||
106 | section.AddSymbol(new CustomActionSymbol(sourceLineNumbers, new Identifier(AccessModifier.Global, "WixUIPrintEula")) | ||
107 | { | ||
108 | TargetType = CustomActionTargetType.Dll, | ||
109 | Target = "PrintEula", | ||
110 | SourceType = CustomActionSourceType.Binary, | ||
111 | Source = source, | ||
112 | IgnoreResult = true, | ||
113 | ExecutionType = CustomActionExecutionType.Immediate, | ||
114 | }); | ||
115 | |||
116 | section.AddSymbol(new CustomActionSymbol(sourceLineNumbers, new Identifier(AccessModifier.Global, "WixUIValidatePath")) | ||
117 | { | ||
118 | TargetType = CustomActionTargetType.Dll, | ||
119 | Target = "ValidatePath", | ||
120 | SourceType = CustomActionSourceType.Binary, | ||
121 | Source = source, | ||
122 | IgnoreResult = true, | ||
123 | ExecutionType = CustomActionExecutionType.Immediate, | ||
124 | }); | ||
125 | |||
126 | customActionsAdded = true; | ||
127 | } | ||
128 | 92 | ||
129 | if (installDirectory != null) | 93 | if (installDirectory != null) |
130 | { | 94 | { |
diff --git a/src/ext/UI/wixlib/AdvancedWelcomeEulaDlg.wxs b/src/ext/UI/wixlib/AdvancedWelcomeEulaDlg.wxs index 96b22f1e..8b950ec1 100644 --- a/src/ext/UI/wixlib/AdvancedWelcomeEulaDlg.wxs +++ b/src/ext/UI/wixlib/AdvancedWelcomeEulaDlg.wxs | |||
@@ -1,4 +1,4 @@ | |||
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 | 3 | ||
4 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 4 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
@@ -11,9 +11,7 @@ | |||
11 | <Control Id="DescriptionPerMachine" Type="Text" X="20" Y="202" Width="330" Height="31" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.AdvancedWelcomeEulaDlgDescriptionPerMachine)" ShowCondition="ALLUSERS" /> | 11 | <Control Id="DescriptionPerMachine" Type="Text" X="20" Y="202" Width="330" Height="31" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.AdvancedWelcomeEulaDlgDescriptionPerMachine)" ShowCondition="ALLUSERS" /> |
12 | <Control Id="DescriptionPerUser" Type="Text" X="20" Y="202" Width="330" Height="31" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.AdvancedWelcomeEulaDlgDescriptionPerUser)" ShowCondition="NOT ALLUSERS" /> | 12 | <Control Id="DescriptionPerUser" Type="Text" X="20" Y="202" Width="330" Height="31" Transparent="yes" NoPrefix="yes" Hidden="yes" Text="!(loc.AdvancedWelcomeEulaDlgDescriptionPerUser)" ShowCondition="NOT ALLUSERS" /> |
13 | <Control Id="LicenseAcceptedCheckBox" Type="CheckBox" X="20" Y="180" Width="226" Height="18" CheckBoxValue="1" Property="LicenseAccepted" Text="!(loc.WelcomeEulaDlgLicenseAcceptedCheckBox)" /> | 13 | <Control Id="LicenseAcceptedCheckBox" Type="CheckBox" X="20" Y="180" Width="226" Height="18" CheckBoxValue="1" Property="LicenseAccepted" Text="!(loc.WelcomeEulaDlgLicenseAcceptedCheckBox)" /> |
14 | <Control Id="Print" Type="PushButton" X="88" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)"> | 14 | <Control Id="Print" Type="PushButton" X="88" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)" /> |
15 | <Publish Event="DoAction" Value="WixUIPrintEula" /> | ||
16 | </Control> | ||
17 | <Control Id="Advanced" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="!(loc.AdvancedWelcomeEulaDlgAdvanced)" DisableCondition="LicenseAccepted <> "1"" EnableCondition="LicenseAccepted = "1"" /> | 15 | <Control Id="Advanced" Type="PushButton" X="156" Y="243" Width="56" Height="17" Text="!(loc.AdvancedWelcomeEulaDlgAdvanced)" DisableCondition="LicenseAccepted <> "1"" EnableCondition="LicenseAccepted = "1"" /> |
18 | <Control Id="Install" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Default="yes" Text="!(loc.AdvancedWelcomeEulaDlgInstall)" Hidden="yes" DisableCondition="LicenseAccepted <> "1"" EnableCondition="LicenseAccepted = "1"" ShowCondition="ALLUSERS"> | 16 | <Control Id="Install" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Default="yes" Text="!(loc.AdvancedWelcomeEulaDlgInstall)" Hidden="yes" DisableCondition="LicenseAccepted <> "1"" EnableCondition="LicenseAccepted = "1"" ShowCondition="ALLUSERS"> |
19 | <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg" Condition="!(wix.WixUICostingPopupOptOut) OR CostingComplete = 1" /> | 17 | <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg" Condition="!(wix.WixUICostingPopupOptOut) OR CostingComplete = 1" /> |
diff --git a/src/ext/UI/wixlib/Common_Platform.wxi b/src/ext/UI/wixlib/Common_Platform.wxi index 0c03629c..cd050e06 100644 --- a/src/ext/UI/wixlib/Common_Platform.wxi +++ b/src/ext/UI/wixlib/Common_Platform.wxi | |||
@@ -1,16 +1,18 @@ | |||
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 | 3 | ||
4 | <Include xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 4 | <Include xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
5 | <?include ..\..\caDecor.wxi ?> | 5 | <?include ..\..\caDecor.wxi ?> |
6 | 6 | ||
7 | <!-- | 7 | <Fragment> |
8 | Custom actions to print EULA amd validate install directories are defined | 8 | <CustomAction Id="WixUIPrintEula$(Suffix)" BinaryRef="WixUiCa$(Suffix)" DllEntry="PrintEula" Return="ignore" Execute="immediate" /> |
9 | in WixUIExtension compiler extension, to handle platform-specific custom | 9 | </Fragment> |
10 | actions referred to from `DoAction` control events. | 10 | |
11 | --> | 11 | <Fragment> |
12 | <CustomAction Id="WixUIValidatePath$(Suffix)" BinaryRef="WixUiCa$(Suffix)" DllEntry="ValidatePath" Return="ignore" Execute="immediate" /> | ||
13 | </Fragment> | ||
12 | 14 | ||
13 | <Fragment> | 15 | <Fragment> |
14 | <Binary Id="WixUiCa$(var.Suffix)" SourceFile="!(bindpath.$(var.platform))uica.dll" /> | 16 | <Binary Id="WixUiCa$(Suffix)" SourceFile="!(bindpath.$(platform))uica.dll" /> |
15 | </Fragment> | 17 | </Fragment> |
16 | </Include> | 18 | </Include> |
diff --git a/src/ext/UI/wixlib/LicenseAgreementDlg.wxs b/src/ext/UI/wixlib/LicenseAgreementDlg.wxs index aaa0611d..a072cf6b 100644 --- a/src/ext/UI/wixlib/LicenseAgreementDlg.wxs +++ b/src/ext/UI/wixlib/LicenseAgreementDlg.wxs | |||
@@ -1,4 +1,4 @@ | |||
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 | 3 | ||
4 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 4 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
@@ -11,9 +11,7 @@ | |||
11 | <Control Id="Description" Type="Text" X="25" Y="23" Width="340" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.LicenseAgreementDlgDescription)" /> | 11 | <Control Id="Description" Type="Text" X="25" Y="23" Width="340" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.LicenseAgreementDlgDescription)" /> |
12 | <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.LicenseAgreementDlgTitle)" /> | 12 | <Control Id="Title" Type="Text" X="15" Y="6" Width="200" Height="15" Transparent="yes" NoPrefix="yes" Text="!(loc.LicenseAgreementDlgTitle)" /> |
13 | <Control Id="LicenseAcceptedCheckBox" Type="CheckBox" X="20" Y="207" Width="330" Height="18" CheckBoxValue="1" Property="LicenseAccepted" Text="!(loc.LicenseAgreementDlgLicenseAcceptedCheckBox)" /> | 13 | <Control Id="LicenseAcceptedCheckBox" Type="CheckBox" X="20" Y="207" Width="330" Height="18" CheckBoxValue="1" Property="LicenseAccepted" Text="!(loc.LicenseAgreementDlgLicenseAcceptedCheckBox)" /> |
14 | <Control Id="Print" Type="PushButton" X="112" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)"> | 14 | <Control Id="Print" Type="PushButton" X="112" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)" /> |
15 | <Publish Event="DoAction" Value="WixUIPrintEula" /> | ||
16 | </Control> | ||
17 | <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" /> | 15 | <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)" /> |
18 | <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" DisableCondition="LicenseAccepted <> "1"" EnableCondition="LicenseAccepted = "1""> | 16 | <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="!(loc.WixUINext)" DisableCondition="LicenseAccepted <> "1"" EnableCondition="LicenseAccepted = "1""> |
19 | <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg" Condition="!(wix.WixUICostingPopupOptOut) OR CostingComplete = 1" /> | 17 | <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg" Condition="!(wix.WixUICostingPopupOptOut) OR CostingComplete = 1" /> |
diff --git a/src/ext/UI/wixlib/WelcomeEulaDlg.wxs b/src/ext/UI/wixlib/WelcomeEulaDlg.wxs index 38868bcd..4b389ac6 100644 --- a/src/ext/UI/wixlib/WelcomeEulaDlg.wxs +++ b/src/ext/UI/wixlib/WelcomeEulaDlg.wxs | |||
@@ -1,4 +1,4 @@ | |||
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 | 3 | ||
4 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 4 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
@@ -9,9 +9,7 @@ | |||
9 | <Control Id="Title" Type="Text" X="130" Y="6" Width="225" Height="30" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeEulaDlgTitle)" /> | 9 | <Control Id="Title" Type="Text" X="130" Y="6" Width="225" Height="30" Transparent="yes" NoPrefix="yes" Text="!(loc.WelcomeEulaDlgTitle)" /> |
10 | <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> | 10 | <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" /> |
11 | <Control Id="LicenseAcceptedCheckBox" Type="CheckBox" X="130" Y="207" Width="226" Height="18" CheckBoxValue="1" Property="LicenseAccepted" Text="!(loc.WelcomeEulaDlgLicenseAcceptedCheckBox)" /> | 11 | <Control Id="LicenseAcceptedCheckBox" Type="CheckBox" X="130" Y="207" Width="226" Height="18" CheckBoxValue="1" Property="LicenseAccepted" Text="!(loc.WelcomeEulaDlgLicenseAcceptedCheckBox)" /> |
12 | <Control Id="Print" Type="PushButton" X="88" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)"> | 12 | <Control Id="Print" Type="PushButton" X="88" Y="243" Width="56" Height="17" Text="!(loc.WixUIPrint)" /> |
13 | <Publish Event="DoAction" Value="WixUIPrintEula" /> | ||
14 | </Control> | ||
15 | <Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUIBack)" /> | 13 | <Control Id="Back" Type="PushButton" X="156" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUIBack)" /> |
16 | <Control Id="Install" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Default="yes" Text="!(loc.WelcomeEulaDlgInstall)" Hidden="yes" DisableCondition="LicenseAccepted <> "1"" EnableCondition="LicenseAccepted = "1"" ShowCondition="ALLUSERS"> | 14 | <Control Id="Install" Type="PushButton" ElevationShield="yes" X="212" Y="243" Width="80" Height="17" Default="yes" Text="!(loc.WelcomeEulaDlgInstall)" Hidden="yes" DisableCondition="LicenseAccepted <> "1"" EnableCondition="LicenseAccepted = "1"" ShowCondition="ALLUSERS"> |
17 | <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg" Condition="!(wix.WixUICostingPopupOptOut) OR CostingComplete = 1" /> | 15 | <Publish Event="SpawnWaitDialog" Value="WaitForCostingDlg" Condition="!(wix.WixUICostingPopupOptOut) OR CostingComplete = 1" /> |
diff --git a/src/ext/UI/wixlib/WixUI_Advanced.wxs b/src/ext/UI/wixlib/WixUI_Advanced.wxs index 2ea7a97d..1aabbf96 100644 --- a/src/ext/UI/wixlib/WixUI_Advanced.wxs +++ b/src/ext/UI/wixlib/WixUI_Advanced.wxs | |||
@@ -1,4 +1,4 @@ | |||
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 | 3 | ||
4 | 4 | ||
@@ -67,7 +67,6 @@ Todo: | |||
67 | <DialogRef Id="WelcomeDlg" /> | 67 | <DialogRef Id="WelcomeDlg" /> |
68 | 68 | ||
69 | <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999" /> | 69 | <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999" /> |
70 | <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="1" /> | ||
71 | <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="2" Condition="WIXUI_INSTALLDIR_VALID<>"1"" /> | 70 | <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="2" Condition="WIXUI_INSTALLDIR_VALID<>"1"" /> |
72 | 71 | ||
73 | <Publish Dialog="AdvancedWelcomeEulaDlg" Control="Advanced" Event="NewDialog" Value="InstallScopeDlg" Order="1" Condition="!(wix.WixUISupportPerMachine) AND !(wix.WixUISupportPerUser)" /> | 72 | <Publish Dialog="AdvancedWelcomeEulaDlg" Control="Advanced" Event="NewDialog" Value="InstallScopeDlg" Order="1" Condition="!(wix.WixUISupportPerMachine) AND !(wix.WixUISupportPerUser)" /> |
@@ -87,7 +86,6 @@ Todo: | |||
87 | <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="InstallScopeDlg" Condition="!(wix.WixUISupportPerUser)" /> | 86 | <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="InstallScopeDlg" Condition="!(wix.WixUISupportPerUser)" /> |
88 | <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="AdvancedWelcomeEulaDlg" Condition="NOT !(wix.WixUISupportPerUser)" /> | 87 | <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="AdvancedWelcomeEulaDlg" Condition="NOT !(wix.WixUISupportPerUser)" /> |
89 | <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1" /> | 88 | <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1" /> |
90 | <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2" Condition="NOT WIXUI_DONTVALIDATEPATH" /> | ||
91 | <Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3" Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"" /> | 89 | <Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3" Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"" /> |
92 | <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="FeaturesDlg" Order="4" Condition="WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"" /> | 90 | <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="FeaturesDlg" Order="4" Condition="WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"" /> |
93 | <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1" /> | 91 | <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1" /> |
@@ -117,4 +115,14 @@ Todo: | |||
117 | <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" /> | 115 | <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" /> |
118 | <UIRef Id="WixUI_Common" /> | 116 | <UIRef Id="WixUI_Common" /> |
119 | </Fragment> | 117 | </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?> | ||
120 | </Wix> | 128 | </Wix> |
diff --git a/src/ext/UI/wixlib/WixUI_FeatureTree.wxs b/src/ext/UI/wixlib/WixUI_FeatureTree.wxs index 6f36bdb8..e50839d3 100644 --- a/src/ext/UI/wixlib/WixUI_FeatureTree.wxs +++ b/src/ext/UI/wixlib/WixUI_FeatureTree.wxs | |||
@@ -1,4 +1,4 @@ | |||
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 | 3 | ||
4 | 4 | ||
@@ -65,4 +65,12 @@ Patch dialog sequence: | |||
65 | 65 | ||
66 | <UIRef Id="WixUI_Common" /> | 66 | <UIRef Id="WixUI_Common" /> |
67 | </Fragment> | 67 | </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?> | ||
68 | </Wix> | 76 | </Wix> |
diff --git a/src/ext/UI/wixlib/WixUI_InstallDir.wxs b/src/ext/UI/wixlib/WixUI_InstallDir.wxs index f8eb3b11..10b32ce8 100644 --- a/src/ext/UI/wixlib/WixUI_InstallDir.wxs +++ b/src/ext/UI/wixlib/WixUI_InstallDir.wxs | |||
@@ -1,4 +1,4 @@ | |||
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 | 3 | ||
4 | 4 | ||
@@ -41,7 +41,6 @@ Patch dialog sequence: | |||
41 | <DialogRef Id="ProgressDlg" /> | 41 | <DialogRef Id="ProgressDlg" /> |
42 | <DialogRef Id="ResumeDlg" /> | 42 | <DialogRef Id="ResumeDlg" /> |
43 | <DialogRef Id="UserExit" /> | 43 | <DialogRef Id="UserExit" /> |
44 | <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3" /> | ||
45 | <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4" Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"" /> | 44 | <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4" Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"" /> |
46 | 45 | ||
47 | <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999" /> | 46 | <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999" /> |
@@ -54,7 +53,6 @@ Patch dialog sequence: | |||
54 | 53 | ||
55 | <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg" /> | 54 | <Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg" /> |
56 | <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1" /> | 55 | <Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1" /> |
57 | <Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2" Condition="NOT WIXUI_DONTVALIDATEPATH" /> | ||
58 | <Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3" Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"" /> | 56 | <Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3" Condition="NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"" /> |
59 | <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4" Condition="WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"" /> | 57 | <Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4" Condition="WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"" /> |
60 | <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1" /> | 58 | <Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1" /> |
@@ -74,4 +72,14 @@ Patch dialog sequence: | |||
74 | 72 | ||
75 | <UIRef Id="WixUI_Common" /> | 73 | <UIRef Id="WixUI_Common" /> |
76 | </Fragment> | 74 | </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?> | ||
77 | </Wix> | 85 | </Wix> |
diff --git a/src/ext/UI/wixlib/WixUI_Minimal.wxs b/src/ext/UI/wixlib/WixUI_Minimal.wxs index 8ac9751f..6d1709c5 100644 --- a/src/ext/UI/wixlib/WixUI_Minimal.wxs +++ b/src/ext/UI/wixlib/WixUI_Minimal.wxs | |||
@@ -1,4 +1,4 @@ | |||
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 | 3 | ||
4 | 4 | ||
@@ -59,4 +59,12 @@ Patch dialog sequence: | |||
59 | 59 | ||
60 | <UIRef Id="WixUI_Common" /> | 60 | <UIRef Id="WixUI_Common" /> |
61 | </Fragment> | 61 | </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?> | ||
62 | </Wix> | 70 | </Wix> |
diff --git a/src/ext/UI/wixlib/WixUI_Mondo.wxs b/src/ext/UI/wixlib/WixUI_Mondo.wxs index 6a4b15b1..92890572 100644 --- a/src/ext/UI/wixlib/WixUI_Mondo.wxs +++ b/src/ext/UI/wixlib/WixUI_Mondo.wxs | |||
@@ -1,4 +1,4 @@ | |||
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 | 3 | ||
4 | 4 | ||
@@ -74,4 +74,14 @@ Patch dialog sequence: | |||
74 | 74 | ||
75 | <UIRef Id="WixUI_Common" /> | 75 | <UIRef Id="WixUI_Common" /> |
76 | </Fragment> | 76 | </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?> | ||
77 | </Wix> | 87 | </Wix> |
diff --git a/src/ext/UI/wixlib/ui.wixproj b/src/ext/UI/wixlib/ui.wixproj index d7c6e638..ebac0c79 100644 --- a/src/ext/UI/wixlib/ui.wixproj +++ b/src/ext/UI/wixlib/ui.wixproj | |||
@@ -1,12 +1,10 @@ | |||
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 | <Project Sdk="WixToolset.Sdk"> | 2 | <Project Sdk="WixToolset.Sdk"> |
3 | |||
4 | <PropertyGroup> | 3 | <PropertyGroup> |
5 | <OutputType>Library</OutputType> | 4 | <OutputType>Library</OutputType> |
6 | <BindFiles>true</BindFiles> | 5 | <BindFiles>true</BindFiles> |
7 | <Cultures>en-us</Cultures> | 6 | <Cultures>en-us</Cultures> |
8 | </PropertyGroup> | 7 | </PropertyGroup> |
9 | |||
10 | <PropertyGroup> | 8 | <PropertyGroup> |
11 | <DefineConstants> | 9 | <DefineConstants> |
12 | $(DefineConstants); | 10 | $(DefineConstants); |
@@ -19,20 +17,20 @@ | |||
19 | upIco=$(MSBuildProjectDirectory)\Bitmaps\up.ico; | 17 | upIco=$(MSBuildProjectDirectory)\Bitmaps\up.ico; |
20 | </DefineConstants> | 18 | </DefineConstants> |
21 | </PropertyGroup> | 19 | </PropertyGroup> |
22 | |||
23 | <ItemGroup> | 20 | <ItemGroup> |
24 | <BindInputPaths Include="$(OutputPath)x86" BindName='x86' /> | 21 | <BindInputPaths Include="$(OutputPath)x86" BindName="x86" /> |
25 | <BindInputPaths Include="$(OutputPath)x64" BindName='x64' /> | 22 | <BindInputPaths Include="$(OutputPath)x64" BindName="x64" /> |
26 | <BindInputPaths Include="$(OutputPath)arm64" BindName='arm64' /> | 23 | <BindInputPaths Include="$(OutputPath)arm64" BindName="arm64" /> |
24 | </ItemGroup> | ||
25 | <ItemGroup> | ||
26 | <Content Include="Common_Platform.wxi" /> | ||
27 | </ItemGroup> | 27 | </ItemGroup> |
28 | |||
29 | <ItemGroup> | 28 | <ItemGroup> |
30 | <ProjectReference Include="..\ca\uica.vcxproj" Properties="Platform=x86" /> | 29 | <ProjectReference Include="..\ca\uica.vcxproj" Properties="Platform=x86" /> |
31 | <ProjectReference Include="..\ca\uica.vcxproj" Properties="Platform=x64" /> | 30 | <ProjectReference Include="..\ca\uica.vcxproj" Properties="Platform=x64" /> |
32 | <ProjectReference Include="..\ca\uica.vcxproj" Properties="Platform=ARM64" /> | 31 | <ProjectReference Include="..\ca\uica.vcxproj" Properties="Platform=ARM64" /> |
33 | </ItemGroup> | 32 | </ItemGroup> |
34 | |||
35 | <ItemGroup> | 33 | <ItemGroup> |
36 | <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" /> | 34 | <PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All" /> |
37 | </ItemGroup> | 35 | </ItemGroup> |
38 | </Project> | 36 | </Project> \ No newline at end of file |