从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板 (2)

如果要创建一个模板,这里首先我们需要创建一个Nuget包的元数据文件,这里我们命名为LamondDynamicPlugin.nuspec

<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd"> <metadata> <id>LamondDynamicPlugin</id> <version>1.0.0</version> <description> Creates dynamic plugin in asp.net core </description> <authors>Lamond Lu</authors> <packageTypes> <packageType /> </packageTypes> </metadata> </package>

这里设置的属性都很简单,唯一需要注意的packageType一定要设置成Template。

编写好元数据文件之后,我们就可以使用Nuget pack命令来打包了, 这个命令的第一个参数就是指定一个.nuspec文件所在的路径。

nuget pack DemoPlugin1/LamondDynamicPlugin.nuspec

从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板

运行之后,Nuget会生成一个LamondDynamicPlugin.nupkg文件,这个就是我们所说的Nuget包了。

为了使用Nuget包的方式安装模板,我们可以使用相同的命令dotnet new -i

dotnet new -i LamondDynamicPlugin.nupkg

当然,通常来说我们都会将这个Nuget包发布到nuget.org, 这样就可以将这个模板分享给其他人了。

从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板

发布到Nuget之后,我们就可以使用LamondDynamicPlugin.nuspec中定义的唯一id来安装模板了。安装的命令和之前从目录安装模板是一样的。

dotnet new -i LamondDynamicPlugin

如果你想卸载某个模板,只需要使用dotnet new -u [Nuget包]即可。

dotnet new -u LamondDynamicPlugin

总结

本文中我演示了如何使用dotnet-CLI创建一个.NET Core的项目模板,以及如何使用Nuget来打包项目模板供其他人使用,这样就解决了我们之前手动创建插件项目繁琐的问题。下一期,我会尝试将模块的业务逻辑抽象出来,创建一个核心类库,大家敬请期待。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsswpy.html