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 | |
| 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')
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"); |
