插件系统试验
This commit is contained in:
lincube
2026-03-09 12:27:33 +08:00
parent c9f92a4755
commit cab35f4c22
49 changed files with 3355 additions and 158 deletions

View File

@@ -17,6 +17,9 @@ namespace LanMountainDesktop;
public partial class App : Application
{
private SettingsWindow? _traySettingsWindow;
private PluginRuntimeService? _pluginRuntimeService;
public PluginRuntimeService? PluginRuntimeService => _pluginRuntimeService;
public override void Initialize()
{
@@ -28,6 +31,7 @@ public partial class App : Application
public override void OnFrameworkInitializationCompleted()
{
LinuxDesktopEntryInstaller.EnsureInstalled();
InitializePluginRuntime();
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
@@ -172,4 +176,18 @@ public partial class App : Application
// Keep startup resilient if user profile folders are unavailable.
}
}
private void InitializePluginRuntime()
{
try
{
_pluginRuntimeService?.Dispose();
_pluginRuntimeService = new PluginRuntimeService();
_pluginRuntimeService.LoadInstalledPlugins();
}
catch (Exception ex)
{
Debug.WriteLine($"[PluginRuntime] Failed to initialize plugin runtime: {ex}");
}
}
}