| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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);
- }
- });
- }
- }
- }
|