diff options
author | Bob Arnson <bob@firegiant.com> | 2023-02-21 14:20:55 -0500 |
---|---|---|
committer | Bob Arnson <github@bobs.org> | 2023-02-21 15:21:35 -0500 |
commit | 168bd779a1994d390ee862ff3bd2de1e7d7ea031 (patch) | |
tree | 2bcf00399697791c1011aa7334491618e4ed2b03 /src/ext | |
parent | 149a4220e8246c037c9c26a4bca817fd5d6968df (diff) | |
download | wix-168bd779a1994d390ee862ff3bd2de1e7d7ea031.tar.gz wix-168bd779a1994d390ee862ff3bd2de1e7d7ea031.tar.bz2 wix-168bd779a1994d390ee862ff3bd2de1e7d7ea031.zip |
Fix RemoveFoldersEx query.
Fixes https://github.com/wixtoolset/issues/issues/7236.
Diffstat (limited to 'src/ext')
7 files changed, 63 insertions, 8 deletions
diff --git a/src/ext/Util/ca/RemoveFoldersEx.cpp b/src/ext/Util/ca/RemoveFoldersEx.cpp index 266594fd..10345de7 100644 --- a/src/ext/Util/ca/RemoveFoldersEx.cpp +++ b/src/ext/Util/ca/RemoveFoldersEx.cpp | |||
@@ -3,8 +3,8 @@ | |||
3 | #include "precomp.h" | 3 | #include "precomp.h" |
4 | 4 | ||
5 | LPCWSTR vcsRemoveFolderExQuery = | 5 | LPCWSTR vcsRemoveFolderExQuery = |
6 | L"SELECT `Wix4RemoveFolderEx`, `Component_`, `Property`, `InstallMode`, `Wix4RemoveFolderEx`.`Condition`, `Component`.`Attributes`" | 6 | L"SELECT `RemoveFolderEx`, `Component_`, `Property`, `InstallMode`, `Wix4RemoveFolderEx`.`Condition`, `Component`.`Attributes` " |
7 | L"FROM `Wix4RemoveFolderEx``,`Component` " | 7 | L"FROM `Wix4RemoveFolderEx`,`Component` " |
8 | L"WHERE `Wix4RemoveFolderEx`.`Component_`=`Component`.`Component`"; | 8 | L"WHERE `Wix4RemoveFolderEx`.`Component_`=`Component`.`Component`"; |
9 | enum eRemoveFolderExQuery { rfqId = 1, rfqComponent, rfqProperty, rfqMode, rfqCondition, rfqComponentAttributes }; | 9 | enum eRemoveFolderExQuery { rfqId = 1, rfqComponent, rfqProperty, rfqMode, rfqCondition, rfqComponentAttributes }; |
10 | 10 | ||
diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderEx/Module.wxs b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderEx/Module.wxs index 2c2be584..ee295cdb 100644 --- a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderEx/Module.wxs +++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderEx/Module.wxs | |||
@@ -1,13 +1,13 @@ | |||
1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
2 | <Module Language="1033" Version="1.0.0.0" Id="InternetShortcutModule" Guid="047730a5-30fe-4a62-a520-da9381b8226a"> | 2 | <Module Language="1033" Version="1.0.0.0" Id="RemoveFolderExModule" Guid="047730a5-30fe-4a62-a520-da9381b8226a"> |
3 | <SummaryInformation Manufacturer="Example Corporation" /> | 3 | <SummaryInformation Manufacturer="Example Corporation" /> |
4 | 4 | ||
5 | <ComponentGroupRef Id="ModuleComponents" /> | 5 | <ComponentGroupRef Id="ModuleComponents" /> |
6 | </Module> | 6 | </Module> |
7 | 7 | ||
8 | <Fragment> | 8 | <Fragment> |
9 | <StandardDirectory Id="ProgramFilesFolder"> | 9 | <StandardDirectory Id="ProgramFilesFolder"> |
10 | <Directory Id="INSTALLFOLDER" Name="MergeModule" /> | 10 | <Directory Id="INSTALLFOLDER" Name="MergeModule" /> |
11 | </StandardDirectory> | 11 | </StandardDirectory> |
12 | </Fragment> | 12 | </Fragment> |
13 | </Wix> | 13 | </Wix> |
diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.en-us.wxl b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.en-us.wxl new file mode 100644 index 00000000..f1df1234 --- /dev/null +++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.en-us.wxl | |||
@@ -0,0 +1,9 @@ | |||
1 | <!-- | ||
2 | This file contains the declaration of all the localizable strings. | ||
3 | --> | ||
4 | <WixLocalization xmlns="http://wixtoolset.org/schemas/v4/wxl" Culture="en-US"> | ||
5 | |||
6 | <String Id="DowngradeError" Value="A newer version of [ProductName] is already installed." /> | ||
7 | <String Id="FeatureTitle" Value="MsiPackage" /> | ||
8 | |||
9 | </WixLocalization> | ||
diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.wxs b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.wxs new file mode 100644 index 00000000..09f131e7 --- /dev/null +++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/Package.wxs | |||
@@ -0,0 +1,19 @@ | |||
1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
2 | <Package Name="MsiPackage" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a"> | ||
3 | <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> | ||
4 | |||
5 | <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> | ||
6 | <ComponentGroupRef Id="ProductComponents" /> | ||
7 | </Feature> | ||
8 | |||
9 | <Property Id="REMOVEPROP"> | ||
10 | <RegistrySearch Id="GetInstallFolderForNukingPurposes" Root="HKLM" Key="SOFTWARE\[Manufacturer]\[ProductName]" Name="InstallFolder" Type="directory" /> | ||
11 | </Property> | ||
12 | </Package> | ||
13 | |||
14 | <Fragment> | ||
15 | <StandardDirectory Id="ProgramFilesFolder"> | ||
16 | <Directory Id="INSTALLFOLDER" Name="MsiPackage" /> | ||
17 | </StandardDirectory> | ||
18 | </Fragment> | ||
19 | </Wix> | ||
diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/PackageComponents.wxs b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/PackageComponents.wxs new file mode 100644 index 00000000..0e277546 --- /dev/null +++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/PackageComponents.wxs | |||
@@ -0,0 +1,11 @@ | |||
1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util"> | ||
2 | <Fragment> | ||
3 | <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER"> | ||
4 | <Component> | ||
5 | <File Source="example.txt" /> | ||
6 | <RegistryValue Root="HKLM" Key="SOFTWARE\[Manufacturer]\[ProductName]" Name="InstallFolder" Value="[INSTALLFOLDER]" /> | ||
7 | <util:RemoveFolderEx On="both" Property="REMOVEPROP" /> | ||
8 | </Component> | ||
9 | </ComponentGroup> | ||
10 | </Fragment> | ||
11 | </Wix> | ||
diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/example.txt b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/example.txt new file mode 100644 index 00000000..1b4ffe8a --- /dev/null +++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/RemoveFolderExPackage/example.txt | |||
@@ -0,0 +1 @@ | |||
This is example.txt. \ No newline at end of file | |||
diff --git a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs index a9b37870..f90b87f6 100644 --- a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs +++ b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs | |||
@@ -183,6 +183,21 @@ namespace WixToolsetTest.Util | |||
183 | } | 183 | } |
184 | 184 | ||
185 | [Fact] | 185 | [Fact] |
186 | public void CanBuildRemoveFolderExInPackage() | ||
187 | { | ||
188 | var folder = TestData.Get(@"TestData\RemoveFolderExPackage"); | ||
189 | var build = new Builder(folder, typeof(UtilExtensionFactory), new[] { folder }); | ||
190 | |||
191 | var results = build.BuildAndQuery(BuildX64, "Binary", "CustomAction", "RemoveFile", "Wix4RemoveFolderEx"); | ||
192 | WixAssert.CompareLineByLine(new[] | ||
193 | { | ||
194 | "Binary:Wix4UtilCA_X64\t[Binary data]", | ||
195 | "CustomAction:Wix4RemoveFoldersEx_X64\t65\tWix4UtilCA_X64\tWixRemoveFoldersEx\t", | ||
196 | "Wix4RemoveFolderEx:wrfRwBJnGq1p9zdOKI6qUQ.p.wHFtE\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tREMOVEPROP\t3\t", | ||
197 | }, results.OrderBy(s => s).ToArray()); | ||
198 | } | ||
199 | |||
200 | [Fact] | ||
186 | public void CanBuildServiceConfig() | 201 | public void CanBuildServiceConfig() |
187 | { | 202 | { |
188 | var folder = TestData.Get(@"TestData", "ServiceConfig"); | 203 | var folder = TestData.Get(@"TestData", "ServiceConfig"); |