From 681da11cfc9a266304b47b88843cb8a365015c63 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Wed, 27 Apr 2022 16:54:28 -0500 Subject: Add ability to disable file system redirection for File/DirectorySearch Fixes 5476 --- .../TestData/BundleWithSearches/Bundle.wxs | 5 +++++ .../WixToolsetTest.Util/UtilExtensionFixture.cs | 26 ++++++++++++---------- src/ext/Util/wixext/UtilCompiler.cs | 12 ++++++++++ 3 files changed, 31 insertions(+), 12 deletions(-) (limited to 'src/ext') diff --git a/src/ext/Util/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.wxs b/src/ext/Util/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.wxs index 7fef0725..45147066 100644 --- a/src/ext/Util/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.wxs +++ b/src/ext/Util/test/WixToolsetTest.Util/TestData/BundleWithSearches/Bundle.wxs @@ -7,6 +7,7 @@ + @@ -42,6 +43,10 @@ + + + + diff --git a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs index 32d18e9c..c7b7efb1 100644 --- a/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs +++ b/src/ext/Util/test/WixToolsetTest.Util/UtilExtensionFixture.cs @@ -4,6 +4,7 @@ namespace WixToolsetTest.Util { using System.IO; using System.Linq; + using System.Xml; using WixBuildTools.TestSupport; using WixToolset.Core.TestPackage; using WixToolset.Util; @@ -279,18 +280,19 @@ namespace WixToolsetTest.Util "" + "", bundleExtensionDatas[0].GetTestXml()); - var utilSearches = extractResult.SelectManifestNodes("/burn:BurnManifest/*[self::burn:ExtensionSearch or self::burn:FileSearch or self::burn:MsiProductSearch or self::burn:RegistrySearch]"); - Assert.Equal(5, utilSearches.Count); - Assert.Equal("", utilSearches[0].GetTestXml()); - Assert.Equal("", utilSearches[1].GetTestXml()); - Assert.Equal("", utilSearches[2].GetTestXml()); - Assert.Equal("", utilSearches[3].GetTestXml()); - Assert.Equal("", utilSearches[4].GetTestXml()); + var utilSearches = extractResult.SelectManifestNodes("/burn:BurnManifest/*[self::burn:ExtensionSearch or self::burn:DirectorySearch or self::burn:FileSearch or self::burn:MsiProductSearch or self::burn:RegistrySearch]") + .Cast() + .Select(e => e.GetTestXml()) + .ToArray(); + WixAssert.CompareLineByLine(new[] + { + @"", + @"", + @"", + @"", + @"", + @"" + }, utilSearches); } } diff --git a/src/ext/Util/wixext/UtilCompiler.cs b/src/ext/Util/wixext/UtilCompiler.cs index 323e0f6a..d770555f 100644 --- a/src/ext/Util/wixext/UtilCompiler.cs +++ b/src/ext/Util/wixext/UtilCompiler.cs @@ -999,6 +999,12 @@ namespace WixToolset.Util case "After": this.ParseCommonSearchAttributes(sourceLineNumbers, attrib, ref id, ref variable, ref condition, ref after); break; + case "DisableFileRedirection": + if (this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) == YesNoType.Yes) + { + attributes |= WixFileSearchAttributes.DisableFileRedirection; + } + break; case "Path": path = this.ParseHelper.GetAttributeLongFilename(sourceLineNumbers, attrib, false, true); break; @@ -1104,6 +1110,12 @@ namespace WixToolset.Util case "After": this.ParseCommonSearchAttributes(sourceLineNumbers, attrib, ref id, ref variable, ref condition, ref after); break; + case "DisableFileRedirection": + if (this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attrib) == YesNoType.Yes) + { + attributes |= WixFileSearchAttributes.DisableFileRedirection; + } + break; case "Path": path = this.ParseHelper.GetAttributeLongFilename(sourceLineNumbers, attrib, false, true); break; -- cgit v1.2.3-55-g6feb