aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-03-05 15:15:38 -0600
committerSean Hall <r.sean.hall@gmail.com>2021-03-05 15:18:28 -0600
commit3eef7b697ecebffc20d13bc2c199573620c38ccf (patch)
tree40befd7a49040c326a3f2570c669286d967ab8f1
parent5d22e83ed1c5abf2b81caa4a56fa56342f30b83b (diff)
downloadwix-3eef7b697ecebffc20d13bc2c199573620c38ccf.tar.gz
wix-3eef7b697ecebffc20d13bc2c199573620c38ccf.tar.bz2
wix-3eef7b697ecebffc20d13bc2c199573620c38ccf.zip
Fix Enforce.
-rw-r--r--src/test/WixToolsetTest.Dependency/DependencyExtensionFixture.cs10
-rw-r--r--src/test/WixToolsetTest.Dependency/TestData/UsingProvides/Package.wxs3
-rw-r--r--src/wixext/DependencyCompiler.cs4
-rw-r--r--src/wixlib/DependencyExtension_Platform.wxi2
4 files changed, 14 insertions, 5 deletions
diff --git a/src/test/WixToolsetTest.Dependency/DependencyExtensionFixture.cs b/src/test/WixToolsetTest.Dependency/DependencyExtensionFixture.cs
index 968b8de6..708ae658 100644
--- a/src/test/WixToolsetTest.Dependency/DependencyExtensionFixture.cs
+++ b/src/test/WixToolsetTest.Dependency/DependencyExtensionFixture.cs
@@ -2,6 +2,8 @@
2 2
3namespace WixToolsetTest.Dependency 3namespace WixToolsetTest.Dependency
4{ 4{
5 using System.Linq;
6 using System.Text.RegularExpressions;
5 using WixBuildTools.TestSupport; 7 using WixBuildTools.TestSupport;
6 using WixToolset.Core.TestPackage; 8 using WixToolset.Core.TestPackage;
7 using WixToolset.Dependency; 9 using WixToolset.Dependency;
@@ -15,11 +17,15 @@ namespace WixToolsetTest.Dependency
15 var folder = TestData.Get(@"TestData\UsingProvides"); 17 var folder = TestData.Get(@"TestData\UsingProvides");
16 var build = new Builder(folder, typeof(DependencyExtensionFactory), new[] { folder }); 18 var build = new Builder(folder, typeof(DependencyExtensionFactory), new[] { folder });
17 19
18 var results = build.BuildAndQuery(Build, "CustomAction", "WixDependencyProvider"); 20 var results = build.BuildAndQuery(Build, "CustomAction", "WixDependencyProvider")
19 Assert.Equal(new[] 21 .Select(r => Regex.Replace(r, "{[^}]*}", "{*}"))
22 .ToArray();
23 WixAssert.CompareLineByLine(new[]
20 { 24 {
21 "CustomAction:Wix4DependencyCheck_X86\t1\tDependencyCA_X86\tWixDependencyCheck\t", 25 "CustomAction:Wix4DependencyCheck_X86\t1\tDependencyCA_X86\tWixDependencyCheck\t",
26 "CustomAction:Wix4DependencyRequire_X86\t1\tDependencyCA_X86\tWixDependencyRequire\t",
22 "WixDependencyProvider:dep74OfIcniaqxA7EprRGBw4Oyy3r8\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tUsingProvides\t\t\t", 27 "WixDependencyProvider:dep74OfIcniaqxA7EprRGBw4Oyy3r8\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\tUsingProvides\t\t\t",
28 "WixDependencyProvider:depTpv28q7slcxvXPWmU4Z0GfbiI.4\tfilF5_pLhBuF5b4N9XEo52g_hUM5Lo\t{*}\t\t\t",
23 }, results); 29 }, results);
24 } 30 }
25 31
diff --git a/src/test/WixToolsetTest.Dependency/TestData/UsingProvides/Package.wxs b/src/test/WixToolsetTest.Dependency/TestData/UsingProvides/Package.wxs
index b15ae8da..9351519d 100644
--- a/src/test/WixToolsetTest.Dependency/TestData/UsingProvides/Package.wxs
+++ b/src/test/WixToolsetTest.Dependency/TestData/UsingProvides/Package.wxs
@@ -9,6 +9,9 @@
9 <Component Directory="INSTALLFOLDER"> 9 <Component Directory="INSTALLFOLDER">
10 <File Name="example.txt" Source="Package.wxs" /> 10 <File Name="example.txt" Source="Package.wxs" />
11 <Provides Key="UsingProvides" dep:Check="yes" /> 11 <Provides Key="UsingProvides" dep:Check="yes" />
12 <Provides>
13 <Requires ProviderKey="UsingRequires" Minimum="1.0.0.0" dep:Enforce="yes" />
14 </Provides>
12 </Component> 15 </Component>
13 </Feature> 16 </Feature>
14 17
diff --git a/src/wixext/DependencyCompiler.cs b/src/wixext/DependencyCompiler.cs
index 0405c324..3d6c84a7 100644
--- a/src/wixext/DependencyCompiler.cs
+++ b/src/wixext/DependencyCompiler.cs
@@ -30,14 +30,14 @@ namespace WixToolset.Dependency
30 switch (parentElement.Name.LocalName) 30 switch (parentElement.Name.LocalName)
31 { 31 {
32 case "Provides": 32 case "Provides":
33 if (attribute.Name.LocalName == "Check" && parentElement.Parent.Name.LocalName == "Component") 33 if (attribute.Name.LocalName == "Check" && parentElement.Parent?.Name.LocalName == "Component")
34 { 34 {
35 addCheck = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attribute); 35 addCheck = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attribute);
36 } 36 }
37 break; 37 break;
38 case "Requires": 38 case "Requires":
39 case "RequiresRef": 39 case "RequiresRef":
40 if (attribute.Name.LocalName == "Enforce" && parentElement.Parent.Name.LocalName == "Component") 40 if (attribute.Name.LocalName == "Enforce" && parentElement.Parent?.Parent?.Name.LocalName == "Component")
41 { 41 {
42 addRequire = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attribute); 42 addRequire = this.ParseHelper.GetAttributeYesNoValue(sourceLineNumbers, attribute);
43 } 43 }
diff --git a/src/wixlib/DependencyExtension_Platform.wxi b/src/wixlib/DependencyExtension_Platform.wxi
index 68dec471..9ab28ef3 100644
--- a/src/wixlib/DependencyExtension_Platform.wxi
+++ b/src/wixlib/DependencyExtension_Platform.wxi
@@ -7,7 +7,7 @@
7 <Fragment> 7 <Fragment>
8 <CustomAction Id="$(var.Prefix)DependencyRequire$(var.Suffix)" DllEntry="WixDependencyRequire" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="DependencyCA$(var.Suffix)" /> 8 <CustomAction Id="$(var.Prefix)DependencyRequire$(var.Suffix)" DllEntry="WixDependencyRequire" Execute="immediate" Return="check" SuppressModularization="yes" BinaryRef="DependencyCA$(var.Suffix)" />
9 <InstallExecuteSequence> 9 <InstallExecuteSequence>
10 <Custom Action="$(var.Prefix)DependencyRequire$(var.Suffix)" Before="WixDependencyCheck$(var.Suffix)" Overridable="yes" Condition="NOT DISABLEDEPENDENCYCHECK" /> 10 <Custom Action="$(var.Prefix)DependencyRequire$(var.Suffix)" Before="$(var.Prefix)DependencyCheck$(var.Suffix)" Overridable="yes" Condition="NOT DISABLEDEPENDENCYCHECK" />
11 </InstallExecuteSequence> 11 </InstallExecuteSequence>
12 <UIRef Id="WixDependencyErrors" /> 12 <UIRef Id="WixDependencyErrors" />
13 <PropertyRef Id="DISABLEDEPENDENCYCHECK" /> 13 <PropertyRef Id="DISABLEDEPENDENCYCHECK" />