From 7ff298c6834275b63b612af49651673689a39660 Mon Sep 17 00:00:00 2001 From: hutongqing <hutongqing@hnkhzn.com> Date: 星期三, 27 十一月 2024 11:33:18 +0800 Subject: [PATCH] 更新 --- WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/RuntimeExtension.cs | 20 +++++++++++--------- 1 files changed, 11 insertions(+), 9 deletions(-) diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/RuntimeExtension.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/RuntimeExtension.cs index cdd52bf..44ab7ab 100644 --- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/RuntimeExtension.cs +++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/RuntimeExtension.cs @@ -12,30 +12,32 @@ { public static class RuntimeExtension { + private static readonly List<string> ProjectAssemblies =new() { "WIDESEAWCS" }; /// <summary> /// 鑾峰彇椤圭洰绋嬪簭闆嗭紝鎺掗櫎鎵�鏈夌殑绯荤粺绋嬪簭闆�(Microsoft.***銆丼ystem.***绛�)銆丯uget涓嬭浇鍖� /// </summary> /// <returns></returns> public static IList<Assembly> GetAllAssemblies() { - var list = new List<Assembly>(); - var deps = DependencyContext.Default; - //鍙姞杞介」鐩腑鐨勭▼搴忛泦 - var libs = deps.CompileLibraries.Where(lib => !lib.Serviceable && lib.Type == "project"); //鎺掗櫎鎵�鏈夌殑绯荤粺绋嬪簭闆嗐�丯uget涓嬭浇鍖� - foreach (var lib in libs) + var assemblies = new List<Assembly>(); + var dllFiles = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.dll"); + + foreach (var dllFile in dllFiles) { + var fileName = Path.GetFileNameWithoutExtension(dllFile); + if (!ProjectAssemblies.Any(s => fileName.StartsWith(s))) continue; try { - var assembly = AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(lib.Name)); - list.Add(assembly); + var assembly = AssemblyLoadContext.Default.LoadFromAssemblyPath(dllFile); + assemblies.Add(assembly); } catch (Exception e) { - //Log.Debug(e, "GetAllAssemblies Exception:{ex}", e.Message); + Console.WriteLine($"Failed to load assembly: {fileName}. Error: {e.Message}"); } } - return list; + return assemblies; } public static Assembly GetAssembly(string assemblyName) -- Gitblit v1.9.3