diff --git a/Modules/PluginManagement/PluginLoader.cs b/Modules/PluginManagement/PluginLoader.cs
index a0f37de..858cca9 100644
--- a/Modules/PluginManagement/PluginLoader.cs
+++ b/Modules/PluginManagement/PluginLoader.cs
@@ -6,7 +6,7 @@ namespace sharwapi.Core.Modules.PluginManagement;
///
/// 插件加载器
-/// 负责从 Plugins 目录加载实现了 IApiPlugin 的程序集
+/// 负责从 plugins 目录加载实现了 IApiPlugin 的程序集
///
public class PluginLoader
{
@@ -33,7 +33,7 @@ public List LoadPlugins()
var loadedPlugins = new List();
// 获取插件目录路径
- string pluginsPath = Path.Combine(AppContext.BaseDirectory, "Plugins");
+ string pluginsPath = Path.Combine(AppContext.BaseDirectory, "plugins");
// 检查插件目录是否存在,如果不存在则创建
if (!Directory.Exists(pluginsPath))
@@ -50,7 +50,7 @@ public List LoadPlugins()
return loadedPlugins;
}
- // 遍历 Plugins 目录下的所有 DLL 文件
+ // 遍历 plugins 目录下的所有 DLL 文件
foreach (var dllPath in Directory.GetFiles(pluginsPath, "*.dll"))
{
try
diff --git a/Modules/Services/ServiceRegistration.cs b/Modules/Services/ServiceRegistration.cs
index dbfc0a9..6f41f46 100644
--- a/Modules/Services/ServiceRegistration.cs
+++ b/Modules/Services/ServiceRegistration.cs
@@ -51,6 +51,9 @@ private void RegisterPluginServices(IApiPlugin plugin, IConfiguration configurat
// 确保配置文件存在,如果不存在则从插件的默认配置生成
EnsurePluginConfigFile(plugin, configPath);
+ // 确保插件专属 data 目录存在
+ EnsurePluginDataDirectory(plugin);
+
// 为插件构建独立的配置对象,支持热重载
var pluginConfig = new ConfigurationBuilder()
.AddJsonFile(configPath, optional: true, reloadOnChange: true)
@@ -60,6 +63,26 @@ private void RegisterPluginServices(IApiPlugin plugin, IConfiguration configurat
plugin.RegisterServices(_services, pluginConfig);
}
+ ///
+ /// 确保插件专属 data 目录存在
+ ///
+ private void EnsurePluginDataDirectory(IApiPlugin plugin)
+ {
+ var dataDir = plugin.DataDirectory;
+ if (!Directory.Exists(dataDir))
+ {
+ try
+ {
+ Directory.CreateDirectory(dataDir);
+ _logger.LogInformation("Created data directory for plugin {PluginName} at {DataDir}", plugin.Name, dataDir);
+ }
+ catch (Exception ex)
+ {
+ _logger.LogError(ex, "Failed to create data directory for plugin {PluginName} at {DataDir}", plugin.Name, dataDir);
+ }
+ }
+ }
+
///
/// 确保插件配置文件存在
/// 如果配置文件不存在,从插件的 DefaultConfig 生成默认配置
diff --git a/appsettings.json b/appsettings.json
index f7b5ccd..17c73c5 100644
--- a/appsettings.json
+++ b/appsettings.json
@@ -32,7 +32,7 @@
"Urls": "http://localhost:5000",
"ApiInfo": {
"Name": "Sharw's API",
- "Version": "0.1.0"
+ "Version": "0.2.2"
},
"RouteOverride": {
}