mind基本完成,准备写文档

This commit is contained in:
艾竹
2023-03-19 23:26:14 +08:00
parent c2f4d3c706
commit 07ac28965e
28 changed files with 1363 additions and 211 deletions

View File

@@ -14,12 +14,20 @@ namespace AIStudio.Wpf.DiagramDesigner
{
static GlobalType()
{
string rootPath = System.AppDomain.CurrentDomain.BaseDirectory;
AllAssemblies = Directory.GetFiles(rootPath, "*.dll")
.Where(x => AssemblyPattern.Any(y => new FileInfo(x).Name.Contains(y)))
.Select(x => Assembly.LoadFrom(x))
.Where(x => !x.IsDynamic)
.ToList();
//string rootPath = System.AppDomain.CurrentDomain.BaseDirectory;
//AllAssemblies = Directory.GetFiles(rootPath, "*.dll")
// .Where(x => AssemblyPattern.Any(y => new FileInfo(x).Name.Contains(y)))
// .Select(x => Assembly.LoadFrom(x))
// .Where(x => !x.IsDynamic)
// .ToList();
//var refAssembyNames = Assembly.GetEntryAssembly().GetReferencedAssemblies();
//foreach (var asslembyNames in refAssembyNames)
//{
// Assembly.Load(asslembyNames);
//}
AllAssemblies = AppDomain.CurrentDomain.GetReferanceAssemblies().Where(x => x.FullName.StartsWith("AIStudio")).ToList();
AllAssemblies.ForEach(aAssembly => {
try
@@ -33,6 +41,29 @@ namespace AIStudio.Wpf.DiagramDesigner
});
}
public static List<Assembly> GetReferanceAssemblies(this AppDomain domain)
{
var list = new List<Assembly>();
domain.GetAssemblies().ToList().ForEach(i =>
{
GetReferanceAssemblies(i, list);
});
return list;
}
static void GetReferanceAssemblies(Assembly assembly, List<Assembly> list)
{
assembly.GetReferencedAssemblies().ToList().ForEach(i =>
{
var ass = Assembly.Load(i);
if (!list.Contains(ass))
{
list.Add(ass);
GetReferanceAssemblies(ass, list);
}
});
}
/// <summary>
/// 解决方案程序集匹配名
/// </summary>