Skip to content

Commit 8e67de7

Browse files
committed
Display WHICH source item has Private=false.
1 parent d4256a2 commit 8e67de7

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

src/StructuredLogViewer/Analyzers/ResolveAssemblyReferenceAnalyzer/ResolveAssemblyReferenceAnalyzer.cs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,14 @@ public void AnalyzeResolveAssemblyReference(Task rar)
6565
}
6666
}
6767

68+
var thisReferenceName = ParseReferenceName(reference.Name);
69+
6870
if (reference.Name.StartsWith("Dependency ") || reference.Name.StartsWith("Unified Dependency "))
6971
{
7072
bool foundNotCopyLocalBecauseMetadata = false;
7173
var requiredBy = new List<Item>();
74+
Item notCopyLocalMessage = null;
75+
7276
foreach (var message in reference.Children.OfType<Item>())
7377
{
7478
string text = message.Text;
@@ -79,6 +83,7 @@ public void AnalyzeResolveAssemblyReference(Task rar)
7983
else if (text == @"This reference is not ""CopyLocal"" because at least one source item had ""Private"" set to ""false"" and no source items had ""Private"" set to ""true"".")
8084
{
8185
foundNotCopyLocalBecauseMetadata = true;
86+
notCopyLocalMessage = message;
8287
}
8388
}
8489

@@ -105,6 +110,10 @@ public void AnalyzeResolveAssemblyReference(Task rar)
105110
if (metadata.Name == "Private")
106111
{
107112
sourceItem.AddChild(new Metadata() { Name = metadata.Name, Value = metadata.Value });
113+
if (notCopyLocalMessage != null)
114+
{
115+
notCopyLocalMessage.AddChild(new Message { Text = $"{foundSourceItem.ToString()} has {metadata.Name} set to {metadata.Value}" });
116+
}
108117
}
109118
}
110119
}
@@ -142,6 +151,30 @@ public void AnalyzeResolveAssemblyReference(Task rar)
142151
}
143152
}
144153

154+
private string ParseReferenceName(string name)
155+
{
156+
var quote = name.IndexOf('"');
157+
if (quote == -1)
158+
{
159+
return null;
160+
}
161+
162+
name = name.Substring(quote + 1);
163+
var comma = name.IndexOf(',');
164+
if (comma == -1)
165+
{
166+
quote = name.IndexOf('"');
167+
if (quote == -1)
168+
{
169+
return null;
170+
}
171+
172+
return name.Substring(0, quote);
173+
}
174+
175+
return name.Substring(0, comma);
176+
}
177+
145178
public void AppendFinalReport(Build build)
146179
{
147180
if (UsedLocations.Any())

0 commit comments

Comments
 (0)