aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/api')
-rw-r--r--src/api/api.cmd4
-rw-r--r--src/api/api.sln208
-rw-r--r--src/api/api.slnx41
-rw-r--r--src/api/burn/WixToolset.BootstrapperApplicationApi/IPackageInfo.cs5
-rw-r--r--src/api/burn/WixToolset.BootstrapperApplicationApi/PackageInfo.cs4
-rw-r--r--src/api/burn/WixToolset.BootstrapperApplicationApi/build/WixToolset.BootstrapperApplicationApi.props2
-rw-r--r--src/api/burn/api_burn.sln113
-rw-r--r--src/api/burn/api_burn.slnx22
-rw-r--r--src/api/burn/balutil/balinfo.cpp42
-rw-r--r--src/api/burn/balutil/balretry.cpp2
-rw-r--r--src/api/burn/balutil/balutil.vcxproj2
-rw-r--r--src/api/burn/balutil/inc/balinfo.h1
-rw-r--r--src/api/burn/bextutil/bextutil.cpp2
-rw-r--r--src/api/burn/bextutil/bextutil.vcxproj2
-rw-r--r--src/api/burn/bextutil/build/WixToolset.BootstrapperExtensionApi.props2
-rw-r--r--src/api/burn/mbanative/mbanative.vcxproj2
-rw-r--r--src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj2
-rw-r--r--src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj.filters4
-rw-r--r--src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj2
-rw-r--r--src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj.filters2
-rw-r--r--src/api/burn/test/WixToolsetTest.BootstrapperApplicationApi/WixToolsetTest.BootstrapperApplicationApi.csproj2
-rw-r--r--src/api/wix/WixToolset.Data/ErrorMessages.cs41
-rw-r--r--src/api/wix/WixToolset.Data/OutputType.cs1
-rw-r--r--src/api/wix/WixToolset.Data/SectionType.cs1
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/ExternalFilesSymbol.cs8
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs8
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/HarvestPayloadsSymbol.cs68
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs8
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs31
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/PatchMetadataSymbol.cs31
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/PatchPackageSymbol.cs2
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/PatchSequenceSymbol.cs8
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs11
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs8
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/TargetImagesSymbol.cs8
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs6
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs8
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs8
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs1
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/WixProductSearchSymbol.cs1
-rw-r--r--src/api/wix/WixToolset.Data/WarningMessages.cs24
-rw-r--r--src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs2
-rw-r--r--src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs13
-rw-r--r--src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/data.xsd1
-rw-r--r--src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd1
-rw-r--r--src/api/wix/WixToolset.Data/WixToolset.Data.csproj6
-rw-r--r--src/api/wix/api_wix.sln65
-rw-r--r--src/api/wix/api_wix.slnx10
-rw-r--r--src/api/wix/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj2
49 files changed, 324 insertions, 524 deletions
diff --git a/src/api/api.cmd b/src/api/api.cmd
index cae0cf5a..42ca8567 100644
--- a/src/api/api.cmd
+++ b/src/api/api.cmd
@@ -27,8 +27,8 @@ msbuild api_t.proj -p:Configuration=%_C% -tl -nologo -warnaserror -bl:%_L%\api_b
27 27
28:: Test 28:: Test
29dotnet test ^ 29dotnet test ^
30 %_B%\net6.0\WixToolsetTest.Data.dll ^ 30 %_B%\net8.0\WixToolsetTest.Data.dll ^
31 %_B%\net6.0\win-x86\WixToolsetTest.BootstrapperApplicationApi.dll ^ 31 %_B%\net8.0\win-x86\WixToolsetTest.BootstrapperApplicationApi.dll ^
32 %_B%\x86\BalUtilUnitTest.dll ^ 32 %_B%\x86\BalUtilUnitTest.dll ^
33 %_B%\x86\BextUtilUnitTest.dll ^ 33 %_B%\x86\BextUtilUnitTest.dll ^
34 --nologo -l "trx;LogFileName=%_L%\TestResults\api.trx" || exit /b 34 --nologo -l "trx;LogFileName=%_L%\TestResults\api.trx" || exit /b
diff --git a/src/api/api.sln b/src/api/api.sln
deleted file mode 100644
index 70df4141..00000000
--- a/src/api/api.sln
+++ /dev/null
@@ -1,208 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 17
4VisualStudioVersion = 17.3.32922.545
5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Data", "wix\WixToolset.Data\WixToolset.Data.csproj", "{6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}"
7EndProject
8Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Extensibility", "wix\WixToolset.Extensibility\WixToolset.Extensibility.csproj", "{0B5A9161-EDBB-4B60-AE97-24199BCF36A4}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Data", "wix\test\WixToolsetTest.Data\WixToolsetTest.Data.csproj", "{D6A57B9F-CF8C-442B-A9CE-F05258AB0046}"
11EndProject
12Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wix", "wix", "{A2DB791A-F5A8-44F9-9225-2C8BE1936356}"
13EndProject
14Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "burn", "burn", "{E5E93B46-D1AD-4F00-B3C2-F459DC670302}"
15EndProject
16Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "balutil", "burn\balutil\balutil.vcxproj", "{EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}"
17EndProject
18Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bextutil", "burn\bextutil\bextutil.vcxproj", "{06027492-1CB9-48BC-B31E-C1F9356ED07E}"
19EndProject
20Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mbanative", "burn\mbanative\mbanative.vcxproj", "{665E0441-17F9-4105-B202-EDF274657F6E}"
21EndProject
22Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BalUtilUnitTest", "burn\test\BalUtilUnitTest\BalUtilUnitTest.vcxproj", "{9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}"
23EndProject
24Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BextUtilUnitTest", "burn\test\BextUtilUnitTest\BextUtilUnitTest.vcxproj", "{B69E6422-49B0-4E28-92F9-B8A7410A6ED9}"
25EndProject
26Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.BootstrapperApplicationApi", "burn\test\WixToolsetTest.BootstrapperApplicationApi\WixToolsetTest.BootstrapperApplicationApi.csproj", "{17DA3E92-40C5-4328-9BA5-1FE459A13719}"
27EndProject
28Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.BootstrapperApplicationApi", "burn\WixToolset.BootstrapperApplicationApi\WixToolset.BootstrapperApplicationApi.csproj", "{47029283-43EC-4F22-9417-A02B28594912}"
29EndProject
30Global
31 GlobalSection(SolutionConfigurationPlatforms) = preSolution
32 Debug|Any CPU = Debug|Any CPU
33 Debug|ARM64 = Debug|ARM64
34 Debug|x64 = Debug|x64
35 Debug|x86 = Debug|x86
36 Release|Any CPU = Release|Any CPU
37 Release|ARM64 = Release|ARM64
38 Release|x64 = Release|x64
39 Release|x86 = Release|x86
40 EndGlobalSection
41 GlobalSection(ProjectConfigurationPlatforms) = postSolution
42 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
43 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Debug|Any CPU.Build.0 = Debug|Any CPU
44 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Debug|ARM64.ActiveCfg = Debug|Any CPU
45 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Debug|ARM64.Build.0 = Debug|Any CPU
46 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Debug|x64.ActiveCfg = Debug|Any CPU
47 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Debug|x64.Build.0 = Debug|Any CPU
48 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Debug|x86.ActiveCfg = Debug|Any CPU
49 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Debug|x86.Build.0 = Debug|Any CPU
50 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Release|Any CPU.ActiveCfg = Release|Any CPU
51 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Release|Any CPU.Build.0 = Release|Any CPU
52 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Release|ARM64.ActiveCfg = Release|Any CPU
53 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Release|ARM64.Build.0 = Release|Any CPU
54 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Release|x64.ActiveCfg = Release|Any CPU
55 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Release|x64.Build.0 = Release|Any CPU
56 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Release|x86.ActiveCfg = Release|Any CPU
57 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60}.Release|x86.Build.0 = Release|Any CPU
58 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
59 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
60 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Debug|ARM64.ActiveCfg = Debug|Any CPU
61 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Debug|ARM64.Build.0 = Debug|Any CPU
62 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Debug|x64.ActiveCfg = Debug|Any CPU
63 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Debug|x64.Build.0 = Debug|Any CPU
64 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Debug|x86.ActiveCfg = Debug|Any CPU
65 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Debug|x86.Build.0 = Debug|Any CPU
66 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
67 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Release|Any CPU.Build.0 = Release|Any CPU
68 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Release|ARM64.ActiveCfg = Release|Any CPU
69 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Release|ARM64.Build.0 = Release|Any CPU
70 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Release|x64.ActiveCfg = Release|Any CPU
71 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Release|x64.Build.0 = Release|Any CPU
72 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Release|x86.ActiveCfg = Release|Any CPU
73 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4}.Release|x86.Build.0 = Release|Any CPU
74 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
75 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Debug|Any CPU.Build.0 = Debug|Any CPU
76 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Debug|ARM64.ActiveCfg = Debug|Any CPU
77 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Debug|ARM64.Build.0 = Debug|Any CPU
78 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Debug|x64.ActiveCfg = Debug|Any CPU
79 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Debug|x64.Build.0 = Debug|Any CPU
80 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Debug|x86.ActiveCfg = Debug|Any CPU
81 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Debug|x86.Build.0 = Debug|Any CPU
82 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Release|Any CPU.ActiveCfg = Release|Any CPU
83 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Release|Any CPU.Build.0 = Release|Any CPU
84 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Release|ARM64.ActiveCfg = Release|Any CPU
85 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Release|ARM64.Build.0 = Release|Any CPU
86 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Release|x64.ActiveCfg = Release|Any CPU
87 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Release|x64.Build.0 = Release|Any CPU
88 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Release|x86.ActiveCfg = Release|Any CPU
89 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046}.Release|x86.Build.0 = Release|Any CPU
90 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|Any CPU.ActiveCfg = Debug|Win32
91 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|Any CPU.Build.0 = Debug|Win32
92 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|ARM64.ActiveCfg = Debug|ARM64
93 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|ARM64.Build.0 = Debug|ARM64
94 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|x64.ActiveCfg = Debug|x64
95 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|x64.Build.0 = Debug|x64
96 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|x86.ActiveCfg = Debug|Win32
97 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|x86.Build.0 = Debug|Win32
98 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|Any CPU.ActiveCfg = Release|Win32
99 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|ARM64.ActiveCfg = Release|ARM64
100 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|ARM64.Build.0 = Release|ARM64
101 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x64.ActiveCfg = Release|x64
102 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x64.Build.0 = Release|x64
103 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x86.ActiveCfg = Release|Win32
104 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x86.Build.0 = Release|Win32
105 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|Any CPU.ActiveCfg = Debug|Win32
106 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|Any CPU.Build.0 = Debug|Win32
107 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|ARM64.ActiveCfg = Debug|ARM64
108 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|ARM64.Build.0 = Debug|ARM64
109 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|x64.ActiveCfg = Debug|x64
110 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|x64.Build.0 = Debug|x64
111 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|x86.ActiveCfg = Debug|Win32
112 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|x86.Build.0 = Debug|Win32
113 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|Any CPU.ActiveCfg = Release|Win32
114 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|ARM64.ActiveCfg = Release|ARM64
115 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|ARM64.Build.0 = Release|ARM64
116 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|x64.ActiveCfg = Release|x64
117 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|x64.Build.0 = Release|x64
118 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|x86.ActiveCfg = Release|Win32
119 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|x86.Build.0 = Release|Win32
120 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|Any CPU.ActiveCfg = Debug|Win32
121 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|Any CPU.Build.0 = Debug|Win32
122 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|ARM64.ActiveCfg = Debug|ARM64
123 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|ARM64.Build.0 = Debug|ARM64
124 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|x64.ActiveCfg = Debug|x64
125 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|x64.Build.0 = Debug|x64
126 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|x86.ActiveCfg = Debug|Win32
127 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|x86.Build.0 = Debug|Win32
128 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|Any CPU.ActiveCfg = Release|Win32
129 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|ARM64.ActiveCfg = Release|ARM64
130 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|ARM64.Build.0 = Release|ARM64
131 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|x64.ActiveCfg = Release|x64
132 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|x64.Build.0 = Release|x64
133 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|x86.ActiveCfg = Release|Win32
134 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|x86.Build.0 = Release|Win32
135 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|Any CPU.ActiveCfg = Debug|Win32
136 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|Any CPU.Build.0 = Debug|Win32
137 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|ARM64.ActiveCfg = Debug|Win32
138 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|x64.ActiveCfg = Debug|Win32
139 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|x86.ActiveCfg = Debug|Win32
140 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|x86.Build.0 = Debug|Win32
141 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|Any CPU.ActiveCfg = Release|Win32
142 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|ARM64.ActiveCfg = Release|Win32
143 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|x64.ActiveCfg = Release|Win32
144 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|x86.ActiveCfg = Release|Win32
145 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|x86.Build.0 = Release|Win32
146 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Debug|Any CPU.ActiveCfg = Debug|Win32
147 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Debug|Any CPU.Build.0 = Debug|Win32
148 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Debug|ARM64.ActiveCfg = Debug|Win32
149 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Debug|x64.ActiveCfg = Debug|Win32
150 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Debug|x86.ActiveCfg = Debug|Win32
151 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Debug|x86.Build.0 = Debug|Win32
152 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Release|Any CPU.ActiveCfg = Release|Win32
153 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Release|ARM64.ActiveCfg = Release|Win32
154 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Release|x64.ActiveCfg = Release|Win32
155 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Release|x86.ActiveCfg = Release|Win32
156 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Release|x86.Build.0 = Release|Win32
157 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
158 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Debug|Any CPU.Build.0 = Debug|Any CPU
159 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Debug|ARM64.ActiveCfg = Debug|Any CPU
160 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Debug|ARM64.Build.0 = Debug|Any CPU
161 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Debug|x64.ActiveCfg = Debug|Any CPU
162 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Debug|x64.Build.0 = Debug|Any CPU
163 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Debug|x86.ActiveCfg = Debug|Any CPU
164 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Debug|x86.Build.0 = Debug|Any CPU
165 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Release|Any CPU.ActiveCfg = Release|Any CPU
166 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Release|Any CPU.Build.0 = Release|Any CPU
167 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Release|ARM64.ActiveCfg = Release|Any CPU
168 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Release|ARM64.Build.0 = Release|Any CPU
169 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Release|x64.ActiveCfg = Release|Any CPU
170 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Release|x64.Build.0 = Release|Any CPU
171 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Release|x86.ActiveCfg = Release|Any CPU
172 {17DA3E92-40C5-4328-9BA5-1FE459A13719}.Release|x86.Build.0 = Release|Any CPU
173 {47029283-43EC-4F22-9417-A02B28594912}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
174 {47029283-43EC-4F22-9417-A02B28594912}.Debug|Any CPU.Build.0 = Debug|Any CPU
175 {47029283-43EC-4F22-9417-A02B28594912}.Debug|ARM64.ActiveCfg = Debug|Any CPU
176 {47029283-43EC-4F22-9417-A02B28594912}.Debug|ARM64.Build.0 = Debug|Any CPU
177 {47029283-43EC-4F22-9417-A02B28594912}.Debug|x64.ActiveCfg = Debug|Any CPU
178 {47029283-43EC-4F22-9417-A02B28594912}.Debug|x64.Build.0 = Debug|Any CPU
179 {47029283-43EC-4F22-9417-A02B28594912}.Debug|x86.ActiveCfg = Debug|Any CPU
180 {47029283-43EC-4F22-9417-A02B28594912}.Debug|x86.Build.0 = Debug|Any CPU
181 {47029283-43EC-4F22-9417-A02B28594912}.Release|Any CPU.ActiveCfg = Release|Any CPU
182 {47029283-43EC-4F22-9417-A02B28594912}.Release|Any CPU.Build.0 = Release|Any CPU
183 {47029283-43EC-4F22-9417-A02B28594912}.Release|ARM64.ActiveCfg = Release|Any CPU
184 {47029283-43EC-4F22-9417-A02B28594912}.Release|ARM64.Build.0 = Release|Any CPU
185 {47029283-43EC-4F22-9417-A02B28594912}.Release|x64.ActiveCfg = Release|Any CPU
186 {47029283-43EC-4F22-9417-A02B28594912}.Release|x64.Build.0 = Release|Any CPU
187 {47029283-43EC-4F22-9417-A02B28594912}.Release|x86.ActiveCfg = Release|Any CPU
188 {47029283-43EC-4F22-9417-A02B28594912}.Release|x86.Build.0 = Release|Any CPU
189 EndGlobalSection
190 GlobalSection(SolutionProperties) = preSolution
191 HideSolutionNode = FALSE
192 EndGlobalSection
193 GlobalSection(NestedProjects) = preSolution
194 {6B7C6F7F-4E0F-47D4-8E1E-A3A2E7C7AC60} = {A2DB791A-F5A8-44F9-9225-2C8BE1936356}
195 {0B5A9161-EDBB-4B60-AE97-24199BCF36A4} = {A2DB791A-F5A8-44F9-9225-2C8BE1936356}
196 {D6A57B9F-CF8C-442B-A9CE-F05258AB0046} = {A2DB791A-F5A8-44F9-9225-2C8BE1936356}
197 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB} = {E5E93B46-D1AD-4F00-B3C2-F459DC670302}
198 {06027492-1CB9-48BC-B31E-C1F9356ED07E} = {E5E93B46-D1AD-4F00-B3C2-F459DC670302}
199 {665E0441-17F9-4105-B202-EDF274657F6E} = {E5E93B46-D1AD-4F00-B3C2-F459DC670302}
200 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631} = {E5E93B46-D1AD-4F00-B3C2-F459DC670302}
201 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9} = {E5E93B46-D1AD-4F00-B3C2-F459DC670302}
202 {17DA3E92-40C5-4328-9BA5-1FE459A13719} = {E5E93B46-D1AD-4F00-B3C2-F459DC670302}
203 {47029283-43EC-4F22-9417-A02B28594912} = {E5E93B46-D1AD-4F00-B3C2-F459DC670302}
204 EndGlobalSection
205 GlobalSection(ExtensibilityGlobals) = postSolution
206 SolutionGuid = {43BCDC9F-5870-4B64-8363-FF28585020ED}
207 EndGlobalSection
208EndGlobal
diff --git a/src/api/api.slnx b/src/api/api.slnx
new file mode 100644
index 00000000..f0104cc0
--- /dev/null
+++ b/src/api/api.slnx
@@ -0,0 +1,41 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="ARM64" />
5 <Platform Name="x64" />
6 <Platform Name="x86" />
7 </Configurations>
8 <Folder Name="/burn/">
9 <Project Path="burn/balutil/balutil.vcxproj" Id="edcb8095-0e6a-43e0-bc33-c4f762fc5cdb">
10 <Platform Solution="*|Any CPU" Project="Win32" />
11 <Build Solution="Release|Any CPU" Project="false" />
12 </Project>
13 <Project Path="burn/bextutil/bextutil.vcxproj" Id="06027492-1cb9-48bc-b31e-c1f9356ed07e">
14 <Platform Solution="*|Any CPU" Project="Win32" />
15 <Build Solution="Release|Any CPU" Project="false" />
16 </Project>
17 <Project Path="burn/mbanative/mbanative.vcxproj" Id="665e0441-17f9-4105-b202-edf274657f6e">
18 <Platform Solution="*|Any CPU" Project="Win32" />
19 <Build Solution="Release|Any CPU" Project="false" />
20 </Project>
21 <Project Path="burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj" Id="9b507af9-035e-4db6-8c0c-5dcc3fef2631">
22 <Platform Project="Win32" />
23 <Build Solution="*|ARM64" Project="false" />
24 <Build Solution="*|x64" Project="false" />
25 <Build Solution="Release|Any CPU" Project="false" />
26 </Project>
27 <Project Path="burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj" Id="b69e6422-49b0-4e28-92f9-b8a7410a6ed9">
28 <Platform Project="Win32" />
29 <Build Solution="*|ARM64" Project="false" />
30 <Build Solution="*|x64" Project="false" />
31 <Build Solution="Release|Any CPU" Project="false" />
32 </Project>
33 <Project Path="burn/test/WixToolsetTest.BootstrapperApplicationApi/WixToolsetTest.BootstrapperApplicationApi.csproj" />
34 <Project Path="burn/WixToolset.BootstrapperApplicationApi/WixToolset.BootstrapperApplicationApi.csproj" />
35 </Folder>
36 <Folder Name="/wix/">
37 <Project Path="wix/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj" />
38 <Project Path="wix/WixToolset.Data/WixToolset.Data.csproj" />
39 <Project Path="wix/WixToolset.Extensibility/WixToolset.Extensibility.csproj" />
40 </Folder>
41</Solution>
diff --git a/src/api/burn/WixToolset.BootstrapperApplicationApi/IPackageInfo.cs b/src/api/burn/WixToolset.BootstrapperApplicationApi/IPackageInfo.cs
index e2512584..9b5e74cb 100644
--- a/src/api/burn/WixToolset.BootstrapperApplicationApi/IPackageInfo.cs
+++ b/src/api/burn/WixToolset.BootstrapperApplicationApi/IPackageInfo.cs
@@ -28,6 +28,11 @@ namespace WixToolset.BootstrapperApplicationApi
28 string DisplayInternalUICondition { get; } 28 string DisplayInternalUICondition { get; }
29 29
30 /// <summary> 30 /// <summary>
31 /// The authored bal:DisplayFilesInUseDialogCondition.
32 /// </summary>
33 string DisplayFilesInUseDialogCondition { get; }
34
35 /// <summary>
31 /// The package's display name. 36 /// The package's display name.
32 /// </summary> 37 /// </summary>
33 string DisplayName { get; } 38 string DisplayName { get; }
diff --git a/src/api/burn/WixToolset.BootstrapperApplicationApi/PackageInfo.cs b/src/api/burn/WixToolset.BootstrapperApplicationApi/PackageInfo.cs
index e835f9ea..81a8869f 100644
--- a/src/api/burn/WixToolset.BootstrapperApplicationApi/PackageInfo.cs
+++ b/src/api/burn/WixToolset.BootstrapperApplicationApi/PackageInfo.cs
@@ -121,6 +121,9 @@ namespace WixToolset.BootstrapperApplicationApi
121 public string DisplayInternalUICondition { get; internal set; } 121 public string DisplayInternalUICondition { get; internal set; }
122 122
123 /// <inheritdoc/> 123 /// <inheritdoc/>
124 public string DisplayFilesInUseDialogCondition { get; internal set; }
125
126 /// <inheritdoc/>
124 public string ProductCode { get; internal set; } 127 public string ProductCode { get; internal set; }
125 128
126 /// <inheritdoc/> 129 /// <inheritdoc/>
@@ -363,6 +366,7 @@ namespace WixToolset.BootstrapperApplicationApi
363 var package = (PackageInfo)ipackage; 366 var package = (PackageInfo)ipackage;
364 367
365 package.DisplayInternalUICondition = BootstrapperApplicationData.GetAttribute(node, "DisplayInternalUICondition"); 368 package.DisplayInternalUICondition = BootstrapperApplicationData.GetAttribute(node, "DisplayInternalUICondition");
369 package.DisplayFilesInUseDialogCondition = BootstrapperApplicationData.GetAttribute(node, "DisplayFilesInUseDialogCondition");
366 } 370 }
367 371
368 nodes = root.Select("/p:BootstrapperApplicationData/p:WixPrereqInformation", namespaceManager); 372 nodes = root.Select("/p:BootstrapperApplicationData/p:WixPrereqInformation", namespaceManager);
diff --git a/src/api/burn/WixToolset.BootstrapperApplicationApi/build/WixToolset.BootstrapperApplicationApi.props b/src/api/burn/WixToolset.BootstrapperApplicationApi/build/WixToolset.BootstrapperApplicationApi.props
index b276574d..16845d7b 100644
--- a/src/api/burn/WixToolset.BootstrapperApplicationApi/build/WixToolset.BootstrapperApplicationApi.props
+++ b/src/api/burn/WixToolset.BootstrapperApplicationApi/build/WixToolset.BootstrapperApplicationApi.props
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemDefinitionGroup> 5 <ItemDefinitionGroup>
6 <ClCompile> 6 <ClCompile>
7 <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 7 <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
diff --git a/src/api/burn/api_burn.sln b/src/api/burn/api_burn.sln
deleted file mode 100644
index a8854b35..00000000
--- a/src/api/burn/api_burn.sln
+++ /dev/null
@@ -1,113 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 16
4VisualStudioVersion = 16.0.29503.13
5MinimumVisualStudioVersion = 15.0.26124.0
6Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "balutil", "balutil\balutil.vcxproj", "{EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}"
7EndProject
8Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bextutil", "bextutil\bextutil.vcxproj", "{06027492-1CB9-48BC-B31E-C1F9356ED07E}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.BootstrapperApplicationApi", "WixToolset.BootstrapperApplicationApi\WixToolset.BootstrapperApplicationApi.csproj", "{E7E1841E-A58E-4901-B9CA-4845B807D45F}"
11EndProject
12Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mbanative", "mbanative\mbanative.vcxproj", "{665E0441-17F9-4105-B202-EDF274657F6E}"
13EndProject
14Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.BootstrapperApplicationApi", "test\WixToolsetTest.BootstrapperApplicationApi\WixToolsetTest.BootstrapperApplicationApi.csproj", "{F54997F7-10D7-409B-B9F2-DB546490EDC0}"
15EndProject
16Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BalUtilUnitTest", "test\BalUtilUnitTest\BalUtilUnitTest.vcxproj", "{9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}"
17EndProject
18Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BextUtilUnitTest", "test\BextUtilUnitTest\BextUtilUnitTest.vcxproj", "{B69E6422-49B0-4E28-92F9-B8A7410A6ED9}"
19EndProject
20Global
21 GlobalSection(SolutionConfigurationPlatforms) = preSolution
22 Debug|ARM64 = Debug|ARM64
23 Debug|x64 = Debug|x64
24 Debug|x86 = Debug|x86
25 Release|ARM64 = Release|ARM64
26 Release|x64 = Release|x64
27 Release|x86 = Release|x86
28 EndGlobalSection
29 GlobalSection(ProjectConfigurationPlatforms) = postSolution
30 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|ARM64.ActiveCfg = Debug|ARM64
31 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|ARM64.Build.0 = Debug|ARM64
32 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|x64.ActiveCfg = Debug|x64
33 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|x64.Build.0 = Debug|x64
34 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|x86.ActiveCfg = Debug|Win32
35 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Debug|x86.Build.0 = Debug|Win32
36 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|ARM64.ActiveCfg = Release|ARM64
37 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|ARM64.Build.0 = Release|ARM64
38 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x64.ActiveCfg = Release|x64
39 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x64.Build.0 = Release|x64
40 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x86.ActiveCfg = Release|Win32
41 {EDCB8095-0E6A-43E0-BC33-C4F762FC5CDB}.Release|x86.Build.0 = Release|Win32
42 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|ARM64.ActiveCfg = Debug|ARM64
43 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|ARM64.Build.0 = Debug|ARM64
44 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|x64.ActiveCfg = Debug|x64
45 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|x64.Build.0 = Debug|x64
46 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|x86.ActiveCfg = Debug|Win32
47 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Debug|x86.Build.0 = Debug|Win32
48 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|ARM64.ActiveCfg = Release|ARM64
49 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|ARM64.Build.0 = Release|ARM64
50 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|x64.ActiveCfg = Release|x64
51 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|x64.Build.0 = Release|x64
52 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|x86.ActiveCfg = Release|Win32
53 {06027492-1CB9-48BC-B31E-C1F9356ED07E}.Release|x86.Build.0 = Release|Win32
54 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Debug|ARM64.ActiveCfg = Debug|Any CPU
55 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Debug|ARM64.Build.0 = Debug|Any CPU
56 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Debug|x64.ActiveCfg = Debug|Any CPU
57 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Debug|x64.Build.0 = Debug|Any CPU
58 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Debug|x86.ActiveCfg = Debug|Any CPU
59 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Debug|x86.Build.0 = Debug|Any CPU
60 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Release|ARM64.ActiveCfg = Release|Any CPU
61 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Release|ARM64.Build.0 = Release|Any CPU
62 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Release|x64.ActiveCfg = Release|Any CPU
63 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Release|x64.Build.0 = Release|Any CPU
64 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Release|x86.ActiveCfg = Release|Any CPU
65 {E7E1841E-A58E-4901-B9CA-4845B807D45F}.Release|x86.Build.0 = Release|Any CPU
66 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|ARM64.ActiveCfg = Debug|ARM64
67 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|ARM64.Build.0 = Debug|ARM64
68 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|x64.ActiveCfg = Debug|x64
69 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|x64.Build.0 = Debug|x64
70 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|x86.ActiveCfg = Debug|Win32
71 {665E0441-17F9-4105-B202-EDF274657F6E}.Debug|x86.Build.0 = Debug|Win32
72 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|ARM64.ActiveCfg = Release|ARM64
73 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|ARM64.Build.0 = Release|ARM64
74 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|x64.ActiveCfg = Release|x64
75 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|x64.Build.0 = Release|x64
76 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|x86.ActiveCfg = Release|Win32
77 {665E0441-17F9-4105-B202-EDF274657F6E}.Release|x86.Build.0 = Release|Win32
78 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Debug|ARM64.ActiveCfg = Debug|Any CPU
79 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Debug|ARM64.Build.0 = Debug|Any CPU
80 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Debug|x64.ActiveCfg = Debug|Any CPU
81 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Debug|x64.Build.0 = Debug|Any CPU
82 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Debug|x86.ActiveCfg = Debug|Any CPU
83 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Debug|x86.Build.0 = Debug|Any CPU
84 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Release|ARM64.ActiveCfg = Release|Any CPU
85 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Release|ARM64.Build.0 = Release|Any CPU
86 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Release|x64.ActiveCfg = Release|Any CPU
87 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Release|x64.Build.0 = Release|Any CPU
88 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Release|x86.ActiveCfg = Release|Any CPU
89 {F54997F7-10D7-409B-B9F2-DB546490EDC0}.Release|x86.Build.0 = Release|Any CPU
90 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|ARM64.ActiveCfg = Debug|Win32
91 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|x64.ActiveCfg = Debug|Win32
92 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|x86.ActiveCfg = Debug|Win32
93 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Debug|x86.Build.0 = Debug|Win32
94 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|ARM64.ActiveCfg = Release|Win32
95 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|x64.ActiveCfg = Release|Win32
96 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|x86.ActiveCfg = Release|Win32
97 {9B507AF9-035E-4DB6-8C0C-5DCC3FEF2631}.Release|x86.Build.0 = Release|Win32
98 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Debug|ARM64.ActiveCfg = Debug|Win32
99 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Debug|x64.ActiveCfg = Debug|Win32
100 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Debug|x86.ActiveCfg = Debug|Win32
101 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Debug|x86.Build.0 = Debug|Win32
102 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Release|ARM64.ActiveCfg = Release|Win32
103 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Release|x64.ActiveCfg = Release|Win32
104 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Release|x86.ActiveCfg = Release|Win32
105 {B69E6422-49B0-4E28-92F9-B8A7410A6ED9}.Release|x86.Build.0 = Release|Win32
106 EndGlobalSection
107 GlobalSection(SolutionProperties) = preSolution
108 HideSolutionNode = FALSE
109 EndGlobalSection
110 GlobalSection(ExtensibilityGlobals) = postSolution
111 SolutionGuid = {8741FA43-6BD2-40F9-ABA5-A5BD466A6518}
112 EndGlobalSection
113EndGlobal
diff --git a/src/api/burn/api_burn.slnx b/src/api/burn/api_burn.slnx
new file mode 100644
index 00000000..df4bd8ce
--- /dev/null
+++ b/src/api/burn/api_burn.slnx
@@ -0,0 +1,22 @@
1<Solution>
2 <Configurations>
3 <Platform Name="ARM64" />
4 <Platform Name="x64" />
5 <Platform Name="x86" />
6 </Configurations>
7 <Project Path="balutil/balutil.vcxproj" Id="edcb8095-0e6a-43e0-bc33-c4f762fc5cdb" />
8 <Project Path="bextutil/bextutil.vcxproj" Id="06027492-1cb9-48bc-b31e-c1f9356ed07e" />
9 <Project Path="mbanative/mbanative.vcxproj" Id="665e0441-17f9-4105-b202-edf274657f6e" />
10 <Project Path="test/BalUtilUnitTest/BalUtilUnitTest.vcxproj" Id="9b507af9-035e-4db6-8c0c-5dcc3fef2631">
11 <Platform Project="Win32" />
12 <Build Solution="*|ARM64" Project="false" />
13 <Build Solution="*|x64" Project="false" />
14 </Project>
15 <Project Path="test/BextUtilUnitTest/BextUtilUnitTest.vcxproj" Id="b69e6422-49b0-4e28-92f9-b8a7410a6ed9">
16 <Platform Project="Win32" />
17 <Build Solution="*|ARM64" Project="false" />
18 <Build Solution="*|x64" Project="false" />
19 </Project>
20 <Project Path="test/WixToolsetTest.BootstrapperApplicationApi/WixToolsetTest.BootstrapperApplicationApi.csproj" />
21 <Project Path="WixToolset.BootstrapperApplicationApi/WixToolset.BootstrapperApplicationApi.csproj" />
22</Solution>
diff --git a/src/api/burn/balutil/balinfo.cpp b/src/api/burn/balutil/balinfo.cpp
index 6f609a40..ff0dfd9f 100644
--- a/src/api/burn/balutil/balinfo.cpp
+++ b/src/api/burn/balutil/balinfo.cpp
@@ -43,14 +43,14 @@ DAPI_(HRESULT) BalInfoParseCommandLine(
43 43
44 if (argv[i][0] == L'-' || argv[i][0] == L'/') 44 if (argv[i][0] == L'-' || argv[i][0] == L'/')
45 { 45 {
46 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"norestart", -1)) 46 if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"norestart", -1, TRUE))
47 { 47 {
48 if (BAL_INFO_RESTART_UNKNOWN == pCommand->restart) 48 if (BAL_INFO_RESTART_UNKNOWN == pCommand->restart)
49 { 49 {
50 pCommand->restart = BAL_INFO_RESTART_NEVER; 50 pCommand->restart = BAL_INFO_RESTART_NEVER;
51 } 51 }
52 } 52 }
53 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, NORM_IGNORECASE, &argv[i][1], -1, L"forcerestart", -1)) 53 else if (CSTR_EQUAL == ::CompareStringOrdinal(&argv[i][1], -1, L"forcerestart", -1, TRUE))
54 { 54 {
55 if (BAL_INFO_RESTART_UNKNOWN == pCommand->restart) 55 if (BAL_INFO_RESTART_UNKNOWN == pCommand->restart)
56 { 56 {
@@ -190,7 +190,7 @@ DAPI_(HRESULT) BalInfoAddRelatedBundleAsPackage(
190 // Check to see if the bundle is already in the list of packages. 190 // Check to see if the bundle is already in the list of packages.
191 for (DWORD i = 0; i < pPackages->cPackages; ++i) 191 for (DWORD i = 0; i < pPackages->cPackages; ++i)
192 { 192 {
193 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, wzId, -1, pPackages->rgPackages[i].sczId, -1)) 193 if (CSTR_EQUAL == ::CompareStringOrdinal(wzId, -1, pPackages->rgPackages[i].sczId, -1, FALSE))
194 { 194 {
195 ExitFunction1(hr = HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS)); 195 ExitFunction1(hr = HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS));
196 } 196 }
@@ -232,7 +232,7 @@ DAPI_(HRESULT) BalInfoAddUpdateBundleAsPackage(
232 // Check to see if the bundle is already in the list of packages. 232 // Check to see if the bundle is already in the list of packages.
233 for (DWORD i = 0; i < pPackages->cPackages; ++i) 233 for (DWORD i = 0; i < pPackages->cPackages; ++i)
234 { 234 {
235 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, wzId, -1, pPackages->rgPackages[i].sczId, -1)) 235 if (CSTR_EQUAL == ::CompareStringOrdinal(wzId, -1, pPackages->rgPackages[i].sczId, -1, FALSE))
236 { 236 {
237 ExitFunction1(hr = HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS)); 237 ExitFunction1(hr = HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS));
238 } 238 }
@@ -270,7 +270,7 @@ DAPI_(HRESULT) BalInfoFindPackageById(
270 270
271 for (DWORD i = 0; i < pPackages->cPackages; ++i) 271 for (DWORD i = 0; i < pPackages->cPackages; ++i)
272 { 272 {
273 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, wzId, -1, pPackages->rgPackages[i].sczId, -1)) 273 if (CSTR_EQUAL == ::CompareStringOrdinal(wzId, -1, pPackages->rgPackages[i].sczId, -1, FALSE))
274 { 274 {
275 *ppPackage = pPackages->rgPackages + i; 275 *ppPackage = pPackages->rgPackages + i;
276 break; 276 break;
@@ -291,6 +291,7 @@ DAPI_(void) BalInfoUninitialize(
291 ReleaseStr(pBundle->packages.rgPackages[i].sczDescription); 291 ReleaseStr(pBundle->packages.rgPackages[i].sczDescription);
292 ReleaseStr(pBundle->packages.rgPackages[i].sczId); 292 ReleaseStr(pBundle->packages.rgPackages[i].sczId);
293 ReleaseStr(pBundle->packages.rgPackages[i].sczDisplayInternalUICondition); 293 ReleaseStr(pBundle->packages.rgPackages[i].sczDisplayInternalUICondition);
294 ReleaseStr(pBundle->packages.rgPackages[i].sczDisplayFilesInUseDialogCondition);
294 ReleaseStr(pBundle->packages.rgPackages[i].sczProductCode); 295 ReleaseStr(pBundle->packages.rgPackages[i].sczProductCode);
295 ReleaseStr(pBundle->packages.rgPackages[i].sczUpgradeCode); 296 ReleaseStr(pBundle->packages.rgPackages[i].sczUpgradeCode);
296 ReleaseStr(pBundle->packages.rgPackages[i].sczVersion); 297 ReleaseStr(pBundle->packages.rgPackages[i].sczVersion);
@@ -409,23 +410,23 @@ static HRESULT ParsePackagesFromXml(
409 hr = XmlGetAttributeEx(pNode, L"PackageType", &scz); 410 hr = XmlGetAttributeEx(pNode, L"PackageType", &scz);
410 ExitOnRequiredXmlQueryFailure(hr, "Failed to get package type for package."); 411 ExitOnRequiredXmlQueryFailure(hr, "Failed to get package type for package.");
411 412
412 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, L"Bundle", -1, scz, -1)) 413 if (CSTR_EQUAL == ::CompareStringOrdinal(L"Bundle", -1, scz, -1, FALSE))
413 { 414 {
414 prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_BUNDLE_CHAIN; 415 prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_BUNDLE_CHAIN;
415 } 416 }
416 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, L"Exe", -1, scz, -1)) 417 else if (CSTR_EQUAL == ::CompareStringOrdinal(L"Exe", -1, scz, -1, FALSE))
417 { 418 {
418 prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_EXE; 419 prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_EXE;
419 } 420 }
420 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, L"Msi", -1, scz, -1)) 421 else if (CSTR_EQUAL == ::CompareStringOrdinal(L"Msi", -1, scz, -1, FALSE))
421 { 422 {
422 prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_MSI; 423 prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_MSI;
423 } 424 }
424 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, L"Msp", -1, scz, -1)) 425 else if (CSTR_EQUAL == ::CompareStringOrdinal(L"Msp", -1, scz, -1, FALSE))
425 { 426 {
426 prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_MSP; 427 prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_MSP;
427 } 428 }
428 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, L"Msu", -1, scz, -1)) 429 else if (CSTR_EQUAL == ::CompareStringOrdinal(L"Msu", -1, scz, -1, FALSE))
429 { 430 {
430 prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_MSU; 431 prgPackages[iPackage].type = BAL_INFO_PACKAGE_TYPE_MSU;
431 } 432 }
@@ -454,15 +455,15 @@ static HRESULT ParsePackagesFromXml(
454 hr = XmlGetAttributeEx(pNode, L"Cache", &scz); 455 hr = XmlGetAttributeEx(pNode, L"Cache", &scz);
455 ExitOnRequiredXmlQueryFailure(hr, "Failed to get cache type for package."); 456 ExitOnRequiredXmlQueryFailure(hr, "Failed to get cache type for package.");
456 457
457 if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"remove", -1)) 458 if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"remove", -1, FALSE))
458 { 459 {
459 prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_REMOVE; 460 prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_REMOVE;
460 } 461 }
461 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"keep", -1)) 462 else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"keep", -1, FALSE))
462 { 463 {
463 prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_KEEP; 464 prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_KEEP;
464 } 465 }
465 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, scz, -1, L"force", -1)) 466 else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"force", -1, FALSE))
466 { 467 {
467 prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_FORCE; 468 prgPackages[iPackage].cacheType = BOOTSTRAPPER_CACHE_TYPE_FORCE;
468 } 469 }
@@ -517,24 +518,27 @@ static HRESULT ParseBalPackageInfoFromXml(
517 hr = XmlGetAttributeEx(pNode, L"DisplayInternalUICondition", &pPackage->sczDisplayInternalUICondition); 518 hr = XmlGetAttributeEx(pNode, L"DisplayInternalUICondition", &pPackage->sczDisplayInternalUICondition);
518 ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get DisplayInternalUICondition setting for package."); 519 ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get DisplayInternalUICondition setting for package.");
519 520
521 hr = XmlGetAttributeEx(pNode, L"DisplayFilesInUseDialogCondition", &pPackage->sczDisplayFilesInUseDialogCondition);
522 ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get DisplayFilesInUseDialogCondition setting for package.");
523
520 hr = XmlGetAttributeEx(pNode, L"PrimaryPackageType", &scz); 524 hr = XmlGetAttributeEx(pNode, L"PrimaryPackageType", &scz);
521 ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get PrimaryPackageType setting for package."); 525 ExitOnOptionalXmlQueryFailure(hr, fXmlFound, "Failed to get PrimaryPackageType setting for package.");
522 526
523 if (fXmlFound) 527 if (fXmlFound)
524 { 528 {
525 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"default", -1)) 529 if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"default", -1, FALSE))
526 { 530 {
527 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_DEFAULT; 531 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_DEFAULT;
528 } 532 }
529 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"x86", -1)) 533 else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"x86", -1, FALSE))
530 { 534 {
531 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_X86; 535 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_X86;
532 } 536 }
533 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"x64", -1)) 537 else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"x64", -1, FALSE))
534 { 538 {
535 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_X64; 539 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_X64;
536 } 540 }
537 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"arm64", -1)) 541 else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"arm64", -1, FALSE))
538 { 542 {
539 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_ARM64; 543 pPackage->primaryPackageType = BAL_INFO_PRIMARY_PACKAGE_TYPE_ARM64;
540 } 544 }
@@ -611,11 +615,11 @@ static HRESULT ParseOverridableVariablesFromXml(
611 hr = XmlGetAttributeEx(pCommandLineNode, L"VariableType", &scz); 615 hr = XmlGetAttributeEx(pCommandLineNode, L"VariableType", &scz);
612 ExitOnRequiredXmlQueryFailure(hr, "Failed to get command line variable type."); 616 ExitOnRequiredXmlQueryFailure(hr, "Failed to get command line variable type.");
613 617
614 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"caseInsensitive", -1)) 618 if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"caseInsensitive", -1, FALSE))
615 { 619 {
616 pOverridableVariables->commandLineType = BAL_INFO_VARIABLE_COMMAND_LINE_TYPE_CASE_INSENSITIVE; 620 pOverridableVariables->commandLineType = BAL_INFO_VARIABLE_COMMAND_LINE_TYPE_CASE_INSENSITIVE;
617 } 621 }
618 else if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, scz, -1, L"caseSensitive", -1)) 622 else if (CSTR_EQUAL == ::CompareStringOrdinal(scz, -1, L"caseSensitive", -1, FALSE))
619 { 623 {
620 pOverridableVariables->commandLineType = BAL_INFO_VARIABLE_COMMAND_LINE_TYPE_CASE_SENSITIVE; 624 pOverridableVariables->commandLineType = BAL_INFO_VARIABLE_COMMAND_LINE_TYPE_CASE_SENSITIVE;
621 } 625 }
diff --git a/src/api/burn/balutil/balretry.cpp b/src/api/burn/balutil/balretry.cpp
index d2973026..0c686ad2 100644
--- a/src/api/burn/balutil/balretry.cpp
+++ b/src/api/burn/balutil/balretry.cpp
@@ -211,7 +211,7 @@ static BOOL IsActiveRetryEntry(
211{ 211{
212 BOOL fActive = FALSE; 212 BOOL fActive = FALSE;
213 213
214 fActive = vrgRetryInfo[type].sczId && CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, 0, sczId, -1, vrgRetryInfo[type].sczId, -1); 214 fActive = vrgRetryInfo[type].sczId && CSTR_EQUAL == ::CompareStringOrdinal(sczId, -1, vrgRetryInfo[type].sczId, -1, FALSE);
215 215
216 return fActive; 216 return fActive;
217} 217}
diff --git a/src/api/burn/balutil/balutil.vcxproj b/src/api/burn/balutil/balutil.vcxproj
index 2b0fd23f..7b8c0ced 100644
--- a/src/api/burn/balutil/balutil.vcxproj
+++ b/src/api/burn/balutil/balutil.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|ARM64"> 6 <ProjectConfiguration Include="Debug|ARM64">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/api/burn/balutil/inc/balinfo.h b/src/api/burn/balutil/inc/balinfo.h
index 234284f6..8baee844 100644
--- a/src/api/burn/balutil/inc/balinfo.h
+++ b/src/api/burn/balutil/inc/balinfo.h
@@ -54,6 +54,7 @@ typedef struct _BAL_INFO_PACKAGE
54 BOOL fPermanent; 54 BOOL fPermanent;
55 BOOL fVital; 55 BOOL fVital;
56 LPWSTR sczDisplayInternalUICondition; 56 LPWSTR sczDisplayInternalUICondition;
57 LPWSTR sczDisplayFilesInUseDialogCondition;
57 LPWSTR sczProductCode; 58 LPWSTR sczProductCode;
58 LPWSTR sczUpgradeCode; 59 LPWSTR sczUpgradeCode;
59 LPWSTR sczVersion; 60 LPWSTR sczVersion;
diff --git a/src/api/burn/bextutil/bextutil.cpp b/src/api/burn/bextutil/bextutil.cpp
index 6f960ef5..fb1b03c8 100644
--- a/src/api/burn/bextutil/bextutil.cpp
+++ b/src/api/burn/bextutil/bextutil.cpp
@@ -87,7 +87,7 @@ DAPI_(HRESULT) BextGetBootstrapperExtensionDataNode(
87 hr = XmlGetAttributeEx(pixnNode, L"Id", &sczId); 87 hr = XmlGetAttributeEx(pixnNode, L"Id", &sczId);
88 ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Id."); 88 ExitOnRequiredXmlQueryFailure(hr, "Failed to get @Id.");
89 89
90 if (CSTR_EQUAL == ::CompareStringW(LOCALE_INVARIANT, 0, sczId, -1, wzExtensionId, -1)) 90 if (CSTR_EQUAL == ::CompareStringOrdinal(sczId, -1, wzExtensionId, -1, FALSE))
91 { 91 {
92 *ppixnBootstrapperExtension = pixnNode; 92 *ppixnBootstrapperExtension = pixnNode;
93 pixnNode = NULL; 93 pixnNode = NULL;
diff --git a/src/api/burn/bextutil/bextutil.vcxproj b/src/api/burn/bextutil/bextutil.vcxproj
index 0299c381..f9365c4a 100644
--- a/src/api/burn/bextutil/bextutil.vcxproj
+++ b/src/api/burn/bextutil/bextutil.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|ARM64"> 6 <ProjectConfiguration Include="Debug|ARM64">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/api/burn/bextutil/build/WixToolset.BootstrapperExtensionApi.props b/src/api/burn/bextutil/build/WixToolset.BootstrapperExtensionApi.props
index dbaddb70..a4397878 100644
--- a/src/api/burn/bextutil/build/WixToolset.BootstrapperExtensionApi.props
+++ b/src/api/burn/bextutil/build/WixToolset.BootstrapperExtensionApi.props
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemDefinitionGroup> 5 <ItemDefinitionGroup>
6 <ClCompile> 6 <ClCompile>
7 <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> 7 <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
diff --git a/src/api/burn/mbanative/mbanative.vcxproj b/src/api/burn/mbanative/mbanative.vcxproj
index e9e72a49..3ed282cc 100644
--- a/src/api/burn/mbanative/mbanative.vcxproj
+++ b/src/api/burn/mbanative/mbanative.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemGroup Label="ProjectConfigurations"> 5 <ItemGroup Label="ProjectConfigurations">
6 <ProjectConfiguration Include="Debug|ARM64"> 6 <ProjectConfiguration Include="Debug|ARM64">
7 <Configuration>Debug</Configuration> 7 <Configuration>Debug</Configuration>
diff --git a/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj b/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
index 114ab26d..36ee0027 100644
--- a/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
+++ b/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj
@@ -2,7 +2,7 @@
2<!-- 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<!-- 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. -->
3 3
4 4
5<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 5<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
6 <Import Project="..\..\..\..\internal\WixInternal.TestSupport.Native\build\WixInternal.TestSupport.Native.props" /> 6 <Import Project="..\..\..\..\internal\WixInternal.TestSupport.Native\build\WixInternal.TestSupport.Native.props" />
7 7
8 <ItemGroup Label="ProjectConfigurations"> 8 <ItemGroup Label="ProjectConfigurations">
diff --git a/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj.filters b/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj.filters
index 0b3b60be..b471da9e 100644
--- a/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj.filters
+++ b/src/api/burn/test/BalUtilUnitTest/BalUtilUnitTest.vcxproj.filters
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <ItemGroup> 3 <ItemGroup>
4 <Filter Include="Source Files"> 4 <Filter Include="Source Files">
5 <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> 5 <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
@@ -42,4 +42,4 @@
42 <Filter>Header Files</Filter> 42 <Filter>Header Files</Filter>
43 </ClInclude> 43 </ClInclude>
44 </ItemGroup> 44 </ItemGroup>
45</Project> \ No newline at end of file 45</Project>
diff --git a/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj b/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
index 39135dcf..ec6d25eb 100644
--- a/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
+++ b/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj
@@ -1,7 +1,7 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- 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<!-- 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. -->
3 3
4<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 4<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <Import Project="..\..\..\..\internal\WixInternal.TestSupport.Native\build\WixInternal.TestSupport.Native.props" /> 5 <Import Project="..\..\..\..\internal\WixInternal.TestSupport.Native\build\WixInternal.TestSupport.Native.props" />
6 6
7 <ItemGroup Label="ProjectConfigurations"> 7 <ItemGroup Label="ProjectConfigurations">
diff --git a/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj.filters b/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj.filters
index 678f04f5..7b285ebc 100644
--- a/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj.filters
+++ b/src/api/burn/test/BextUtilUnitTest/BextUtilUnitTest.vcxproj.filters
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3 <ItemGroup> 3 <ItemGroup>
4 <Filter Include="Source Files"> 4 <Filter Include="Source Files">
5 <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> 5 <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
diff --git a/src/api/burn/test/WixToolsetTest.BootstrapperApplicationApi/WixToolsetTest.BootstrapperApplicationApi.csproj b/src/api/burn/test/WixToolsetTest.BootstrapperApplicationApi/WixToolsetTest.BootstrapperApplicationApi.csproj
index 1a8014a4..4b2d273b 100644
--- a/src/api/burn/test/WixToolsetTest.BootstrapperApplicationApi/WixToolsetTest.BootstrapperApplicationApi.csproj
+++ b/src/api/burn/test/WixToolsetTest.BootstrapperApplicationApi/WixToolsetTest.BootstrapperApplicationApi.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.NET.Sdk"> 4<Project Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <RuntimeIdentifier>win-x86</RuntimeIdentifier> 7 <RuntimeIdentifier>win-x86</RuntimeIdentifier>
8 <SelfContained>false</SelfContained> 8 <SelfContained>false</SelfContained>
9 <IsWixTestProject>true</IsWixTestProject> 9 <IsWixTestProject>true</IsWixTestProject>
diff --git a/src/api/wix/WixToolset.Data/ErrorMessages.cs b/src/api/wix/WixToolset.Data/ErrorMessages.cs
index ef70ebc4..f3add0a1 100644
--- a/src/api/wix/WixToolset.Data/ErrorMessages.cs
+++ b/src/api/wix/WixToolset.Data/ErrorMessages.cs
@@ -248,11 +248,6 @@ namespace WixToolset.Data
248 return Message(sourceLineNumbers, Ids.DuplicateCabinetName2, "Duplicate cabinet name '{0}' error related to previous error.", cabinetName); 248 return Message(sourceLineNumbers, Ids.DuplicateCabinetName2, "Duplicate cabinet name '{0}' error related to previous error.", cabinetName);
249 } 249 }
250 250
251 public static Message DuplicateCommandLineOptionInExtension(string arg)
252 {
253 return Message(null, Ids.DuplicateCommandLineOptionInExtension, "The command line option '{0}' has already been loaded by another Heat extension.", arg);
254 }
255
256 public static Message DuplicateComponentGuids(SourceLineNumber sourceLineNumbers, string componentId, string guid, string type, string keyPath) 251 public static Message DuplicateComponentGuids(SourceLineNumber sourceLineNumbers, string componentId, string guid, string type, string keyPath)
257 { 252 {
258 return Message(sourceLineNumbers, Ids.DuplicateComponentGuids, "Component/@Id='{0}' with {2} '{3}' has a @Guid value '{1}' that duplicates another component in this package. It is recommended to give each component its own unique GUID.", componentId, guid, type, keyPath); 253 return Message(sourceLineNumbers, Ids.DuplicateComponentGuids, "Component/@Id='{0}' with {2} '{3}' has a @Guid value '{1}' that duplicates another component in this package. It is recommended to give each component its own unique GUID.", componentId, guid, type, keyPath);
@@ -295,7 +290,7 @@ namespace WixToolset.Data
295 290
296 public static Message DuplicateLocalizationIdentifier(SourceLineNumber sourceLineNumbers, string localizationId) 291 public static Message DuplicateLocalizationIdentifier(SourceLineNumber sourceLineNumbers, string localizationId)
297 { 292 {
298 return Message(sourceLineNumbers, Ids.DuplicateLocalizationIdentifier, "The localization identifier '{0}' has been duplicated in multiple locations. Please resolve the conflict.", localizationId); 293 return Message(sourceLineNumbers, Ids.DuplicateLocalizationIdentifier, "The localization identifier '{0}' has been duplicated in multiple locations. A common cause is a bundle .wixproj that automatically loads .wxl files that are intended for the bootstrapper application. You can turn off that behavior by setting the EnableDefaultEmbeddedResourceItems property to false.", localizationId);
299 } 294 }
300 295
301 public static Message DuplicateModuleCaseInsensitiveFileIdentifier(SourceLineNumber sourceLineNumbers, string moduleId, string fileId1, string fileId2) 296 public static Message DuplicateModuleCaseInsensitiveFileIdentifier(SourceLineNumber sourceLineNumbers, string moduleId, string fileId1, string fileId2)
@@ -568,11 +563,6 @@ namespace WixToolset.Data
568 return Message(null, Ids.ExpectedPatchIdInWixMsp, "The WixMsp is missing the patch ID."); 563 return Message(null, Ids.ExpectedPatchIdInWixMsp, "The WixMsp is missing the patch ID.");
569 } 564 }
570 565
571 public static Message ExpectedRowInPatchCreationPackage(string tableName)
572 {
573 return Message(null, Ids.ExpectedRowInPatchCreationPackage, "Could not find a row in the '{0}' table for this patch creation package. Patch creation packages must contain at least one row in the '{0}' table.", tableName);
574 }
575
576 public static Message ExpectedSignedCabinetName(SourceLineNumber sourceLineNumbers) 566 public static Message ExpectedSignedCabinetName(SourceLineNumber sourceLineNumbers)
577 { 567 {
578 return Message(sourceLineNumbers, Ids.ExpectedSignedCabinetName, "The Media/@Cabinet attribute was not found; it is required when this element contains a DigitalSignature child element. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or specify a valid external cabinet name via the Cabinet attribute."); 568 return Message(sourceLineNumbers, Ids.ExpectedSignedCabinetName, "The Media/@Cabinet attribute was not found; it is required when this element contains a DigitalSignature child element. This is because Windows Installer can only verify the digital signatures of external cabinets. Please either remove the DigitalSignature element or specify a valid external cabinet name via the Cabinet attribute.");
@@ -705,16 +695,6 @@ namespace WixToolset.Data
705 return Message(null, Ids.HarvestSourceNotSpecified, "A harvest source must be specified after the harvest type and can be followed by harvester arguments."); 695 return Message(null, Ids.HarvestSourceNotSpecified, "A harvest source must be specified after the harvest type and can be followed by harvester arguments.");
706 } 696 }
707 697
708 public static Message HarvestTypeNotFound()
709 {
710 return Message(null, Ids.HarvestTypeNotFound, "The harvest type was not found in the list of loaded Heat extensions.");
711 }
712
713 public static Message HarvestTypeNotFound(string harvestType)
714 {
715 return Message(null, Ids.HarvestTypeNotFound, "The harvest type '{0}' was specified. Harvest types cannot start with a '-'. Remove the '-' to specify a valid harvest type.", harvestType);
716 }
717
718 public static Message IdentifierNotFound(string type, string identifier) 698 public static Message IdentifierNotFound(string type, string identifier)
719 { 699 {
720 return Message(null, Ids.IdentifierNotFound, "An expected identifier ('{1}', of type '{0}') was not found.", type, identifier); 700 return Message(null, Ids.IdentifierNotFound, "An expected identifier ('{1}', of type '{0}') was not found.", type, identifier);
@@ -1178,7 +1158,7 @@ namespace WixToolset.Data
1178 1158
1179 public static Message InvalidDateTimeFormat(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value) 1159 public static Message InvalidDateTimeFormat(SourceLineNumber sourceLineNumbers, string elementName, string attributeName, string value)
1180 { 1160 {
1181 return Message(sourceLineNumbers, Ids.InvalidDateTimeFormat, "The {0}/@{1} attribute's value '{2}' is not a valid date/time value. A date/time value should follow the format YYYY-MM-DDTHH:mm:ss.", elementName, attributeName, value); 1161 return Message(sourceLineNumbers, Ids.InvalidDateTimeFormat, "The {0}/@{1} attribute's value '{2}' is not a valid date/time value. A date/time value should follow the format YYYY-MM-DDTHH:mm:ss and be a valid date and time between 1980 and 2043, inclusive.", elementName, attributeName, value);
1182 } 1162 }
1183 1163
1184 public static Message InvalidDocumentElement(SourceLineNumber sourceLineNumbers, string elementName, string fileType, string expectedElementName) 1164 public static Message InvalidDocumentElement(SourceLineNumber sourceLineNumbers, string elementName, string fileType, string expectedElementName)
@@ -1428,7 +1408,7 @@ namespace WixToolset.Data
1428 1408
1429 public static Message MissingEntrySection() 1409 public static Message MissingEntrySection()
1430 { 1410 {
1431 return Message(null, Ids.MissingEntrySection, "Could not find entry section in provided list of intermediates. Supported entry section types are: Package, Bundle, Patch, PatchCreation, Module."); 1411 return Message(null, Ids.MissingEntrySection, "Could not find entry section in provided list of intermediates. Supported entry section types are: Package, Bundle, Patch, Module.");
1432 } 1412 }
1433 1413
1434 public static Message MissingEntrySection(string sectionType) 1414 public static Message MissingEntrySection(string sectionType)
@@ -1576,11 +1556,6 @@ namespace WixToolset.Data
1576 return Message(sourceLineNumbers, Ids.NoUniqueActionSequenceNumber2, "The location of the sequenced action related to previous error."); 1556 return Message(sourceLineNumbers, Ids.NoUniqueActionSequenceNumber2, "The location of the sequenced action related to previous error.");
1577 } 1557 }
1578 1558
1579 public static Message OpenDatabaseFailed(string databaseFile)
1580 {
1581 return Message(null, Ids.OpenDatabaseFailed, "Failed to open database '{0}'. Ensure it is a valid database, and it is not open by another process.", databaseFile);
1582 }
1583
1584 public static Message OrderingReferenceLoopDetected(SourceLineNumber sourceLineNumbers, string loopList) 1559 public static Message OrderingReferenceLoopDetected(SourceLineNumber sourceLineNumbers, string loopList)
1585 { 1560 {
1586 return Message(sourceLineNumbers, Ids.OrderingReferenceLoopDetected, "A circular reference of ordering dependencies was detected. The infinite loop includes: {0}. Ordering dependency references must form a directed acyclic graph.", loopList); 1561 return Message(sourceLineNumbers, Ids.OrderingReferenceLoopDetected, "A circular reference of ordering dependencies was detected. The infinite loop includes: {0}. Ordering dependency references must form a directed acyclic graph.", loopList);
@@ -2076,11 +2051,6 @@ namespace WixToolset.Data
2076 return Message(sourceLineNumbers, Ids.UnexpectedTableInPatch, "An unexpected row in the '{0}' table was found in this patch. Patches cannot contain the '{0}' table.", tableName); 2051 return Message(sourceLineNumbers, Ids.UnexpectedTableInPatch, "An unexpected row in the '{0}' table was found in this patch. Patches cannot contain the '{0}' table.", tableName);
2077 } 2052 }
2078 2053
2079 public static Message UnexpectedTableInPatchCreationPackage(SourceLineNumber sourceLineNumbers, string tableName)
2080 {
2081 return Message(sourceLineNumbers, Ids.UnexpectedTableInPatchCreationPackage, "An unexpected row in the '{0}' table was found in this patch creation package. Patch creation packages cannot contain the '{0}' table.", tableName);
2082 }
2083
2084 public static Message UnhandledExtensionAttribute(SourceLineNumber sourceLineNumbers, string elementName, string extensionAttributeName, string extensionNamespace) 2054 public static Message UnhandledExtensionAttribute(SourceLineNumber sourceLineNumbers, string elementName, string extensionAttributeName, string extensionNamespace)
2085 { 2055 {
2086 return Message(sourceLineNumbers, Ids.UnhandledExtensionAttribute, "The {0} element contains an unhandled extension attribute '{1}'. Please ensure that the extension for attributes in the '{2}' namespace has been provided.", elementName, extensionAttributeName, extensionNamespace); 2056 return Message(sourceLineNumbers, Ids.UnhandledExtensionAttribute, "The {0} element contains an unhandled extension attribute '{1}'. Please ensure that the extension for attributes in the '{2}' namespace has been provided.", elementName, extensionAttributeName, extensionNamespace);
@@ -2455,9 +2425,7 @@ namespace WixToolset.Data
2455 NoUniqueActionSequenceNumber2 = 180, 2425 NoUniqueActionSequenceNumber2 = 180,
2456 ActionScheduledRelativeToItself = 181, 2426 ActionScheduledRelativeToItself = 181,
2457 MissingTableDefinition = 182, 2427 MissingTableDefinition = 182,
2458 ExpectedRowInPatchCreationPackage = 183,
2459 UnexpectedTableInMergeModule = 184, 2428 UnexpectedTableInMergeModule = 184,
2460 UnexpectedTableInPatchCreationPackage = 185,
2461 MergeExcludedModule = 186, 2429 MergeExcludedModule = 186,
2462 MergeFeatureRequired = 187, 2430 MergeFeatureRequired = 187,
2463 MergeLanguageFailed = 188, 2431 MergeLanguageFailed = 188,
@@ -2494,7 +2462,6 @@ namespace WixToolset.Data
2494 InvalidKeyColumn = 220, 2462 InvalidKeyColumn = 220,
2495 CollidingModularizationTypes = 221, 2463 CollidingModularizationTypes = 221,
2496 CubeFileNotFound = 222, 2464 CubeFileNotFound = 222,
2497 OpenDatabaseFailed = 223,
2498 OutputTypeMismatch = 224, 2465 OutputTypeMismatch = 224,
2499 RealTableMissingPrimaryKeyColumn = 225, 2466 RealTableMissingPrimaryKeyColumn = 225,
2500 IllegalColumnName = 226, 2467 IllegalColumnName = 226,
@@ -2588,8 +2555,6 @@ namespace WixToolset.Data
2588 SameFileIdDifferentSource = 317, 2555 SameFileIdDifferentSource = 317,
2589 HarvestSourceNotSpecified = 318, 2556 HarvestSourceNotSpecified = 318,
2590 OutputTargetNotSpecified = 319, 2557 OutputTargetNotSpecified = 319,
2591 DuplicateCommandLineOptionInExtension = 320,
2592 HarvestTypeNotFound = 321,
2593 BothUpgradeCodesRequired = 322, 2558 BothUpgradeCodesRequired = 322,
2594 IllegalBinderClassName = 323, 2559 IllegalBinderClassName = 323,
2595 SpecifiedBinderNotFound = 324, 2560 SpecifiedBinderNotFound = 324,
diff --git a/src/api/wix/WixToolset.Data/OutputType.cs b/src/api/wix/WixToolset.Data/OutputType.cs
index abe484bd..ceb1c011 100644
--- a/src/api/wix/WixToolset.Data/OutputType.cs
+++ b/src/api/wix/WixToolset.Data/OutputType.cs
@@ -25,6 +25,7 @@ namespace WixToolset.Data
25 Patch, 25 Patch,
26 26
27 /// <summary>Patch Creation output type.</summary> 27 /// <summary>Patch Creation output type.</summary>
28 [Obsolete]
28 PatchCreation, 29 PatchCreation,
29 30
30 /// <summary>Package output type.</summary> 31 /// <summary>Package output type.</summary>
diff --git a/src/api/wix/WixToolset.Data/SectionType.cs b/src/api/wix/WixToolset.Data/SectionType.cs
index 21fb5eac..d58154dd 100644
--- a/src/api/wix/WixToolset.Data/SectionType.cs
+++ b/src/api/wix/WixToolset.Data/SectionType.cs
@@ -29,6 +29,7 @@ namespace WixToolset.Data
29 Product = Package, 29 Product = Package,
30 30
31 /// <summary>Patch creation section type.</summary> 31 /// <summary>Patch creation section type.</summary>
32 [Obsolete]
32 PatchCreation, 33 PatchCreation,
33 34
34 /// <summary>Patch section type.</summary> 35 /// <summary>Patch section type.</summary>
diff --git a/src/api/wix/WixToolset.Data/Symbols/ExternalFilesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ExternalFilesSymbol.cs
index 87888f0b..4e91ec5b 100644
--- a/src/api/wix/WixToolset.Data/Symbols/ExternalFilesSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/ExternalFilesSymbol.cs
@@ -2,10 +2,12 @@
2 2
3namespace WixToolset.Data 3namespace WixToolset.Data
4{ 4{
5 using System;
5 using WixToolset.Data.Symbols; 6 using WixToolset.Data.Symbols;
6 7
7 public static partial class SymbolDefinitions 8 public static partial class SymbolDefinitions
8 { 9 {
10 [Obsolete]
9 public static readonly IntermediateSymbolDefinition ExternalFiles = new IntermediateSymbolDefinition( 11 public static readonly IntermediateSymbolDefinition ExternalFiles = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.ExternalFiles, 12 SymbolDefinitionType.ExternalFiles,
11 new[] 13 new[]
@@ -25,6 +27,9 @@ namespace WixToolset.Data
25 27
26namespace WixToolset.Data.Symbols 28namespace WixToolset.Data.Symbols
27{ 29{
30 using System;
31
32 [Obsolete]
28 public enum ExternalFilesSymbolFields 33 public enum ExternalFilesSymbolFields
29 { 34 {
30 Family, 35 Family,
@@ -37,6 +42,7 @@ namespace WixToolset.Data.Symbols
37 Order, 42 Order,
38 } 43 }
39 44
45 [Obsolete]
40 public class ExternalFilesSymbol : IntermediateSymbol 46 public class ExternalFilesSymbol : IntermediateSymbol
41 { 47 {
42 public ExternalFilesSymbol() : base(SymbolDefinitions.ExternalFiles, null, null) 48 public ExternalFilesSymbol() : base(SymbolDefinitions.ExternalFiles, null, null)
@@ -97,4 +103,4 @@ namespace WixToolset.Data.Symbols
97 set => this.Set((int)ExternalFilesSymbolFields.Order, value); 103 set => this.Set((int)ExternalFilesSymbolFields.Order, value);
98 } 104 }
99 } 105 }
100} \ No newline at end of file 106}
diff --git a/src/api/wix/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs
index 84cd5b4b..f3400de0 100644
--- a/src/api/wix/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/FamilyFileRangesSymbol.cs
@@ -2,10 +2,12 @@
2 2
3namespace WixToolset.Data 3namespace WixToolset.Data
4{ 4{
5 using System;
5 using WixToolset.Data.Symbols; 6 using WixToolset.Data.Symbols;
6 7
7 public static partial class SymbolDefinitions 8 public static partial class SymbolDefinitions
8 { 9 {
10 [Obsolete]
9 public static readonly IntermediateSymbolDefinition FamilyFileRanges = new IntermediateSymbolDefinition( 11 public static readonly IntermediateSymbolDefinition FamilyFileRanges = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.FamilyFileRanges, 12 SymbolDefinitionType.FamilyFileRanges,
11 new[] 13 new[]
@@ -21,6 +23,9 @@ namespace WixToolset.Data
21 23
22namespace WixToolset.Data.Symbols 24namespace WixToolset.Data.Symbols
23{ 25{
26 using System;
27
28 [Obsolete]
24 public enum FamilyFileRangesSymbolFields 29 public enum FamilyFileRangesSymbolFields
25 { 30 {
26 Family, 31 Family,
@@ -29,6 +34,7 @@ namespace WixToolset.Data.Symbols
29 RetainLengths, 34 RetainLengths,
30 } 35 }
31 36
37 [Obsolete]
32 public class FamilyFileRangesSymbol : IntermediateSymbol 38 public class FamilyFileRangesSymbol : IntermediateSymbol
33 { 39 {
34 public FamilyFileRangesSymbol() : base(SymbolDefinitions.FamilyFileRanges, null, null) 40 public FamilyFileRangesSymbol() : base(SymbolDefinitions.FamilyFileRanges, null, null)
@@ -65,4 +71,4 @@ namespace WixToolset.Data.Symbols
65 set => this.Set((int)FamilyFileRangesSymbolFields.RetainLengths, value); 71 set => this.Set((int)FamilyFileRangesSymbolFields.RetainLengths, value);
66 } 72 }
67 } 73 }
68} \ No newline at end of file 74}
diff --git a/src/api/wix/WixToolset.Data/Symbols/HarvestPayloadsSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/HarvestPayloadsSymbol.cs
new file mode 100644
index 00000000..976214dd
--- /dev/null
+++ b/src/api/wix/WixToolset.Data/Symbols/HarvestPayloadsSymbol.cs
@@ -0,0 +1,68 @@
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
3namespace WixToolset.Data
4{
5 using WixToolset.Data.Symbols;
6
7 public static partial class SymbolDefinitions
8 {
9 public static readonly IntermediateSymbolDefinition HarvestPayloads = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.HarvestPayloads,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(HarvestPayloadsSymbolFields.Inclusions), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(HarvestPayloadsSymbolFields.Exclusions), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(HarvestPayloadsSymbolFields.ComplexReferenceParentType), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(HarvestPayloadsSymbolFields.ParentId), IntermediateFieldType.String),
17 },
18 typeof(HarvestPayloadsSymbol));
19 }
20}
21
22namespace WixToolset.Data.Symbols
23{
24 public enum HarvestPayloadsSymbolFields
25 {
26 Inclusions,
27 Exclusions,
28 ComplexReferenceParentType,
29 ParentId,
30 }
31
32 public class HarvestPayloadsSymbol : IntermediateSymbol
33 {
34 public HarvestPayloadsSymbol() : base(SymbolDefinitions.HarvestPayloads, null, null)
35 {
36 }
37
38 public HarvestPayloadsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.HarvestPayloads, sourceLineNumber, id)
39 {
40 }
41
42 public IntermediateField this[HarvestPayloadsSymbolFields index] => this.Fields[(int)index];
43
44 public string Inclusions
45 {
46 get => (string)this.Fields[(int)HarvestPayloadsSymbolFields.Inclusions];
47 set => this.Set((int)HarvestPayloadsSymbolFields.Inclusions, value);
48 }
49
50 public string Exclusions
51 {
52 get => (string)this.Fields[(int)HarvestPayloadsSymbolFields.Exclusions];
53 set => this.Set((int)HarvestPayloadsSymbolFields.Exclusions, value);
54 }
55
56 public string ComplexReferenceParentType
57 {
58 get => (string)this.Fields[(int)HarvestPayloadsSymbolFields.ComplexReferenceParentType];
59 set => this.Set((int)HarvestPayloadsSymbolFields.ComplexReferenceParentType, value);
60 }
61
62 public string ParentId
63 {
64 get => (string)this.Fields[(int)HarvestPayloadsSymbolFields.ParentId];
65 set => this.Set((int)HarvestPayloadsSymbolFields.ParentId, value);
66 }
67 }
68}
diff --git a/src/api/wix/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs
index 090628ef..39ac8ea0 100644
--- a/src/api/wix/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/ImageFamiliesSymbol.cs
@@ -2,10 +2,12 @@
2 2
3namespace WixToolset.Data 3namespace WixToolset.Data
4{ 4{
5 using System;
5 using WixToolset.Data.Symbols; 6 using WixToolset.Data.Symbols;
6 7
7 public static partial class SymbolDefinitions 8 public static partial class SymbolDefinitions
8 { 9 {
10 [Obsolete]
9 public static readonly IntermediateSymbolDefinition ImageFamilies = new IntermediateSymbolDefinition( 11 public static readonly IntermediateSymbolDefinition ImageFamilies = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.ImageFamilies, 12 SymbolDefinitionType.ImageFamilies,
11 new[] 13 new[]
@@ -23,6 +25,9 @@ namespace WixToolset.Data
23 25
24namespace WixToolset.Data.Symbols 26namespace WixToolset.Data.Symbols
25{ 27{
28 using System;
29
30 [Obsolete]
26 public enum ImageFamiliesSymbolFields 31 public enum ImageFamiliesSymbolFields
27 { 32 {
28 Family, 33 Family,
@@ -33,6 +38,7 @@ namespace WixToolset.Data.Symbols
33 VolumeLabel, 38 VolumeLabel,
34 } 39 }
35 40
41 [Obsolete]
36 public class ImageFamiliesSymbol : IntermediateSymbol 42 public class ImageFamiliesSymbol : IntermediateSymbol
37 { 43 {
38 public ImageFamiliesSymbol() : base(SymbolDefinitions.ImageFamilies, null, null) 44 public ImageFamiliesSymbol() : base(SymbolDefinitions.ImageFamilies, null, null)
@@ -81,4 +87,4 @@ namespace WixToolset.Data.Symbols
81 set => this.Set((int)ImageFamiliesSymbolFields.VolumeLabel, value); 87 set => this.Set((int)ImageFamiliesSymbolFields.VolumeLabel, value);
82 } 88 }
83 } 89 }
84} \ No newline at end of file 90}
diff --git a/src/api/wix/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs
index 682adbca..599883dc 100644
--- a/src/api/wix/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/MsiPatchMetadataSymbol.cs
@@ -20,6 +20,8 @@ namespace WixToolset.Data
20 20
21namespace WixToolset.Data.Symbols 21namespace WixToolset.Data.Symbols
22{ 22{
23 using System;
24
23 public enum MsiPatchMetadataSymbolFields 25 public enum MsiPatchMetadataSymbolFields
24 { 26 {
25 Company, 27 Company,
@@ -27,6 +29,33 @@ namespace WixToolset.Data.Symbols
27 Value, 29 Value,
28 } 30 }
29 31
32 /// <summary>
33 /// Values for the OptimizeCA MsiPatchMetdata property, which indicates whether custom actions can be skipped when applying the patch.
34 /// </summary>
35 [Flags]
36 public enum OptimizeCAFlags
37 {
38 /// <summary>
39 /// No custom actions are skipped.
40 /// </summary>
41 None = 0,
42
43 /// <summary>
44 /// Skip property (type 51) and directory (type 35) assignment custom actions.
45 /// </summary>
46 SkipAssignment = 1,
47
48 /// <summary>
49 /// Skip immediate custom actions that are not property or directory assignment custom actions.
50 /// </summary>
51 SkipImmediate = 2,
52
53 /// <summary>
54 /// Skip custom actions that run within the script.
55 /// </summary>
56 SkipDeferred = 4
57 }
58
30 public class MsiPatchMetadataSymbol : IntermediateSymbol 59 public class MsiPatchMetadataSymbol : IntermediateSymbol
31 { 60 {
32 public MsiPatchMetadataSymbol() : base(SymbolDefinitions.MsiPatchMetadata, null, null) 61 public MsiPatchMetadataSymbol() : base(SymbolDefinitions.MsiPatchMetadata, null, null)
@@ -57,4 +86,4 @@ namespace WixToolset.Data.Symbols
57 set => this.Set((int)MsiPatchMetadataSymbolFields.Value, value); 86 set => this.Set((int)MsiPatchMetadataSymbolFields.Value, value);
58 } 87 }
59 } 88 }
60} \ No newline at end of file 89}
diff --git a/src/api/wix/WixToolset.Data/Symbols/PatchMetadataSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/PatchMetadataSymbol.cs
index 201b8444..ec8b9a5e 100644
--- a/src/api/wix/WixToolset.Data/Symbols/PatchMetadataSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/PatchMetadataSymbol.cs
@@ -2,10 +2,12 @@
2 2
3namespace WixToolset.Data 3namespace WixToolset.Data
4{ 4{
5 using System;
5 using WixToolset.Data.Symbols; 6 using WixToolset.Data.Symbols;
6 7
7 public static partial class SymbolDefinitions 8 public static partial class SymbolDefinitions
8 { 9 {
10 [Obsolete]
9 public static readonly IntermediateSymbolDefinition PatchMetadata = new IntermediateSymbolDefinition( 11 public static readonly IntermediateSymbolDefinition PatchMetadata = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.PatchMetadata, 12 SymbolDefinitionType.PatchMetadata,
11 new[] 13 new[]
@@ -22,6 +24,7 @@ namespace WixToolset.Data.Symbols
22{ 24{
23 using System; 25 using System;
24 26
27 [Obsolete]
25 public enum PatchMetadataSymbolFields 28 public enum PatchMetadataSymbolFields
26 { 29 {
27 Company, 30 Company,
@@ -29,33 +32,7 @@ namespace WixToolset.Data.Symbols
29 Value, 32 Value,
30 } 33 }
31 34
32 /// <summary> 35 [Obsolete]
33 /// Values for the OptimizeCA MsiPatchMetdata property, which indicates whether custom actions can be skipped when applying the patch.
34 /// </summary>
35 [Flags]
36 public enum OptimizeCAFlags
37 {
38 /// <summary>
39 /// No custom actions are skipped.
40 /// </summary>
41 None = 0,
42
43 /// <summary>
44 /// Skip property (type 51) and directory (type 35) assignment custom actions.
45 /// </summary>
46 SkipAssignment = 1,
47
48 /// <summary>
49 /// Skip immediate custom actions that are not property or directory assignment custom actions.
50 /// </summary>
51 SkipImmediate = 2,
52
53 /// <summary>
54 /// Skip custom actions that run within the script.
55 /// </summary>
56 SkipDeferred = 4
57 }
58
59 public class PatchMetadataSymbol : IntermediateSymbol 36 public class PatchMetadataSymbol : IntermediateSymbol
60 { 37 {
61 public PatchMetadataSymbol() : base(SymbolDefinitions.PatchMetadata, null, null) 38 public PatchMetadataSymbol() : base(SymbolDefinitions.PatchMetadata, null, null)
diff --git a/src/api/wix/WixToolset.Data/Symbols/PatchPackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/PatchPackageSymbol.cs
index 0efdfd25..2d8b3f81 100644
--- a/src/api/wix/WixToolset.Data/Symbols/PatchPackageSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/PatchPackageSymbol.cs
@@ -49,4 +49,4 @@ namespace WixToolset.Data.Symbols
49 set => this.Set((int)PatchPackageSymbolFields.MediaDiskIdRef, value); 49 set => this.Set((int)PatchPackageSymbolFields.MediaDiskIdRef, value);
50 } 50 }
51 } 51 }
52} \ No newline at end of file 52}
diff --git a/src/api/wix/WixToolset.Data/Symbols/PatchSequenceSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/PatchSequenceSymbol.cs
index a4cbca61..d769651f 100644
--- a/src/api/wix/WixToolset.Data/Symbols/PatchSequenceSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/PatchSequenceSymbol.cs
@@ -2,10 +2,12 @@
2 2
3namespace WixToolset.Data 3namespace WixToolset.Data
4{ 4{
5 using System;
5 using WixToolset.Data.Symbols; 6 using WixToolset.Data.Symbols;
6 7
7 public static partial class SymbolDefinitions 8 public static partial class SymbolDefinitions
8 { 9 {
10 [Obsolete]
9 public static readonly IntermediateSymbolDefinition PatchSequence = new IntermediateSymbolDefinition( 11 public static readonly IntermediateSymbolDefinition PatchSequence = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.PatchSequence, 12 SymbolDefinitionType.PatchSequence,
11 new[] 13 new[]
@@ -21,6 +23,9 @@ namespace WixToolset.Data
21 23
22namespace WixToolset.Data.Symbols 24namespace WixToolset.Data.Symbols
23{ 25{
26 using System;
27
28 [Obsolete]
24 public enum PatchSequenceSymbolFields 29 public enum PatchSequenceSymbolFields
25 { 30 {
26 PatchFamily, 31 PatchFamily,
@@ -29,6 +34,7 @@ namespace WixToolset.Data.Symbols
29 Supersede, 34 Supersede,
30 } 35 }
31 36
37 [Obsolete]
32 public class PatchSequenceSymbol : IntermediateSymbol 38 public class PatchSequenceSymbol : IntermediateSymbol
33 { 39 {
34 public PatchSequenceSymbol() : base(SymbolDefinitions.PatchSequence, null, null) 40 public PatchSequenceSymbol() : base(SymbolDefinitions.PatchSequence, null, null)
@@ -65,4 +71,4 @@ namespace WixToolset.Data.Symbols
65 set => this.Set((int)PatchSequenceSymbolFields.Supersede, value); 71 set => this.Set((int)PatchSequenceSymbolFields.Supersede, value);
66 } 72 }
67 } 73 }
68} \ No newline at end of file 74}
diff --git a/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs
index 64f51162..ad4b2e11 100644
--- a/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs
@@ -4,6 +4,7 @@ namespace WixToolset.Data
4{ 4{
5 using System; 5 using System;
6 6
7#pragma warning disable CS0612 // includes some obsolete symbol definitions
7 public enum SymbolDefinitionType 8 public enum SymbolDefinitionType
8 { 9 {
9 SummaryInformation, 10 SummaryInformation,
@@ -34,13 +35,16 @@ namespace WixToolset.Data
34 Error, 35 Error,
35 EventMapping, 36 EventMapping,
36 Extension, 37 Extension,
38 [Obsolete]
37 ExternalFiles, 39 ExternalFiles,
40 [Obsolete]
38 FamilyFileRanges, 41 FamilyFileRanges,
39 Feature, 42 Feature,
40 FeatureComponents, 43 FeatureComponents,
41 File, 44 File,
42 FileSFPCatalog, 45 FileSFPCatalog,
43 HarvestFiles, 46 HarvestFiles,
47 HarvestPayloads,
44 Icon, 48 Icon,
45 ImageFamilies, 49 ImageFamilies,
46 IniFile, 50 IniFile,
@@ -85,8 +89,10 @@ namespace WixToolset.Data
85 ODBCSourceAttribute, 89 ODBCSourceAttribute,
86 ODBCTranslator, 90 ODBCTranslator,
87 Patch, 91 Patch,
92 [Obsolete]
88 PatchMetadata, 93 PatchMetadata,
89 PatchPackage, 94 PatchPackage,
95 [Obsolete]
90 PatchSequence, 96 PatchSequence,
91 ProgId, 97 ProgId,
92 Properties, 98 Properties,
@@ -105,14 +111,19 @@ namespace WixToolset.Data
105 Shortcut, 111 Shortcut,
106 Signature, 112 Signature,
107 SoftwareIdentificationTag, 113 SoftwareIdentificationTag,
114 [Obsolete]
108 TargetFilesOptionalData, 115 TargetFilesOptionalData,
116 [Obsolete]
109 TargetImages, 117 TargetImages,
110 TextStyle, 118 TextStyle,
111 TypeLib, 119 TypeLib,
112 UIText, 120 UIText,
113 Upgrade, 121 Upgrade,
122 [Obsolete]
114 UpgradedFilesOptionalData, 123 UpgradedFilesOptionalData,
124 [Obsolete]
115 UpgradedFilesToIgnore, 125 UpgradedFilesToIgnore,
126 [Obsolete]
116 UpgradedImages, 127 UpgradedImages,
117 Verb, 128 Verb,
118 WixAction, 129 WixAction,
diff --git a/src/api/wix/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs
index 66fdc30c..fe3800ff 100644
--- a/src/api/wix/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/TargetFilesOptionalDataSymbol.cs
@@ -2,10 +2,12 @@
2 2
3namespace WixToolset.Data 3namespace WixToolset.Data
4{ 4{
5 using System;
5 using WixToolset.Data.Symbols; 6 using WixToolset.Data.Symbols;
6 7
7 public static partial class SymbolDefinitions 8 public static partial class SymbolDefinitions
8 { 9 {
10 [Obsolete]
9 public static readonly IntermediateSymbolDefinition TargetFilesOptionalData = new IntermediateSymbolDefinition( 11 public static readonly IntermediateSymbolDefinition TargetFilesOptionalData = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.TargetFilesOptionalData, 12 SymbolDefinitionType.TargetFilesOptionalData,
11 new[] 13 new[]
@@ -23,6 +25,9 @@ namespace WixToolset.Data
23 25
24namespace WixToolset.Data.Symbols 26namespace WixToolset.Data.Symbols
25{ 27{
28 using System;
29
30 [Obsolete]
26 public enum TargetFilesOptionalDataSymbolFields 31 public enum TargetFilesOptionalDataSymbolFields
27 { 32 {
28 Target, 33 Target,
@@ -33,6 +38,7 @@ namespace WixToolset.Data.Symbols
33 RetainOffsets, 38 RetainOffsets,
34 } 39 }
35 40
41 [Obsolete]
36 public class TargetFilesOptionalDataSymbol : IntermediateSymbol 42 public class TargetFilesOptionalDataSymbol : IntermediateSymbol
37 { 43 {
38 public TargetFilesOptionalDataSymbol() : base(SymbolDefinitions.TargetFilesOptionalData, null, null) 44 public TargetFilesOptionalDataSymbol() : base(SymbolDefinitions.TargetFilesOptionalData, null, null)
@@ -81,4 +87,4 @@ namespace WixToolset.Data.Symbols
81 set => this.Set((int)TargetFilesOptionalDataSymbolFields.RetainOffsets, value); 87 set => this.Set((int)TargetFilesOptionalDataSymbolFields.RetainOffsets, value);
82 } 88 }
83 } 89 }
84} \ No newline at end of file 90}
diff --git a/src/api/wix/WixToolset.Data/Symbols/TargetImagesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/TargetImagesSymbol.cs
index 4748b1f3..20b3ec5d 100644
--- a/src/api/wix/WixToolset.Data/Symbols/TargetImagesSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/TargetImagesSymbol.cs
@@ -2,10 +2,12 @@
2 2
3namespace WixToolset.Data 3namespace WixToolset.Data
4{ 4{
5 using System;
5 using WixToolset.Data.Symbols; 6 using WixToolset.Data.Symbols;
6 7
7 public static partial class SymbolDefinitions 8 public static partial class SymbolDefinitions
8 { 9 {
10 [Obsolete]
9 public static readonly IntermediateSymbolDefinition TargetImages = new IntermediateSymbolDefinition( 11 public static readonly IntermediateSymbolDefinition TargetImages = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.TargetImages, 12 SymbolDefinitionType.TargetImages,
11 new[] 13 new[]
@@ -24,6 +26,9 @@ namespace WixToolset.Data
24 26
25namespace WixToolset.Data.Symbols 27namespace WixToolset.Data.Symbols
26{ 28{
29 using System;
30
31 [Obsolete]
27 public enum TargetImagesSymbolFields 32 public enum TargetImagesSymbolFields
28 { 33 {
29 Target, 34 Target,
@@ -35,6 +40,7 @@ namespace WixToolset.Data.Symbols
35 IgnoreMissingSrcFiles, 40 IgnoreMissingSrcFiles,
36 } 41 }
37 42
43 [Obsolete]
38 public class TargetImagesSymbol : IntermediateSymbol 44 public class TargetImagesSymbol : IntermediateSymbol
39 { 45 {
40 public TargetImagesSymbol() : base(SymbolDefinitions.TargetImages, null, null) 46 public TargetImagesSymbol() : base(SymbolDefinitions.TargetImages, null, null)
@@ -89,4 +95,4 @@ namespace WixToolset.Data.Symbols
89 set => this.Set((int)TargetImagesSymbolFields.IgnoreMissingSrcFiles, value); 95 set => this.Set((int)TargetImagesSymbolFields.IgnoreMissingSrcFiles, value);
90 } 96 }
91 } 97 }
92} \ No newline at end of file 98}
diff --git a/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs
index 9e669ec3..8f2ccf00 100644
--- a/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesOptionalDataSymbol.cs
@@ -2,10 +2,12 @@
2 2
3namespace WixToolset.Data 3namespace WixToolset.Data
4{ 4{
5 using System;
5 using WixToolset.Data.Symbols; 6 using WixToolset.Data.Symbols;
6 7
7 public static partial class SymbolDefinitions 8 public static partial class SymbolDefinitions
8 { 9 {
10 [Obsolete]
9 public static readonly IntermediateSymbolDefinition UpgradedFilesOptionalData = new IntermediateSymbolDefinition( 11 public static readonly IntermediateSymbolDefinition UpgradedFilesOptionalData = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.UpgradedFilesOptionalData, 12 SymbolDefinitionType.UpgradedFilesOptionalData,
11 new[] 13 new[]
@@ -22,6 +24,9 @@ namespace WixToolset.Data
22 24
23namespace WixToolset.Data.Symbols 25namespace WixToolset.Data.Symbols
24{ 26{
27 using System;
28
29 [Obsolete]
25 public enum UpgradedFilesOptionalDataSymbolFields 30 public enum UpgradedFilesOptionalDataSymbolFields
26 { 31 {
27 Upgraded, 32 Upgraded,
@@ -31,6 +36,7 @@ namespace WixToolset.Data.Symbols
31 IncludeWholeFile, 36 IncludeWholeFile,
32 } 37 }
33 38
39 [Obsolete]
34 public class UpgradedFilesOptionalDataSymbol : IntermediateSymbol 40 public class UpgradedFilesOptionalDataSymbol : IntermediateSymbol
35 { 41 {
36 public UpgradedFilesOptionalDataSymbol() : base(SymbolDefinitions.UpgradedFilesOptionalData, null, null) 42 public UpgradedFilesOptionalDataSymbol() : base(SymbolDefinitions.UpgradedFilesOptionalData, null, null)
diff --git a/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs
index e21af6a2..1afcb980 100644
--- a/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/UpgradedFilesToIgnoreSymbol.cs
@@ -2,10 +2,12 @@
2 2
3namespace WixToolset.Data 3namespace WixToolset.Data
4{ 4{
5 using System;
5 using WixToolset.Data.Symbols; 6 using WixToolset.Data.Symbols;
6 7
7 public static partial class SymbolDefinitions 8 public static partial class SymbolDefinitions
8 { 9 {
10 [Obsolete]
9 public static readonly IntermediateSymbolDefinition UpgradedFilesToIgnore = new IntermediateSymbolDefinition( 11 public static readonly IntermediateSymbolDefinition UpgradedFilesToIgnore = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.UpgradedFilesToIgnore, 12 SymbolDefinitionType.UpgradedFilesToIgnore,
11 new[] 13 new[]
@@ -19,12 +21,16 @@ namespace WixToolset.Data
19 21
20namespace WixToolset.Data.Symbols 22namespace WixToolset.Data.Symbols
21{ 23{
24 using System;
25
26 [Obsolete]
22 public enum UpgradedFilesToIgnoreSymbolFields 27 public enum UpgradedFilesToIgnoreSymbolFields
23 { 28 {
24 Upgraded, 29 Upgraded,
25 FTK, 30 FTK,
26 } 31 }
27 32
33 [Obsolete]
28 public class UpgradedFilesToIgnoreSymbol : IntermediateSymbol 34 public class UpgradedFilesToIgnoreSymbol : IntermediateSymbol
29 { 35 {
30 public UpgradedFilesToIgnoreSymbol() : base(SymbolDefinitions.UpgradedFilesToIgnore, null, null) 36 public UpgradedFilesToIgnoreSymbol() : base(SymbolDefinitions.UpgradedFilesToIgnore, null, null)
@@ -49,4 +55,4 @@ namespace WixToolset.Data.Symbols
49 set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.FTK, value); 55 set => this.Set((int)UpgradedFilesToIgnoreSymbolFields.FTK, value);
50 } 56 }
51 } 57 }
52} \ No newline at end of file 58}
diff --git a/src/api/wix/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs
index 28eae08a..438ca493 100644
--- a/src/api/wix/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/UpgradedImagesSymbol.cs
@@ -2,10 +2,12 @@
2 2
3namespace WixToolset.Data 3namespace WixToolset.Data
4{ 4{
5 using System;
5 using WixToolset.Data.Symbols; 6 using WixToolset.Data.Symbols;
6 7
7 public static partial class SymbolDefinitions 8 public static partial class SymbolDefinitions
8 { 9 {
10 [Obsolete]
9 public static readonly IntermediateSymbolDefinition UpgradedImages = new IntermediateSymbolDefinition( 11 public static readonly IntermediateSymbolDefinition UpgradedImages = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.UpgradedImages, 12 SymbolDefinitionType.UpgradedImages,
11 new[] 13 new[]
@@ -22,6 +24,9 @@ namespace WixToolset.Data
22 24
23namespace WixToolset.Data.Symbols 25namespace WixToolset.Data.Symbols
24{ 26{
27 using System;
28
29 [Obsolete]
25 public enum UpgradedImagesSymbolFields 30 public enum UpgradedImagesSymbolFields
26 { 31 {
27 Upgraded, 32 Upgraded,
@@ -31,6 +36,7 @@ namespace WixToolset.Data.Symbols
31 Family, 36 Family,
32 } 37 }
33 38
39 [Obsolete]
34 public class UpgradedImagesSymbol : IntermediateSymbol 40 public class UpgradedImagesSymbol : IntermediateSymbol
35 { 41 {
36 public UpgradedImagesSymbol() : base(SymbolDefinitions.UpgradedImages, null, null) 42 public UpgradedImagesSymbol() : base(SymbolDefinitions.UpgradedImages, null, null)
@@ -73,4 +79,4 @@ namespace WixToolset.Data.Symbols
73 set => this.Set((int)UpgradedImagesSymbolFields.Family, value); 79 set => this.Set((int)UpgradedImagesSymbolFields.Family, value);
74 } 80 }
75 } 81 }
76} \ No newline at end of file 82}
diff --git a/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs
index 9601ec7a..82a98cc0 100644
--- a/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/WixPackageSymbol.cs
@@ -54,6 +54,7 @@ namespace WixToolset.Data.Symbols
54 PerMachine, 54 PerMachine,
55 PerUser, 55 PerUser,
56 PerUserOrMachine, 56 PerUserOrMachine,
57 PerMachineOrUser,
57 } 58 }
58 59
59 public enum WixPackageUpgradeStrategy 60 public enum WixPackageUpgradeStrategy
diff --git a/src/api/wix/WixToolset.Data/Symbols/WixProductSearchSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixProductSearchSymbol.cs
index 99360da5..38f2af88 100644
--- a/src/api/wix/WixToolset.Data/Symbols/WixProductSearchSymbol.cs
+++ b/src/api/wix/WixToolset.Data/Symbols/WixProductSearchSymbol.cs
@@ -46,6 +46,7 @@ namespace WixToolset.Data.Symbols
46 Language, 46 Language,
47 State, 47 State,
48 Assignment, 48 Assignment,
49 Exists,
49 } 50 }
50 51
51 public class WixProductSearchSymbol : IntermediateSymbol 52 public class WixProductSearchSymbol : IntermediateSymbol
diff --git a/src/api/wix/WixToolset.Data/WarningMessages.cs b/src/api/wix/WixToolset.Data/WarningMessages.cs
index 15068a90..67915620 100644
--- a/src/api/wix/WixToolset.Data/WarningMessages.cs
+++ b/src/api/wix/WixToolset.Data/WarningMessages.cs
@@ -167,11 +167,6 @@ namespace WixToolset.Data
167 return Message(sourceLineNumbers, Ids.DeprecatedLongNameAttribute, "The {0}/@{1} attribute has been deprecated. Since WiX now has the ability to generate short file/directory names, the desired name should be specified in the {2} attribute instead. If the name specified in the {2} attribute is a short name, then WiX will not generate a short name. If the name specified in the {2} attribute is a long name and you want to manually specify the short name, please set the short name value in the {3} attribute.", elementName, longNameAttributeName, nameAttributeName, shortNameAttributeName); 167 return Message(sourceLineNumbers, Ids.DeprecatedLongNameAttribute, "The {0}/@{1} attribute has been deprecated. Since WiX now has the ability to generate short file/directory names, the desired name should be specified in the {2} attribute instead. If the name specified in the {2} attribute is a short name, then WiX will not generate a short name. If the name specified in the {2} attribute is a long name and you want to manually specify the short name, please set the short name value in the {3} attribute.", elementName, longNameAttributeName, nameAttributeName, shortNameAttributeName);
168 } 168 }
169 169
170 public static Message DeprecatedPatchSequenceTargetAttribute(SourceLineNumber sourceLineNumbers, string elementName, string attributeName)
171 {
172 return Message(sourceLineNumbers, Ids.DeprecatedPatchSequenceTargetAttribute, "The {0}/@{1} attribute has been deprecated in favor of the more strongly-typed ProductCode or TargetImage attributes. Please use the ProductCode attribute for indicating the ProductCode of a patch family directly, or the TargetImage attribute to specify the TargetImage which in turn will retrieve the ProductCode of the patch family.", elementName, attributeName);
173 }
174
175 public static Message DeprecatedPreProcVariable(SourceLineNumber sourceLineNumbers, string oldName, string newName) 170 public static Message DeprecatedPreProcVariable(SourceLineNumber sourceLineNumbers, string oldName, string newName)
176 { 171 {
177 return Message(sourceLineNumbers, Ids.DeprecatedPreProcVariable, "The built-in preprocessor variable '{0}' is deprecated. Please correct your authoring to use the new '{1}' preprocessor variable instead.", oldName, newName); 172 return Message(sourceLineNumbers, Ids.DeprecatedPreProcVariable, "The built-in preprocessor variable '{0}' is deprecated. Please correct your authoring to use the new '{1}' preprocessor variable instead.", oldName, newName);
@@ -332,11 +327,6 @@ namespace WixToolset.Data
332 return Message(sourceLineNumbers, Ids.IllegalColumnValue, "The {0}.{1} column's value, '{2}', is not a recognized legal value. This information will be left out of the decompiled output.", tableName, columnName, value); 327 return Message(sourceLineNumbers, Ids.IllegalColumnValue, "The {0}.{1} column's value, '{2}', is not a recognized legal value. This information will be left out of the decompiled output.", tableName, columnName, value);
333 } 328 }
334 329
335 public static Message IllegalPatchCreationTable(SourceLineNumber sourceLineNumbers, string tableName)
336 {
337 return Message(sourceLineNumbers, Ids.IllegalPatchCreationTable, "The {0} table is not legal in a patch creation file. The information in this table will be left out of the decompiled output.", tableName);
338 }
339
340 public static Message IllegalRegistryKeyPath(SourceLineNumber sourceLineNumbers, string componentName, string registryId) 330 public static Message IllegalRegistryKeyPath(SourceLineNumber sourceLineNumbers, string componentName, string registryId)
341 { 331 {
342 return Message(sourceLineNumbers, Ids.IllegalRegistryKeyPath, "Component '{0}' specifies an illegal registry keypath of '{1}'. Since this entry actually represents a registry key, not a registry value, it cannot be the keypath.", componentName, registryId); 332 return Message(sourceLineNumbers, Ids.IllegalRegistryKeyPath, "Component '{0}' specifies an illegal registry keypath of '{1}'. Since this entry actually represents a registry key, not a registry value, it cannot be the keypath.", componentName, registryId);
@@ -357,11 +347,6 @@ namespace WixToolset.Data
357 return Message(null, Ids.ImplicitMergeModulePrimaryFeature, "The merge module '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the MergeRef/@Primary or FeatureGroupRef/@Primary locations for this component.", componentId); 347 return Message(null, Ids.ImplicitMergeModulePrimaryFeature, "The merge module '{0}' does not have an explicit primary feature parent specified. If the source files are linked in a different order, the primary parent feature may change. To prevent accidental changes, the primary feature parent should be set to 'yes' in one of the MergeRef/@Primary or FeatureGroupRef/@Primary locations for this component.", componentId);
358 } 348 }
359 349
360 public static Message InsufficientPermissionHarvestTypeLib()
361 {
362 return Message(null, Ids.InsufficientPermissionHarvestTypeLib, "Not enough permissions to harvest type library. On Windows Vista, you must either run Heat elevated, or install Windows Vista SP1 (or higher).");
363 }
364
365 public static Message InvalidAttributeCombination(SourceLineNumber sourceLineNumbers, string attrib1, string attrib2, string name, string value) 350 public static Message InvalidAttributeCombination(SourceLineNumber sourceLineNumbers, string attrib1, string attrib2, string name, string value)
366 { 351 {
367 return Message(sourceLineNumbers, Ids.InvalidAttributeCombination, "It is invalid to combine attributes {0} and {1}. The decompiled output will set attribute {2} to {3}.", attrib1, attrib2, name, value); 352 return Message(sourceLineNumbers, Ids.InvalidAttributeCombination, "It is invalid to combine attributes {0} and {1}. The decompiled output will set attribute {2} to {3}.", attrib1, attrib2, name, value);
@@ -547,11 +532,6 @@ namespace WixToolset.Data
547 return Message(sourceLineNumbers, Ids.SkippingMergeModuleTable, "The {0} table can only be represented in WiX for merge modules. The information in this table will be left out of the decompiled output.", tableName); 532 return Message(sourceLineNumbers, Ids.SkippingMergeModuleTable, "The {0} table can only be represented in WiX for merge modules. The information in this table will be left out of the decompiled output.", tableName);
548 } 533 }
549 534
550 public static Message SkippingPatchCreationTable(SourceLineNumber sourceLineNumbers, string tableName)
551 {
552 return Message(sourceLineNumbers, Ids.SkippingPatchCreationTable, "The {0} table can only be represented in WiX for patch creation files. The information in this table will be left out of the decompiled output.", tableName);
553 }
554
555 public static Message StandardDirectoryConflictInMergeModule(SourceLineNumber sourceLineNumbers, string directory, string standardDirectory) 535 public static Message StandardDirectoryConflictInMergeModule(SourceLineNumber sourceLineNumbers, string directory, string standardDirectory)
556 { 536 {
557 return Message(sourceLineNumbers, Ids.StandardDirectoryConflictInMergeModule, "The Directory '{0}' starts with the same Id as the standard folder in Windows Installer '{1}'. A directory Id that begins with the same Id as a standard folder that is in an MSM may encounter a conflict when merging the MSM into an MSI. This may result in the contents of this merge module being installed to an unexpected location. To eliminate this warning, change your directory Id to not start with the same Id as any standard folders.", directory, standardDirectory); 537 return Message(sourceLineNumbers, Ids.StandardDirectoryConflictInMergeModule, "The Directory '{0}' starts with the same Id as the standard folder in Windows Installer '{1}'. A directory Id that begins with the same Id as a standard folder that is in an MSM may encounter a conflict when merging the MSM into an MSI. This may result in the contents of this merge module being installed to an unexpected location. To eliminate this warning, change your directory Id to not start with the same Id as any standard folders.", directory, standardDirectory);
@@ -767,9 +747,7 @@ namespace WixToolset.Data
767 IllegalActionInSequence = 1058, 747 IllegalActionInSequence = 1058,
768 ExpectedForeignRow = 1059, 748 ExpectedForeignRow = 1059,
769 DecompilingAsCustomTable = 1060, 749 DecompilingAsCustomTable = 1060,
770 IllegalPatchCreationTable = 1061,
771 SkippingMergeModuleTable = 1062, 750 SkippingMergeModuleTable = 1062,
772 SkippingPatchCreationTable = 1063,
773 UnrepresentableColumnValue = 1064, 751 UnrepresentableColumnValue = 1064,
774 DeprecatedTable = 1065, 752 DeprecatedTable = 1065,
775 PatchTable = 1066, 753 PatchTable = 1066,
@@ -787,7 +765,6 @@ namespace WixToolset.Data
787 EmptyCabinet = 1079, 765 EmptyCabinet = 1079,
788 DeprecatedRegistryElement = 1080, 766 DeprecatedRegistryElement = 1080,
789 IllegalRegistryKeyPath = 1081, 767 IllegalRegistryKeyPath = 1081,
790 DeprecatedPatchSequenceTargetAttribute = 1082,
791 ProductIdAuthored = 1083, 768 ProductIdAuthored = 1083,
792 ImplicitMergeModulePrimaryFeature = 1084, 769 ImplicitMergeModulePrimaryFeature = 1084,
793 DeprecatedIgnoreModularizationElement = 1085, 770 DeprecatedIgnoreModularizationElement = 1085,
@@ -813,7 +790,6 @@ namespace WixToolset.Data
813 UnexpectedEntrySection = 1109, 790 UnexpectedEntrySection = 1109,
814 NewComponentAddedToExistingFeature = 1110, 791 NewComponentAddedToExistingFeature = 1110,
815 DeprecatedAttributeValue = 1111, 792 DeprecatedAttributeValue = 1111,
816 InsufficientPermissionHarvestTypeLib = 1112,
817 UnclearShortcut = 1113, 793 UnclearShortcut = 1113,
818 TooManyProgIds = 1114, 794 TooManyProgIds = 1114,
819 BadColumnDataIgnored = 1115, 795 BadColumnDataIgnored = 1115,
diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs
index fbb38501..2f27e45d 100644
--- a/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs
+++ b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerData.cs
@@ -214,9 +214,11 @@ namespace WixToolset.Data.WindowsInstaller
214 case "Patch": 214 case "Patch":
215 output.Type = OutputType.Patch; 215 output.Type = OutputType.Patch;
216 break; 216 break;
217#pragma warning disable CS0612 // still supported backward compatiblity
217 case "PatchCreation": 218 case "PatchCreation":
218 output.Type = OutputType.PatchCreation; 219 output.Type = OutputType.PatchCreation;
219 break; 220 break;
221#pragma warning restore CS0612
220 case "Package": 222 case "Package":
221 case "Product": 223 case "Product":
222 output.Type = OutputType.Package; 224 output.Type = OutputType.Package;
diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs
index 9f0cdd96..96ae929d 100644
--- a/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs
+++ b/src/api/wix/WixToolset.Data/WindowsInstaller/WindowsInstallerTableDefinitions.cs
@@ -2,6 +2,7 @@
2 2
3namespace WixToolset.Data.WindowsInstaller 3namespace WixToolset.Data.WindowsInstaller
4{ 4{
5 using System;
5 using WixToolset.Data.WindowsInstaller.Rows; 6 using WixToolset.Data.WindowsInstaller.Rows;
6 7
7 public static class WindowsInstallerTableDefinitions 8 public static class WindowsInstallerTableDefinitions
@@ -861,6 +862,7 @@ namespace WixToolset.Data.WindowsInstaller
861 symbolIdIsPrimaryKey: false 862 symbolIdIsPrimaryKey: false
862 ); 863 );
863 864
865 [Obsolete]
864 public static readonly TableDefinition PatchMetadata = new TableDefinition( 866 public static readonly TableDefinition PatchMetadata = new TableDefinition(
865 "PatchMetadata", 867 "PatchMetadata",
866 SymbolDefinitions.PatchMetadata, 868 SymbolDefinitions.PatchMetadata,
@@ -908,6 +910,7 @@ namespace WixToolset.Data.WindowsInstaller
908 symbolIdIsPrimaryKey: false 910 symbolIdIsPrimaryKey: false
909 ); 911 );
910 912
913 [Obsolete]
911 public static readonly TableDefinition PatchSequence = new TableDefinition( 914 public static readonly TableDefinition PatchSequence = new TableDefinition(
912 "PatchSequence", 915 "PatchSequence",
913 SymbolDefinitions.PatchSequence, 916 SymbolDefinitions.PatchSequence,
@@ -1560,6 +1563,7 @@ namespace WixToolset.Data.WindowsInstaller
1560 symbolIdIsPrimaryKey: false 1563 symbolIdIsPrimaryKey: false
1561 ); 1564 );
1562 1565
1566 [Obsolete]
1563 public static readonly TableDefinition ImageFamilies = new TableDefinition( 1567 public static readonly TableDefinition ImageFamilies = new TableDefinition(
1564 "ImageFamilies", 1568 "ImageFamilies",
1565 SymbolDefinitions.ImageFamilies, 1569 SymbolDefinitions.ImageFamilies,
@@ -1575,6 +1579,7 @@ namespace WixToolset.Data.WindowsInstaller
1575 symbolIdIsPrimaryKey: false 1579 symbolIdIsPrimaryKey: false
1576 ); 1580 );
1577 1581
1582 [Obsolete]
1578 public static readonly TableDefinition UpgradedImages = new TableDefinition( 1583 public static readonly TableDefinition UpgradedImages = new TableDefinition(
1579 "UpgradedImages", 1584 "UpgradedImages",
1580 SymbolDefinitions.UpgradedImages, 1585 SymbolDefinitions.UpgradedImages,
@@ -1589,6 +1594,7 @@ namespace WixToolset.Data.WindowsInstaller
1589 symbolIdIsPrimaryKey: false 1594 symbolIdIsPrimaryKey: false
1590 ); 1595 );
1591 1596
1597 [Obsolete]
1592 public static readonly TableDefinition UpgradedFilesToIgnore = new TableDefinition( 1598 public static readonly TableDefinition UpgradedFilesToIgnore = new TableDefinition(
1593 "UpgradedFilesToIgnore", 1599 "UpgradedFilesToIgnore",
1594 SymbolDefinitions.UpgradedFilesToIgnore, 1600 SymbolDefinitions.UpgradedFilesToIgnore,
@@ -1600,6 +1606,7 @@ namespace WixToolset.Data.WindowsInstaller
1600 symbolIdIsPrimaryKey: false 1606 symbolIdIsPrimaryKey: false
1601 ); 1607 );
1602 1608
1609 [Obsolete]
1603 public static readonly TableDefinition UpgradedFilesOptionalData = new TableDefinition( 1610 public static readonly TableDefinition UpgradedFilesOptionalData = new TableDefinition(
1604 "UpgradedFiles_OptionalData", 1611 "UpgradedFiles_OptionalData",
1605 SymbolDefinitions.UpgradedFilesOptionalData, 1612 SymbolDefinitions.UpgradedFilesOptionalData,
@@ -1614,6 +1621,7 @@ namespace WixToolset.Data.WindowsInstaller
1614 symbolIdIsPrimaryKey: false 1621 symbolIdIsPrimaryKey: false
1615 ); 1622 );
1616 1623
1624 [Obsolete]
1617 public static readonly TableDefinition TargetImages = new TableDefinition( 1625 public static readonly TableDefinition TargetImages = new TableDefinition(
1618 "TargetImages", 1626 "TargetImages",
1619 SymbolDefinitions.TargetImages, 1627 SymbolDefinitions.TargetImages,
@@ -1630,6 +1638,7 @@ namespace WixToolset.Data.WindowsInstaller
1630 symbolIdIsPrimaryKey: false 1638 symbolIdIsPrimaryKey: false
1631 ); 1639 );
1632 1640
1641 [Obsolete]
1633 public static readonly TableDefinition TargetFilesOptionalData = new TableDefinition( 1642 public static readonly TableDefinition TargetFilesOptionalData = new TableDefinition(
1634 "TargetFiles_OptionalData", 1643 "TargetFiles_OptionalData",
1635 SymbolDefinitions.TargetFilesOptionalData, 1644 SymbolDefinitions.TargetFilesOptionalData,
@@ -1645,6 +1654,7 @@ namespace WixToolset.Data.WindowsInstaller
1645 symbolIdIsPrimaryKey: false 1654 symbolIdIsPrimaryKey: false
1646 ); 1655 );
1647 1656
1657 [Obsolete]
1648 public static readonly TableDefinition FamilyFileRanges = new TableDefinition( 1658 public static readonly TableDefinition FamilyFileRanges = new TableDefinition(
1649 "FamilyFileRanges", 1659 "FamilyFileRanges",
1650 SymbolDefinitions.FamilyFileRanges, 1660 SymbolDefinitions.FamilyFileRanges,
@@ -1658,6 +1668,7 @@ namespace WixToolset.Data.WindowsInstaller
1658 symbolIdIsPrimaryKey: false 1668 symbolIdIsPrimaryKey: false
1659 ); 1669 );
1660 1670
1671 [Obsolete]
1661 public static readonly TableDefinition ExternalFiles = new TableDefinition( 1672 public static readonly TableDefinition ExternalFiles = new TableDefinition(
1662 "ExternalFiles", 1673 "ExternalFiles",
1663 SymbolDefinitions.ExternalFiles, 1674 SymbolDefinitions.ExternalFiles,
@@ -1772,6 +1783,7 @@ namespace WixToolset.Data.WindowsInstaller
1772 symbolIdIsPrimaryKey: false 1783 symbolIdIsPrimaryKey: false
1773 ); 1784 );
1774 1785
1786#pragma warning disable CS0612 // includes some obsolete table definitions
1775 public static readonly TableDefinition[] All = new[] 1787 public static readonly TableDefinition[] All = new[]
1776 { 1788 {
1777 ActionText, 1789 ActionText,
@@ -1903,5 +1915,6 @@ namespace WixToolset.Data.WindowsInstaller
1903 WixDependencyProvider, 1915 WixDependencyProvider,
1904 WixDependencyRef, 1916 WixDependencyRef,
1905 }; 1917 };
1918#pragma warning restore CS0618
1906 } 1919 }
1907} 1920}
diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/data.xsd b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/data.xsd
index 2ee214d8..c4109dc1 100644
--- a/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/data.xsd
+++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/data.xsd
@@ -37,7 +37,6 @@
37 <xs:enumeration value="Bundle" /> 37 <xs:enumeration value="Bundle" />
38 <xs:enumeration value="Module" /> 38 <xs:enumeration value="Module" />
39 <xs:enumeration value="Patch" /> 39 <xs:enumeration value="Patch" />
40 <xs:enumeration value="PatchCreation" />
41 <xs:enumeration value="Package" /> 40 <xs:enumeration value="Package" />
42 <xs:enumeration value="Product" /> 41 <xs:enumeration value="Product" />
43 <xs:enumeration value="Transform" /> 42 <xs:enumeration value="Transform" />
diff --git a/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd
index 84b59321..404290f1 100644
--- a/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd
+++ b/src/api/wix/WixToolset.Data/WindowsInstaller/Xsd/objects.xsd
@@ -121,7 +121,6 @@
121 <xs:enumeration value="module" /> 121 <xs:enumeration value="module" />
122 <xs:enumeration value="package" /> 122 <xs:enumeration value="package" />
123 <xs:enumeration value="product" /> 123 <xs:enumeration value="product" />
124 <xs:enumeration value="patchCreation" />
125 <xs:enumeration value="patch" /> 124 <xs:enumeration value="patch" />
126 </xs:restriction> 125 </xs:restriction>
127 </xs:simpleType> 126 </xs:simpleType>
diff --git a/src/api/wix/WixToolset.Data/WixToolset.Data.csproj b/src/api/wix/WixToolset.Data/WixToolset.Data.csproj
index 257b9415..294127a0 100644
--- a/src/api/wix/WixToolset.Data/WixToolset.Data.csproj
+++ b/src/api/wix/WixToolset.Data/WixToolset.Data.csproj
@@ -19,7 +19,9 @@
19 <None Include="README.md" Pack="true" PackagePath="\" /> 19 <None Include="README.md" Pack="true" PackagePath="\" />
20 </ItemGroup> 20 </ItemGroup>
21 21
22 <ItemGroup> 22 <!-- .NET 10 SDK no longer implicitly references these, so we need to be explicit -->
23 <PackageReference Include="System.IO.Compression" /> 23 <ItemGroup Condition="'$(TargetFramework)' == 'net472'">
24 <Reference Include="System.IO.Compression" />
25 <Reference Include="System.IO.Compression.FileSystem" />
24 </ItemGroup> 26 </ItemGroup>
25</Project> 27</Project>
diff --git a/src/api/wix/api_wix.sln b/src/api/wix/api_wix.sln
deleted file mode 100644
index 3bf034bd..00000000
--- a/src/api/wix/api_wix.sln
+++ /dev/null
@@ -1,65 +0,0 @@
1
2Microsoft Visual Studio Solution File, Format Version 12.00
3# Visual Studio Version 17
4VisualStudioVersion = 17.3.32922.545
5MinimumVisualStudioVersion = 10.0.40219.1
6Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Data", "WixToolset.Data\WixToolset.Data.csproj", "{73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}"
7EndProject
8Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolsetTest.Data", "test\WixToolsetTest.Data\WixToolsetTest.Data.csproj", "{6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}"
9EndProject
10Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WixToolset.Extensibility", "WixToolset.Extensibility\WixToolset.Extensibility.csproj", "{AA049009-D7D9-4C63-8E0D-83206ADCFBD1}"
11EndProject
12Global
13 GlobalSection(SolutionConfigurationPlatforms) = preSolution
14 Debug|Any CPU = Debug|Any CPU
15 Debug|x64 = Debug|x64
16 Debug|x86 = Debug|x86
17 Release|Any CPU = Release|Any CPU
18 Release|x64 = Release|x64
19 Release|x86 = Release|x86
20 EndGlobalSection
21 GlobalSection(ProjectConfigurationPlatforms) = postSolution
22 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
24 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x64.ActiveCfg = Debug|Any CPU
25 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x64.Build.0 = Debug|Any CPU
26 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x86.ActiveCfg = Debug|Any CPU
27 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Debug|x86.Build.0 = Debug|Any CPU
28 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
29 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|Any CPU.Build.0 = Release|Any CPU
30 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x64.ActiveCfg = Release|Any CPU
31 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x64.Build.0 = Release|Any CPU
32 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x86.ActiveCfg = Release|Any CPU
33 {73ADBD3A-8FB2-47DB-BC79-9BC61C40F2E0}.Release|x86.Build.0 = Release|Any CPU
34 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
35 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
36 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x64.ActiveCfg = Debug|Any CPU
37 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x64.Build.0 = Debug|Any CPU
38 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x86.ActiveCfg = Debug|Any CPU
39 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Debug|x86.Build.0 = Debug|Any CPU
40 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
41 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|Any CPU.Build.0 = Release|Any CPU
42 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x64.ActiveCfg = Release|Any CPU
43 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x64.Build.0 = Release|Any CPU
44 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x86.ActiveCfg = Release|Any CPU
45 {6C1FA8B7-BF3C-4735-95F8-26DEEFEF00C8}.Release|x86.Build.0 = Release|Any CPU
46 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Debug|Any CPU.Build.0 = Debug|Any CPU
48 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Debug|x64.ActiveCfg = Debug|Any CPU
49 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Debug|x64.Build.0 = Debug|Any CPU
50 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Debug|x86.ActiveCfg = Debug|Any CPU
51 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Debug|x86.Build.0 = Debug|Any CPU
52 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Release|Any CPU.ActiveCfg = Release|Any CPU
53 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Release|Any CPU.Build.0 = Release|Any CPU
54 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Release|x64.ActiveCfg = Release|Any CPU
55 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Release|x64.Build.0 = Release|Any CPU
56 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Release|x86.ActiveCfg = Release|Any CPU
57 {AA049009-D7D9-4C63-8E0D-83206ADCFBD1}.Release|x86.Build.0 = Release|Any CPU
58 EndGlobalSection
59 GlobalSection(SolutionProperties) = preSolution
60 HideSolutionNode = FALSE
61 EndGlobalSection
62 GlobalSection(ExtensibilityGlobals) = postSolution
63 SolutionGuid = {2C73DAA1-A584-4542-A2C3-951EF6203ED5}
64 EndGlobalSection
65EndGlobal
diff --git a/src/api/wix/api_wix.slnx b/src/api/wix/api_wix.slnx
new file mode 100644
index 00000000..d7f1dda8
--- /dev/null
+++ b/src/api/wix/api_wix.slnx
@@ -0,0 +1,10 @@
1<Solution>
2 <Configurations>
3 <Platform Name="Any CPU" />
4 <Platform Name="x64" />
5 <Platform Name="x86" />
6 </Configurations>
7 <Project Path="test/WixToolsetTest.Data/WixToolsetTest.Data.csproj" />
8 <Project Path="WixToolset.Data/WixToolset.Data.csproj" />
9 <Project Path="WixToolset.Extensibility/WixToolset.Extensibility.csproj" />
10</Solution>
diff --git a/src/api/wix/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj b/src/api/wix/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj
index ea26bea8..688e23f5 100644
--- a/src/api/wix/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj
+++ b/src/api/wix/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj
@@ -3,7 +3,7 @@
3 3
4<Project Sdk="Microsoft.NET.Sdk"> 4<Project Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>net6.0</TargetFramework> 6 <TargetFramework>net8.0</TargetFramework>
7 <IsWixTestProject>true</IsWixTestProject> 7 <IsWixTestProject>true</IsWixTestProject>
8 </PropertyGroup> 8 </PropertyGroup>
9 9