From e6f381b0ce2011ced88697ca7ddaae8a053b57d7 Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Mon, 4 Nov 2019 13:15:39 -0500 Subject: Tolerate missing RegistryValue/@Value when @Type="binary". --- src/WixToolset.Core/Compiler_2.cs | 4 ++-- src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs | 1 + .../TestData/Registry/RegistryValue.wxs | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/WixToolset.Core/Compiler_2.cs b/src/WixToolset.Core/Compiler_2.cs index 10416850..2f578e61 100644 --- a/src/WixToolset.Core/Compiler_2.cs +++ b/src/WixToolset.Core/Compiler_2.cs @@ -2006,11 +2006,11 @@ namespace WixToolset.Core //} // value may be set by child MultiStringValue elements, so it must be checked here - if (null == value) + if (null == value && valueType != RegistryValueType.Binary) { this.Core.Write(ErrorMessages.ExpectedAttribute(sourceLineNumbers, node.Name.LocalName, "Value")); } - else if (0 == value.Length && ("+" == name || "-" == name || "*" == name)) // prevent accidental authoring of special name values + else if (0 == value?.Length && ("+" == name || "-" == name || "*" == name)) // prevent accidental authoring of special name values { this.Core.Write(ErrorMessages.RegistryNameValueIncorrect(sourceLineNumbers, node.Name.LocalName, "Name", name)); } diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs index 7c3dddd7..fff37618 100644 --- a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs @@ -610,6 +610,7 @@ namespace WixToolsetTest.CoreIntegration var results = Query.QueryDatabase(msiPath, new[] { "Registry" }); Assert.Equal(new[] { + "Registry:reg04OIwIchl.9ZTjisTT6NzGSsQSM\t2\tPath\\To\\AnotherKey\tSecret\t#x\tMiscComponent", "Registry:regEblTuusqFNSUQNy88zaP_UA5kIY\t2\tPath\\To\\Key\t\t1.0.1234.123\tMiscComponent", }, results); } diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValue.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValue.wxs index 3d88d4cd..fe6e179e 100644 --- a/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValue.wxs +++ b/src/test/WixToolsetTest.CoreIntegration/TestData/Registry/RegistryValue.wxs @@ -4,6 +4,7 @@ + -- cgit v1.2.3-55-g6feb