yiyungent / PluginCore

🔌 ASP.NET Core lightweight plugin framework | ASP.NET Core 轻量级 插件框架 - 一分钟集成 | Vue.js frontend | JavaScript SDK
https://yiyungent.github.io/PluginCore/
GNU Lesser General Public License v3.0
413 stars 81 forks source link

已经部署好的系统,已经上传了两个dome里面的插件,重启了出现问题 #35

Open zenglei286 opened 6 months ago

zenglei286 commented 6 months ago

无论 PluginFinderV2 还是PluginFinderV1都出现了 protected virtual object ResolveUnregistered(Type type) { Exception innerException = null; foreach (var constructor in type.GetConstructors()) { try { //try to resolve constructor parameters var parameters = constructor.GetParameters().Select(parameter => { //var service = Resolve(parameter.ParameterType); var t = type; //var service = _serviceProvider.GetService(parameter.ParameterType); using (var scope = _serviceScopeFactory.CreateScope()) { var service = scope.ServiceProvider.GetService(parameter.ParameterType); if (service == null) throw new Exception("Unknown dependency"); return service; } });

         //all is ok, so create instance
         return Activator.CreateInstance(type, parameters.ToArray());
     }
     catch (Exception ex)
     {
         innerException = ex;
     }
 }

 throw new Exception("No constructor was found that had all the dependencies satisfied.", innerException);

} 这个里面的Unknown dependency 异常,上传的两个插件是HelloWorldPlugin和HexoPlugin

yiyungent commented 6 months ago

这上面的 plugins 里的插件很久没维护了,建议用 https://github.com/yiyungent/KnifeHub 里最近更新的来测试,以及你用的哪个版本的? 插件引用 PluginCore 版本最好与宿主版本对上,虽然有一定程度兼容,但大版本不一定

插件里的框架引用现在推荐用下方方式,插件很多地方没更新,不过文档更新了
https://yiyungent.github.io/PluginCore/zh/PluginDev/Guide/

<FrameworkReference Include="Microsoft.AspNetCore.App">
    <ExcludeAssets>runtime</ExcludeAssets>
</FrameworkReference>