Report multiple missing files in one build
Rob Mensching committed
Nov 6, 2022 at 17:57 UTC
a4e1959094cdf2f868479dc62aeb2cb92def51b7
2 files changed
+15
-6
src/wix/WixToolset.Core/Bind/ResolveFieldsCommand.cs
+3
-1
@@ -86,6 +86,8 @@ namespace WixToolset.Core.Bind
86
}
87
}
88
89
+ var beforeErrorCount = this.Messaging.ErrorCount;
90
+
91
// Check to make sure we're in a scenario where we can handle variable resolution.
92
if (null != delayedFields)
93
{
@@ -110,7 +112,7 @@ namespace WixToolset.Core.Bind
112
}
113
114
// Move to next symbol if we've hit an error resolving variables.
113
- if (this.Messaging.EncounteredError) // TODO: make this error handling more specific to just the failure to resolve variables in this field.
115
+ if (beforeErrorCount < this.Messaging.ErrorCount)
116
{
117
continue;
118
}
src/wix/test/WixToolsetTest.CoreIntegration/MsiFixture.cs
+12
-5
@@ -66,6 +66,7 @@ namespace WixToolsetTest.CoreIntegration
66
{
67
var baseFolder = fs.GetFolder();
68
var intermediateFolder = Path.Combine(baseFolder, "obj");
69
+ var binFolder = Path.Combine(baseFolder, "bin");
70
71
var result = WixRunner.Execute(new[]
72
{
@@ -76,18 +77,24 @@ namespace WixToolsetTest.CoreIntegration
77
"-bindpath", Path.Combine(folder, "does-not-exist"),
78
"-bindpath", Path.Combine(folder, "also-does-not-exist"),
79
"-intermediateFolder", intermediateFolder,
79
- "-o", Path.Combine(baseFolder, @"bin\test.msi")
80
+ "-o", Path.Combine(binFolder, "test.msi")
81
}, out var messages);
82
Assert.Equal(103, result);
83
83
- var error = messages.Single(m => m.Level == MessageLevel.Error);
84
- var errorMessage = error.ToString();
84
+ var errorMessages = messages.Select(m => m.ToString().Replace(folder, "<folder>")).ToArray();
85
+ WixAssert.CompareLineByLine(new[]
86
+ {
87
+ @"The system cannot find the file 'test.txt' with type 'File'. The following paths were checked: test.txt, <folder>\does-not-exist\test.txt, <folder>\also-does-not-exist\test.txt",
88
+ @"The system cannot find the file 'test.txt' with type 'File'. The following paths were checked: test.txt, <folder>\does-not-exist\test.txt, <folder>\also-does-not-exist\test.txt",
89
+ }, errorMessages);
90
+
91
+ var errorMessage = errorMessages.First();
92
var checkedPaths = errorMessage.Substring(errorMessage.IndexOf(':') + 1).Split(new[] { ',' }).Select(s => s.Trim()).ToArray();
93
WixAssert.CompareLineByLine(new[]
94
{
95
"test.txt",
89
- Path.Combine(folder, "does-not-exist", "test.txt"),
90
- Path.Combine(folder, "also-does-not-exist", "test.txt"),
96
+ Path.Combine("<folder>", "does-not-exist", "test.txt"),
97
+ Path.Combine("<folder>", "also-does-not-exist", "test.txt"),
98
}, checkedPaths);
99
}
100
}