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 /src | |
| 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.
Diffstat (limited to 'src')
| -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 |
