到这里我们来简单总结下怎么使用TaskCore.MainForm插件,在自己项目中安装TaskCore.Plugin的nuget包-》重写父类TPlugin的TPlugin_Load()方法-》生成自己的项目,拷贝项目的dll到TaskCore.MainForm运行包中-》在运行包中PluginXml文件夹中增加任务子类相同类名的xml文件并配置如上的配置信息-》增加CrossFiles.xml中的任务dll文件配置-》使用命令dotnet TaskCore.MainForm.dll运行服务插件,挺简单的吧
. win7和ubuntu16.04运行TaskCore.MainForm的两种方式和测试截图(也可认为.netcore项目在win7和ubuntu系统运行的两种方式)
由于环境影响,这里跨平台运行测试我只测试win7和ubuntu16.04,其他系统的发布测试希望朋友们在使用过程中得到结果告知我下谢谢;先来讲在win7中运行:
1. 安装了netcore sdk环境的发布运行
安装了sdk后直接可以在cmd命令中dotnet TaskCore.MainForm.dll来运行服务,开篇上面讲解的示例都是在安装了sdk后的截图,服务运行所需要的文件如图:
就只有这些文件(当然程序需要的某些平台依赖项使用的是安装的sdk中的文件,所以看起来很少实际应该包含netcore sdk里面的文件才能运行),通过命令运行的效果图:
2. 未安装netcore sdk环境的发布运行
在为安装sdk平台上系统上运行才是重点,这样才可以说是跨平台;首先,为了更好看效果我们复制一份如图的两个文件到TaskCore.MainForm01文件夹中:
没错,只需要这两个文件,然后我们需要修改project.json文件的内容如下注释的地方:
{ "version": "1.0.0-*", "buildOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.NETCore.App": { //"type": "platform", 跨平台发布需要注释 "version": "1.0.0" }, "System.IO.FileSystem": "4.0.1", "System.Reflection": "4.1.0", "System.Text.Encoding.CodePages": "4.0.1", "System.Threading.Timer": "4.0.1", "System.Xml.XDocument": "4.0.11", "TaskCore.Plugin": "1.0.0" }, "frameworks": { "netcoreapp1.0": { "imports": "dnxcore50" } }, //跨平台发布需要添加如下节点 "runtimes": { "ubuntu.16.04-x64": { }, //运行在ubuntu.16.04的64位系统 "win7-x64": { } //运行在win7的64位系统 } }
然后使用cmd分别录入并回车运行指令dotnet restore此时TaskCore.MainForm01文件夹中会自动生成一个project.lock.json文件(大家注意看下),然后再录入指令dotnet publish -r win7-x64,可以看到命令窗信息如:
就表示成功了,并且有返回生成运行文件的路径,我们按照路径找到生成的文件publish文件夹,里面没有PluginXml配置文件夹和配置文件和测试项目TaskCore.Test.dll,我们为了方便直接复制上面配置好的配置文件到publish文件夹中如下截图就是生成的发布文件:
没错TaskCore.MainForm01.exe这个就是自动生成的运行文件,然后我们双击运行效果图:
运行成功了,有朋友会问您之前系统不是安装了sdk么,这种测试能算么,我想说的是这个我通过QQ发给qq群里面的朋友@南宫亦琦(不要怪我贴出了您的昵称)测试过了,她没有安装过sdk的;
ubuntu16.04运行:
1. 安装了netcore sdk环境的发布运行
首先,我们需要把在win7上生成的项目复制到ubuntu系统磁盘中(我们使用上面配置好的TaskCore.MainForm包),我这里采用共享目录的方式把文件拷贝到ubuntu系统磁盘上,如图:
然后,鼠标右键点击空白地方,选择“在终端打开”,然后在窗体中录入如下指令dotnet TaskCore.MainForm.dll,能看到如下运行起的结果:
这个命令方式是不是很上面win7上的方式很相同,本来就是一样的,只要安装了.netcore sdk这种方式几乎可以共用
2. 未安装netcore sdk环境的发布运行