【发布时间】:2019-03-26 22:16:45
【问题描述】:
我正在构建一个作业运行系统,其中有一个 .NET Core 控制台应用程序作为作业运行器,以及用户可扩展的作业 - 用户可以引用我的 NuGet 包,编写一个扩展我的作业类型的类,并实现执行方法。我想在 NuGet 包中提供所有控制台逻辑,这样引用它就可以构建一个可立即运行的控制台应用程序。我已经能够使用 NuGet 发布构建应用所需的构建目标,但我正在寻找一种方法来实际加载作业 dll。
我目前的解决方案是:
- Job-runner 通过反射加载其工作目录中的所有 dll
- Job-runner 检查所有这些 dll 中是否有实现所需类型的 dll
- Job-runner 创建作业类型的实例并执行作业
我想避免第 1 步,如果 NuGet 包只是为控制台应用程序提供了一个入口点,我相信我可以做到这一点。是否可以构建一个没有入口点的控制台应用程序并通过 NuGet 提供它,或者使用类库并将所有必需的 dll 加载到一个应用程序域中?
【问题讨论】:
标签: c# reflection .net-core nuget clr