@joebigelow / wix / commits / 89416eb8

Restore Unreal to CustomTable.

Sean Hall committed Jun 19, 2020 at 14:44 UTC 89416eb8c4e7dc8ae4dd2aa27aa7c5930421f61a
5 files changed +49 -3
src/WixToolset.Core.WindowsInstaller/Bind/CreateOutputFromIRCommand.cs
-2
@@ -4,7 +4,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind
4 {
5 using System;
6 using System.Collections.Generic;
7 - using System.Diagnostics;
7 using System.Globalization;
8 using System.Linq;
9 using WixToolset.Data;
@@ -979,7 +978,6 @@ namespace WixToolset.Core.WindowsInstaller.Bind
978
979 if (customTableDefinition.Unreal)
980 {
982 - Debug.Assert(false, "CustomTableDefinition should never be unreal.");
981 continue;
982 }
983
src/WixToolset.Core.WindowsInstaller/Bind/LoadTableDefinitionsCommand.cs
+1 -1
@@ -208,7 +208,7 @@ namespace WixToolset.Core.WindowsInstaller.Bind
208 columns.Add(columnDefinition);
209 }
210
211 - var customTable = new TableDefinition(tuple.Id.Id, null, columns);
211 + var customTable = new TableDefinition(tuple.Id.Id, null, columns, tuple.Unreal);
212 return customTable;
213 }
214 }
src/WixToolset.Core/Compiler.cs
+5
@@ -3668,6 +3668,7 @@ namespace WixToolset.Core
3668 {
3669 var sourceLineNumbers = Preprocessor.GetSourceLineNumbers(node);
3670 string tableId = null;
3671 + var unreal = false;
3672 var columns = new List<WixCustomTableColumnTuple>();
3673
3674 foreach (var attrib in node.Attributes())
@@ -3679,6 +3680,9 @@ namespace WixToolset.Core
3680 case "Id":
3681 tableId = this.Core.GetAttributeIdentifierValue(sourceLineNumbers, attrib);
3682 break;
3683 + case "Unreal":
3684 + unreal = YesNoType.Yes == this.Core.GetAttributeYesNoValue(sourceLineNumbers, attrib);
3685 + break;
3686 default:
3687 this.Core.UnexpectedAttribute(node, attrib);
3688 break;
@@ -3741,6 +3745,7 @@ namespace WixToolset.Core
3745 this.Core.AddTuple(new WixCustomTableTuple(sourceLineNumbers, new Identifier(AccessModifier.Public, tableId))
3746 {
3747 ColumnNames = columnNames,
3748 + Unreal = unreal,
3749 });
3750 }
3751 }
src/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs
+30
@@ -158,6 +158,36 @@ namespace WixToolsetTest.CoreIntegration
158 }
159 }
160
161 + [Fact]
162 + public void UnrealCustomTableIsNotPresentInMsi()
163 + {
164 + var folder = TestData.Get(@"TestData");
165 +
166 + using (var fs = new DisposableFileSystem())
167 + {
168 + var baseFolder = fs.GetFolder();
169 + var intermediateFolder = Path.Combine(baseFolder, "obj");
170 + var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
171 +
172 + var result = WixRunner.Execute(new[]
173 + {
174 + "build",
175 + Path.Combine(folder, "CustomTable", "CustomTable.wxs"),
176 + Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
177 + Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
178 + "-bindpath", Path.Combine(folder, "SingleFile", "data"),
179 + "-intermediateFolder", intermediateFolder,
180 + "-o", msiPath
181 + });
182 +
183 + result.AssertSuccess();
184 +
185 + Assert.True(File.Exists(msiPath));
186 + var results = Query.QueryDatabase(msiPath, new[] { "CustomTable2" });
187 + Assert.Empty(results);
188 + }
189 + }
190 +
191 [Fact]
192 public void CanCompileAndDecompile()
193 {
src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs
+13
@@ -17,5 +17,18 @@
17 <Data Column="Component_">test.txt</Data>
18 </Row>
19 </CustomTable>
20 +
21 + <CustomTable Id="CustomTable2" Unreal="yes">
22 + <Column Id="ColumnA" Type="string" PrimaryKey="yes" />
23 + <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" />
24 + <Row>
25 + <Data Column="ColumnA">RowA</Data>
26 + <Data Column="Component_">test.txt</Data>
27 + </Row>
28 + <Row>
29 + <Data Column="ColumnA">RowB</Data>
30 + <Data Column="Component_">test.txt</Data>
31 + </Row>
32 + </CustomTable>
33 </Fragment>
34 </Wix>