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>