@joebigelow / wix / commits / 8a67cff7

Decompiling null GUID should set `Guid=""` to match.

Bob Arnson committed Dec 8, 2020 at 14:00 UTC 8a67cff70cdfa014cc068dcc7756ed57b2ed1642
6 files changed +28 -1
src/WixToolset.Core.WindowsInstaller/Decompile/Decompiler.cs
+1 -1
@@ -4152,7 +4152,7 @@ namespace WixToolset.Core.WindowsInstaller
4152 {
4153 var xComponent = new XElement(Names.ComponentElement,
4154 new XAttribute("Id", row.FieldAsString(0)),
4155 - row.IsColumnEmpty(1) ? null : new XAttribute("Guid", row.FieldAsString(1)));
4155 + new XAttribute("Guid", row.FieldAsString(1) ?? String.Empty));
4156
4157 var attributes = row.FieldAsInteger(3);
4158
src/test/WixToolsetTest.CoreIntegration/DecompileFixture.cs
+6
@@ -72,5 +72,11 @@ namespace WixToolsetTest.CoreIntegration
72 {
73 DecompileAndCompare(@"TestData\Shortcut", "shortcuts.msi", "DecompiledShortcuts.wxs");
74 }
75 +
76 + [Fact]
77 + public void CanDecompileNullComponent()
78 + {
79 + DecompileAndCompare(@"TestData\DecompileNullComponent", "example.msi", "Expected.wxs");
80 + }
81 }
82 }
src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/Expected.wxs new
+18
@@ -0,0 +1,18 @@
1 +<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 + <Package Codepage="65001" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{047730A5-30FE-4A62-A520-DA9381B8226A}" Version="1.0.0.0" Compressed="yes" InstallerVersion="200" ProductCode="{6F9B5694-F0F1-437C-919B-0D2DAF2D9DEA}">
3 + <Directory Id="TARGETDIR" Name="SourceDir">
4 + <Directory Id="ProgramFilesFolder">
5 + <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
6 + <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="" Win64="no">
7 + <File Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Name="test.txt" KeyPath="yes" Source="SourceDir\File\filcV1yrx0x8wJWj4qMzcH21jwkPko" />
8 + </Component>
9 + </Directory>
10 + </Directory>
11 + </Directory>
12 + <Feature Id="ProductFeature" Level="1" Title="MsiPackage">
13 + <ComponentRef Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" />
14 + </Feature>
15 + <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
16 + <Media Id="1" Cabinet="example.cab" />
17 + </Package>
18 +</Wix>
\ No newline at end of file
src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.cab
Binary files /dev/null and b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.cab differ
src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.msi
Binary files /dev/null and b/src/test/WixToolsetTest.CoreIntegration/TestData/DecompileNullComponent/example.msi differ
src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
+3
@@ -207,6 +207,9 @@
207 <Content Include="TestData\WixlibWithBinaries\Package.en-us.wxl" CopyToOutputDirectory="PreserveNewest" />
208 <Content Include="TestData\WixlibWithBinaries\Package.wxs" CopyToOutputDirectory="PreserveNewest" />
209 <Content Include="TestData\WixlibWithBinaries\PackageComponents.wxs" CopyToOutputDirectory="PreserveNewest" />
210 + <Content Include="TestData\DecompileNullComponent\example.cab" CopyToOutputDirectory="PreserveNewest" />
211 + <Content Include="TestData\DecompileNullComponent\example.msi" CopyToOutputDirectory="PreserveNewest" />
212 + <Content Include="TestData\DecompileNullComponent\Expected.wxs" CopyToOutputDirectory="PreserveNewest" />
213 </ItemGroup>
214
215 <ItemGroup>