.Net插件化开发插件说明生成
编译时生成插件描述文件
.Net插件化开发基本上时创建一个插件接口,然后每个插件继承这个接口进行功能开发,然后在宿主程序启动时反射生成每个插件的实例,但是有时候想采用动态加载时,就需要有个描述文件告诉宿主程序插件的信息,来引导宿主加载插件
我在开发过程中使用过以下两种方法
单独的程序生成描述文件
就是写一个单独的控制台程序,用来对插件项目的输出文件生成描述文件:
- 编写一个控制台程序
ProFileGenerator
,接收插件的输出文件做参数; - 加载插件输出文件程序集,然后反射获取插件信息;
- 把插件信息格式化后输出到描述文件中;
- 在插件项目的生成事件中添加代码
ProFileGenerator.exe $(TargetPath)
- 为了
ProFileGenerator.exe
程序能自动拷贝到插件输出目录中,我们还可以在插件项目中添加项目引用ProFileGenerator
- 至此,在插件生成后就会自动生成插件的描述文件
自定义一个BuildTask
就是在插件项目生成时自动执行一个任务
参考文章:浅谈VS编译自定义编译任务—MSBuild Task(csproject) - 破狼
- 新建一个类库项目
Profi