public static PrjInfo Deal(PrjInfo prjInfo, Stack<PrjInfo> path)
{
foreach (var refAssembly in prjInfo.PrjRef.Where(item => (!root.Contains(item))))
{
if (path.Contains(refAssembly))
{
//发现环
Console.Write(refAssembly.AssemblyName + "<-");
while (path.Peek() != refAssembly)
{
Console.Write(path.Pop().AssemblyName + "<-");
}
Console.Write(refAssembly.AssemblyName + "\t Resolve it?[Y/n]\n");
//var decide = Console.ReadLine();
//if (decide == "Y")
//{
//root.Add(refAssembly);
//prjInfoDic.Remove(refAssembly.AssemblyName);
return refAssembly;
//}
}
path.Push(refAssembly);
var dealedPrj = Deal(refAssembly, path);
if (dealedPrj != null) return dealedPrj;
path.Pop();
}
return null;
}
private static void RebuildRef()