From 40014e6e41f1ec017a07b7a620b3c700807d0519 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期日, 23 三月 2025 13:51:00 +0800
Subject: [PATCH] 新增DOControl

---
 WPFProject/App.xaml.cs |   26 +++++++++++++++++++++++++-
 1 files changed, 25 insertions(+), 1 deletions(-)

diff --git a/WPFProject/App.xaml.cs b/WPFProject/App.xaml.cs
index cfb8c29..545b7cc 100644
--- a/WPFProject/App.xaml.cs
+++ b/WPFProject/App.xaml.cs
@@ -4,6 +4,8 @@
 using log4net;
 using Panuon.WPF.UI;
 using System;
+using System.IO;
+using System.Reflection;
 using System.Threading;
 using System.Windows;
 using WPFProject.Utils;
@@ -34,9 +36,11 @@
         private static Mutex mutex;
         private void Application_Startup(object sender, StartupEventArgs e)
         {
-            mutex = new System.Threading.Mutex(true, "TestPlatform_OnlyRun_CRNS");
+            mutex = new Mutex(true, "TestPlatform_OnlyRun_CRNS");
             if (mutex.WaitOne(0, false))
             {
+                AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
+
                 LangUtil.Load();
                 SystemSetting.SystemSettingChanged += SystemSetting_SystemSettingChanged;
                 ToastHelper.Register(new MainToastHandler());
@@ -51,6 +55,26 @@
             }
         }
 
+        private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
+        {
+            // 鑾峰彇璇锋眰鍔犺浇鐨勭▼搴忛泦鍚嶇О
+            string assemblyName = new AssemblyName(args.Name).Name;
+
+            string[] dirs = new string[] { "3rds", "Libs" };
+
+            foreach (string dir in dirs)
+            {
+                string dllPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, dir, $"{assemblyName}.dll");
+                if (File.Exists(dllPath))
+                {
+                    // 濡傛灉渚濊禆 DLL 瀛樺湪锛屽垯鍔犺浇骞惰繑鍥炲畠
+                    return Assembly.LoadFrom(dllPath);
+                }
+            }
+            // 鍚﹀垯杩斿洖 null
+            return null;
+        }
+
         private void SystemSetting_SystemSettingChanged(object sender, SystemSetting e)
         {
             LangUtil.LoadLang();

--
Gitblit v1.9.1