using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Ips.Library.Basic; using Ips.Library.DxpLib; using Microsoft.Extensions.Hosting; namespace Ips.Sps.BackgroundServices { public class PluginStartService : BackgroundService { protected override async Task ExecuteAsync(CancellationToken stoppingToken) { await Task.Run(() => { try { var str = ToolConfig.GetAppSetting("Plugins"); if (string.IsNullOrWhiteSpace(str)) return; var arr = str.Split(',', StringSplitOptions.RemoveEmptyEntries); var dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Plugins"); if (!Directory.Exists(dir)) return; foreach (var item in arr) { var file =Directory.GetFiles(dir, item, SearchOption.AllDirectories).FirstOrDefault(); if (file == null) continue; IpsLogger.Error($"正在启动子程序[{item}]"); Process.Start(file); } } catch (Exception ex) { IpsLogger.Error("子程序启动异常!", ex); } }); } } }