in build/DependencyHelper.cs [95:132]
public static RuntimeFallbacks GetDefaultRuntimeFallbacks(string rid)
{
var ridGraph = _ridGraph.Value;
var runtimeFallbacks = new RuntimeFallbacks(rid);
var fallbacks = new List<string>();
if (!ridGraph.ContainsKey(rid))
{
rid = GetDefaultPlatformRid();
fallbacks.Add(rid);
}
var queue = new Queue<string>(ridGraph[rid]);
while (queue.Count > 0)
{
var currentRid = queue.Dequeue();
if (fallbacks.Contains(currentRid))
{
continue;
}
fallbacks.Add(currentRid);
foreach (var fallbackRid in ridGraph[currentRid])
{
if (!fallbacks.Contains(fallbackRid, StringComparer.OrdinalIgnoreCase))
{
queue.Enqueue(fallbackRid);
}
}
}
runtimeFallbacks.Fallbacks = fallbacks.AsReadOnly();
return runtimeFallbacks;
}