diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2021-03-05 15:15:38 -0600 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2021-03-05 15:18:28 -0600 |
commit | 3eef7b697ecebffc20d13bc2c199573620c38ccf (patch) | |
tree | 40befd7a49040c326a3f2570c669286d967ab8f1 | |
parent | 5d22e83ed1c5abf2b81caa4a56fa56342f30b83b (diff) | |
download | wix-3eef7b697ecebffc20d13bc2c199573620c38ccf.tar.gz wix-3eef7b697ecebffc20d13bc2c199573620c38ccf.tar.bz2 wix-3eef7b697ecebffc20d13bc2c199573620c38ccf.zip |
Fix Enforce.
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 | ||
3 | namespace WixToolsetTest.Dependency | 3 | namespace 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" /> |