Skip to content

Commit 298bb03

Browse files
committed
Guard against missing deps
1 parent dc20de0 commit 298bb03

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/Tasks/Microsoft.NET.Build.Tasks/DependencyContextBuilder.cs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,10 @@ public DependencyContext Build(string[] userRuntimeAssemblies = null)
317317
{
318318
foreach (var dependency in reference.Library.Dependencies)
319319
{
320-
references[dependency.Name].Dependents.Add(reference.Library.Name);
320+
if (references.TryGetValue(dependency.Name, out var dep))
321+
{
322+
dep.Dependents.Add(reference.Library.Name);
323+
}
321324
}
322325
}
323326

@@ -330,18 +333,24 @@ public DependencyContext Build(string[] userRuntimeAssemblies = null)
330333

331334
if (lib.Library.RuntimeAssemblyGroups.Count == 0 && lib.Library.NativeLibraryGroups.Count == 0 && lib.Library.ResourceAssemblies.Count == 0)
332335
{
333-
if (lib.Library.Dependencies.All(d => !references.ContainsKey(d.Name) || references[d.Name].Dependents.Count > 1))
336+
if (lib.Library.Dependencies.All(d => !references.TryGetValue(d.Name, out var dependency) || dependency.Dependents.Count > 1))
334337
{
335338
runtimeLibraries.Remove(lib);
336339
references.Remove(lib.Library.Name);
337340
foreach (var dependency in lib.Library.Dependencies)
338341
{
339-
references[dependency.Name].Dependents.Remove(lib.Library.Name);
342+
if (references.TryGetValue(dependency.Name, out ModifiableRuntimeLibrary? value))
343+
{
344+
value.Dependents.Remove(lib.Library.Name);
345+
}
340346
}
341347

342348
foreach (var dependent in lib.Dependents)
343349
{
344-
temp.Add(references[dependent]);
350+
if (references.TryGetValue(dependent, out var dep))
351+
{
352+
temp.Add(dep);
353+
}
345354
}
346355
}
347356
}

0 commit comments

Comments
 (0)