aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2020-06-12 06:51:37 -0700
committerRob Mensching <rob@firegiant.com>2020-06-12 08:20:50 -0700
commit49ce77951ca980848b275cef082309c49b117f47 (patch)
treea57e22fef0451b65edf6744440b84af04704c9e7 /src/test
parenta82e58ab8a47f4b5d189213da4d7c1dea8437972 (diff)
downloadwix-49ce77951ca980848b275cef082309c49b117f47.tar.gz
wix-49ce77951ca980848b275cef082309c49b117f47.tar.bz2
wix-49ce77951ca980848b275cef082309c49b117f47.zip
Fix custom table column values case in compiler and decompiler
Diffstat (limited to 'src/test')
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs244
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs179
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs33
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs4
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs2
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj1
6 files changed, 281 insertions, 182 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs b/src/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs
new file mode 100644
index 00000000..85a0ffae
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/CustomTableFixture.cs
@@ -0,0 +1,244 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolsetTest.CoreIntegration
4{
5 using System.IO;
6 using Microsoft.Build.Tasks;
7 using WixBuildTools.TestSupport;
8 using WixToolset.Core.TestPackage;
9 using Xunit;
10
11 public class CustomTableFixture
12 {
13 [Fact]
14 public void PopulatesCustomTable1()
15 {
16 var folder = TestData.Get(@"TestData");
17
18 using (var fs = new DisposableFileSystem())
19 {
20 var baseFolder = fs.GetFolder();
21 var intermediateFolder = Path.Combine(baseFolder, "obj");
22 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
23
24 var result = WixRunner.Execute(new[]
25 {
26 "build",
27 Path.Combine(folder, "CustomTable", "CustomTable.wxs"),
28 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
29 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
30 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
31 "-intermediateFolder", intermediateFolder,
32 "-o", msiPath
33 });
34
35 result.AssertSuccess();
36
37 Assert.True(File.Exists(msiPath));
38 var results = Query.QueryDatabase(msiPath, new[] { "CustomTable1" });
39 Assert.Equal(new[]
40 {
41 "CustomTable1:Row1\ttest.txt",
42 "CustomTable1:Row2\ttest.txt",
43 }, results);
44 }
45 }
46
47 [Fact]
48 public void PopulatesCustomTableWithLocalization()
49 {
50 var folder = TestData.Get(@"TestData");
51
52 using (var fs = new DisposableFileSystem())
53 {
54 var baseFolder = fs.GetFolder();
55 var intermediateFolder = Path.Combine(baseFolder, "obj");
56 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
57
58 var result = WixRunner.Execute(new[]
59 {
60 "build",
61 Path.Combine(folder, "CustomTable", "LocalizedCustomTable.wxs"),
62 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
63 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
64 "-loc", Path.Combine(folder, "CustomTable", "LocalizedCustomTable.en-us.wxl"),
65 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
66 "-intermediateFolder", intermediateFolder,
67 "-o", msiPath
68 });
69
70 result.AssertSuccess();
71
72 Assert.True(File.Exists(msiPath));
73 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableLocalized" });
74 Assert.Equal(new[]
75 {
76 "CustomTableLocalized:Row1\tThis is row one",
77 "CustomTableLocalized:Row2\tThis is row two",
78 }, results);
79 }
80 }
81
82 [Fact]
83 public void PopulatesCustomTableWithFilePath()
84 {
85 var folder = TestData.Get(@"TestData");
86
87 using (var fs = new DisposableFileSystem())
88 {
89 var baseFolder = fs.GetFolder();
90 var intermediateFolder = Path.Combine(baseFolder, "obj");
91 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
92
93 var result = WixRunner.Execute(new[]
94 {
95 "build",
96 Path.Combine(folder, "CustomTable", "CustomTableWithFile.wxs"),
97 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
98 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
99 "-bindpath", Path.Combine(folder, "CustomTable", "data"),
100 "-intermediateFolder", intermediateFolder,
101 "-o", msiPath
102 });
103
104 result.AssertSuccess();
105
106 Assert.True(File.Exists(msiPath));
107 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableWithFile" });
108 Assert.Equal(new[]
109 {
110 "CustomTableWithFile:Row1\t[Binary data]",
111 "CustomTableWithFile:Row2\t[Binary data]",
112 }, results);
113 }
114 }
115
116 [Fact]
117 public void PopulatesCustomTableWithFilePathSerialized()
118 {
119 var folder = TestData.Get(@"TestData");
120
121 using (var fs = new DisposableFileSystem())
122 {
123 var baseFolder = fs.GetFolder();
124 var intermediateFolder = Path.Combine(baseFolder, "obj");
125 var wixlibPath = Path.Combine(baseFolder, @"bin\test.wixlib");
126 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
127
128 var result = WixRunner.Execute(new[]
129 {
130 "build",
131 Path.Combine(folder, "CustomTable", "CustomTableWithFile.wxs"),
132 "-bindpath", Path.Combine(folder, "CustomTable", "data"),
133 "-intermediateFolder", intermediateFolder,
134 "-o", wixlibPath
135 });
136
137 result.AssertSuccess();
138
139 result = WixRunner.Execute(new[]
140 {
141 "build",
142 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
143 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
144 "-lib", wixlibPath,
145 "-bindpath", Path.Combine(folder, "CustomTable", "data"),
146 "-intermediateFolder", intermediateFolder,
147 "-o", msiPath
148 });
149
150 result.AssertSuccess();
151
152 Assert.True(File.Exists(msiPath));
153 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableWithFile" });
154 Assert.Equal(new[]
155 {
156 "CustomTableWithFile:Row1\t[Binary data]",
157 "CustomTableWithFile:Row2\t[Binary data]",
158 }, results);
159 }
160 }
161
162 [Fact]
163 public void UnrealCustomTableIsNotPresentInMsi()
164 {
165 var folder = TestData.Get(@"TestData");
166
167 using (var fs = new DisposableFileSystem())
168 {
169 var baseFolder = fs.GetFolder();
170 var intermediateFolder = Path.Combine(baseFolder, "obj");
171 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
172
173 var result = WixRunner.Execute(new[]
174 {
175 "build",
176 Path.Combine(folder, "CustomTable", "CustomTable.wxs"),
177 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
178 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
179 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
180 "-intermediateFolder", intermediateFolder,
181 "-o", msiPath
182 });
183
184 result.AssertSuccess();
185
186 Assert.True(File.Exists(msiPath));
187 var results = Query.QueryDatabase(msiPath, new[] { "CustomTable2" });
188 Assert.Empty(results);
189 }
190 }
191
192 [Fact]
193 public void CanCompileAndDecompile()
194 {
195 var folder = TestData.Get(@"TestData");
196 var expectedFile = Path.Combine(folder, "CustomTable", "CustomTable-Expected.wxs");
197
198 using (var fs = new DisposableFileSystem())
199 {
200 var baseFolder = fs.GetFolder();
201 var intermediateFolder = Path.Combine(baseFolder, "obj");
202 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
203 var decompiledWxsPath = Path.Combine(baseFolder, @"decompiled.wxs");
204
205 var result = WixRunner.Execute(new[]
206 {
207 "build",
208 Path.Combine(folder, "CustomTable", "CustomTable.wxs"),
209 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
210 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
211 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
212 "-intermediateFolder", intermediateFolder,
213 "-o", msiPath
214 });
215
216 result.AssertSuccess();
217 Assert.True(File.Exists(msiPath));
218
219 result = WixRunner.Execute(new[]
220 {
221 "decompile", msiPath,
222 "-intermediateFolder", intermediateFolder,
223 "-o", decompiledWxsPath
224 });
225
226 result.AssertSuccess();
227
228 CompareLineByLine(expectedFile, decompiledWxsPath);
229 }
230 }
231
232 private static void CompareLineByLine(string expectedFile, string actualFile)
233 {
234 var expectedLines = File.ReadAllLines(expectedFile);
235 var actualLines = File.ReadAllLines(actualFile);
236 for (var i = 0; i < expectedLines.Length; ++i)
237 {
238 Assert.True(actualLines.Length > i, $"{i}: Expected file longer than actual file");
239 Assert.Equal($"{i}: {expectedLines[i]}", $"{i}: {actualLines[i]}");
240 }
241 Assert.True(expectedLines.Length == actualLines.Length, "Actual file longer than expected file");
242 }
243 }
244}
diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
index 78a8f0a4..70d6612e 100644
--- a/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/MsiQueryFixture.cs
@@ -439,185 +439,6 @@ namespace WixToolsetTest.CoreIntegration
439 } 439 }
440 440
441 [Fact] 441 [Fact]
442 public void PopulatesCustomTable1()
443 {
444 var folder = TestData.Get(@"TestData");
445
446 using (var fs = new DisposableFileSystem())
447 {
448 var baseFolder = fs.GetFolder();
449 var intermediateFolder = Path.Combine(baseFolder, "obj");
450 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
451
452 var result = WixRunner.Execute(new[]
453 {
454 "build",
455 Path.Combine(folder, "CustomTable", "CustomTable.wxs"),
456 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
457 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
458 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
459 "-intermediateFolder", intermediateFolder,
460 "-o", msiPath
461 });
462
463 result.AssertSuccess();
464
465 Assert.True(File.Exists(msiPath));
466 var results = Query.QueryDatabase(msiPath, new[] { "CustomTable1" });
467 Assert.Equal(new[]
468 {
469 "CustomTable1:Row1\ttest.txt",
470 "CustomTable1:Row2\ttest.txt",
471 }, results);
472 }
473 }
474
475 [Fact]
476 public void PopulatesCustomTableWithLocalization()
477 {
478 var folder = TestData.Get(@"TestData");
479
480 using (var fs = new DisposableFileSystem())
481 {
482 var baseFolder = fs.GetFolder();
483 var intermediateFolder = Path.Combine(baseFolder, "obj");
484 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
485
486 var result = WixRunner.Execute(new[]
487 {
488 "build",
489 Path.Combine(folder, "CustomTable", "LocalizedCustomTable.wxs"),
490 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
491 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
492 "-loc", Path.Combine(folder, "CustomTable", "LocalizedCustomTable.en-us.wxl"),
493 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
494 "-intermediateFolder", intermediateFolder,
495 "-o", msiPath
496 });
497
498 result.AssertSuccess();
499
500 Assert.True(File.Exists(msiPath));
501 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableLocalized" });
502 Assert.Equal(new[]
503 {
504 "CustomTableLocalized:Row1\tThis is row one",
505 "CustomTableLocalized:Row2\tThis is row two",
506 }, results);
507 }
508 }
509
510 [Fact]
511 public void PopulatesCustomTableWithFilePath()
512 {
513 var folder = TestData.Get(@"TestData");
514
515 using (var fs = new DisposableFileSystem())
516 {
517 var baseFolder = fs.GetFolder();
518 var intermediateFolder = Path.Combine(baseFolder, "obj");
519 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
520
521 var result = WixRunner.Execute(new[]
522 {
523 "build",
524 Path.Combine(folder, "CustomTable", "CustomTableWithFile.wxs"),
525 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
526 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
527 "-bindpath", Path.Combine(folder, "CustomTable", "data"),
528 "-intermediateFolder", intermediateFolder,
529 "-o", msiPath
530 });
531
532 result.AssertSuccess();
533
534 Assert.True(File.Exists(msiPath));
535 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableWithFile" });
536 Assert.Equal(new[]
537 {
538 "CustomTableWithFile:Row1\t[Binary data]",
539 "CustomTableWithFile:Row2\t[Binary data]",
540 }, results);
541 }
542 }
543
544 [Fact]
545 public void PopulatesCustomTableWithFilePathSerialized()
546 {
547 var folder = TestData.Get(@"TestData");
548
549 using (var fs = new DisposableFileSystem())
550 {
551 var baseFolder = fs.GetFolder();
552 var intermediateFolder = Path.Combine(baseFolder, "obj");
553 var wixlibPath = Path.Combine(baseFolder, @"bin\test.wixlib");
554 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
555
556 var result = WixRunner.Execute(new[]
557 {
558 "build",
559 Path.Combine(folder, "CustomTable", "CustomTableWithFile.wxs"),
560 "-bindpath", Path.Combine(folder, "CustomTable", "data"),
561 "-intermediateFolder", intermediateFolder,
562 "-o", wixlibPath
563 });
564
565 result.AssertSuccess();
566
567 result = WixRunner.Execute(new[]
568 {
569 "build",
570 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
571 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
572 "-lib", wixlibPath,
573 "-bindpath", Path.Combine(folder, "CustomTable", "data"),
574 "-intermediateFolder", intermediateFolder,
575 "-o", msiPath
576 });
577
578 result.AssertSuccess();
579
580 Assert.True(File.Exists(msiPath));
581 var results = Query.QueryDatabase(msiPath, new[] { "CustomTableWithFile" });
582 Assert.Equal(new[]
583 {
584 "CustomTableWithFile:Row1\t[Binary data]",
585 "CustomTableWithFile:Row2\t[Binary data]",
586 }, results);
587 }
588 }
589
590 [Fact]
591 public void UnrealCustomTableIsNotPresentInMsi()
592 {
593 var folder = TestData.Get(@"TestData");
594
595 using (var fs = new DisposableFileSystem())
596 {
597 var baseFolder = fs.GetFolder();
598 var intermediateFolder = Path.Combine(baseFolder, "obj");
599 var msiPath = Path.Combine(baseFolder, @"bin\test.msi");
600
601 var result = WixRunner.Execute(new[]
602 {
603 "build",
604 Path.Combine(folder, "CustomTable", "CustomTable.wxs"),
605 Path.Combine(folder, "ProductWithComponentGroupRef", "MinimalComponentGroup.wxs"),
606 Path.Combine(folder, "ProductWithComponentGroupRef", "Product.wxs"),
607 "-bindpath", Path.Combine(folder, "SingleFile", "data"),
608 "-intermediateFolder", intermediateFolder,
609 "-o", msiPath
610 });
611
612 result.AssertSuccess();
613
614 Assert.True(File.Exists(msiPath));
615 var results = Query.QueryDatabase(msiPath, new[] { "CustomTable2" });
616 Assert.Empty(results);
617 }
618 }
619
620 [Fact]
621 public void PopulatesDirectoryTableWithValidDefaultDir() 442 public void PopulatesDirectoryTableWithValidDefaultDir()
622 { 443 {
623 var folder = TestData.Get(@"TestData"); 444 var folder = TestData.Get(@"TestData");
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs
new file mode 100644
index 00000000..68386612
--- /dev/null
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable-Expected.wxs
@@ -0,0 +1,33 @@
1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Product Id="{83F9C623-26FE-42AB-951E-170022117F54}" Codepage="1252" Language="1033" Manufacturer="Example Corporation" Name="MsiPackage" UpgradeCode="{12E4699F-E774-4D05-8A01-5BDD41BBA127}" Version="1.0.0.0">
4 <Package Description="MsiPackage" InstallerVersion="500" Languages="1033" Manufacturer="Example Corporation" Platform="x86" />
5 <CustomTable Id="CustomTable1">
6 <Column Id="Column1" PrimaryKey="yes" Type="string" Width="0" Category="text" Description="The first custom column." />
7 <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" Description="The custom table's Component reference" />
8 <Row>
9 <Data Column="Column1">Row1</Data>
10 <Data Column="Component_">test.txt</Data>
11 </Row>
12 <Row>
13 <Data Column="Column1">Row2</Data>
14 <Data Column="Component_">test.txt</Data>
15 </Row>
16 </CustomTable>
17 <Directory Id="TARGETDIR" Name="SourceDir">
18 <Directory Id="ProgramFilesFolder">
19 <Directory Id="INSTALLFOLDER" Name="MsiPackage" ShortName="oekcr5lq">
20 <Component Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Guid="{E597A58A-03CB-50D8-93E3-DABA263F233A}" Win64="no">
21 <File Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" Name="test.txt" KeyPath="yes" Source="SourceDir\\MsiPackage\test.txt" />
22 </Component>
23 </Directory>
24 </Directory>
25 </Directory>
26 <Feature Id="ProductFeature" Level="1" Title="MsiPackageTitle">
27 <ComponentRef Id="filcV1yrx0x8wJWj4qMzcH21jwkPko" />
28 </Feature>
29 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
30 <Media Id="1" />
31 <Property Id="ALLUSERS" Value="1" />
32 </Product>
33</Wix>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs
index 8eb4fbf9..51aee5f2 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/CustomTable/CustomTable.wxs
@@ -6,8 +6,8 @@
6 </ComponentGroup> 6 </ComponentGroup>
7 7
8 <CustomTable Id="CustomTable1"> 8 <CustomTable Id="CustomTable1">
9 <Column Id="Column1" Type="string" PrimaryKey="yes" /> 9 <Column Id="Column1" Type="string" PrimaryKey="yes" Category="text" Modularize="column" Description="The first custom column." />
10 <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" /> 10 <Column Id="Component_" Type="string" Width="72" KeyTable="Component" KeyColumn="1" Description="The custom table's Component reference" />
11 <Row> 11 <Row>
12 <Data Column="Column1">Row1</Data> 12 <Data Column="Column1">Row1</Data>
13 <Data Column="Component_">test.txt</Data> 13 <Data Column="Component_">test.txt</Data>
diff --git a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs
index 0d1e89e6..e0e5345a 100644
--- a/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs
+++ b/src/test/WixToolsetTest.CoreIntegration/TestData/ProductWithComponentGroupRef/Product.wxs
@@ -1,6 +1,6 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> 2<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
3 <Product Id="*" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="12E4699F-E774-4D05-8A01-5BDD41BBA127"> 3 <Product Id="83f9c623-26fe-42ab-951e-170022117f54" Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="12E4699F-E774-4D05-8A01-5BDD41BBA127">
4 <Package InstallerVersion="500" Compressed="no" InstallScope="perMachine" /> 4 <Package InstallerVersion="500" Compressed="no" InstallScope="perMachine" />
5 5
6 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 6 <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
diff --git a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj b/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
index 51775cd0..7ede6655 100644
--- a/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
+++ b/src/test/WixToolsetTest.CoreIntegration/WixToolsetTest.CoreIntegration.csproj
@@ -34,6 +34,7 @@
34 <Content Include="TestData\Class\IconIndex0.wxs" CopyToOutputDirectory="PreserveNewest" /> 34 <Content Include="TestData\Class\IconIndex0.wxs" CopyToOutputDirectory="PreserveNewest" />
35 <Content Include="TestData\Class\OldClassTableDef.msi" CopyToOutputDirectory="PreserveNewest" /> 35 <Content Include="TestData\Class\OldClassTableDef.msi" CopyToOutputDirectory="PreserveNewest" />
36 <Content Include="TestData\CustomAction\UnscheduledCustomAction.wxs" CopyToOutputDirectory="PreserveNewest" /> 36 <Content Include="TestData\CustomAction\UnscheduledCustomAction.wxs" CopyToOutputDirectory="PreserveNewest" />
37 <Content Include="TestData\CustomTable\CustomTable-Expected.wxs" CopyToOutputDirectory="PreserveNewest" />
37 <Content Include="TestData\CustomTable\CustomTableWithFile.wxs" CopyToOutputDirectory="PreserveNewest" /> 38 <Content Include="TestData\CustomTable\CustomTableWithFile.wxs" CopyToOutputDirectory="PreserveNewest" />
38 <Content Include="TestData\CustomTable\data\file1.txt" CopyToOutputDirectory="PreserveNewest" /> 39 <Content Include="TestData\CustomTable\data\file1.txt" CopyToOutputDirectory="PreserveNewest" />
39 <Content Include="TestData\CustomTable\data\test.txt" CopyToOutputDirectory="PreserveNewest" /> 40 <Content Include="TestData\CustomTable\data\test.txt" CopyToOutputDirectory="PreserveNewest" />