我们通过Visual Studio创建新项目的时候会看到很多项目模板,选择对应的项目模板,可以很方便的创建一个自己想要的项目结构,那么这些项目模板是如何创建并添加到Visual Studio的呢?
这篇文章我带你一步一步搭建一个属于自己的项目模板。
我们先来看下这类项目模板的结构。
icon.png
模板Nuget包的图标,即显示出来的小图标。
Hcf.Template.Mvc.nuspec
Nuget包的配置信息,也就是你需要创建一个以.nuspec结尾的nuget配置信息,配置信息内容如下
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Hcf.Template.Mvc</id> <!-- 唯一名称 -->
<version>1.0.0</version> <!-- 版本号 -->
<description>Hcf WebMvc Template </description> <!-- 描述 -->
<authors>Lemon</authors> <!-- 作者 -->
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
<icon>icon.png</icon>
<packageTypes>
<packageType name="Template" />
</packageTypes>
</metadata>
</package>
src文件夹
该文件夹下存放的即为你的模板项目源码,你可以在该文件夹下存放你编写好的项目模板内容,如下所示
该文件夹结构为Hcf.Template.Mvc的项目模板,其中.template.config文件夹为项目模板的配置信息,其它文件为项目模板源码,你可以创建属于自己的项目模板内容
每个项目模板src文件夹下必须有一个.template.config的文件夹,该文件夹里面有一个.template.json的配置文件
配置内容如下
{
"$schema": "http://json.schemastore.org/template",
"author": "Lemon", //作者
"classifications": ["Hcf", "Web", "Mvc"], //分类定义
"name": "Hcf Mvc", //模板名称
"identity": "Hcf.Template.Mvc", //唯一Id
"shortName": "hcfmvc", //短名称,后面创建项目的时候需要通过该名称创建
"tags": {
"language": "C#",
"type": "project"
},
"sourceName": "Hcf.Template", //源名称,创建项目的时候将会替换你项目模板源码中的Hcf.Template内容
"preferNameDirectory": true,
"symbols": {
"framework": { //框架选择,可以定义其它更多内容
"type": "parameter",
"datatype": "choice",
"choices": [
{
"choice": "net6",
"description": ".NET6 脚手架"
},
{
"choice": "net7",
"description": ".NET7 脚手架"
},
{
"choice": "net8",
"description": ".NET8 脚手架"
}
],
"defaultValue": "net8",
"description": "选择要创建的 .NET6-8 脚手架"
},
"net6": {
"type": "computed",
"value": "(framework == \"net6\")"
},
"net7": {
"type": "computed",
"value": "(framework == \"net7\")"
},
"net8": {
"type": "computed",
"value": "(framework == \"net8\")"
}
}
}
以上为整个项目模板的结构内容
我们创建好项目模板后,那么接下来就是创建nuget包,我们在开头就看到了有一个以.nuspec结尾的nuget配置文件,那么我们通过命令来构建。
打开命令行窗口,切换到该项目模板下面
.\nuget.exe pack ./HcfMvcTemplate/Hcf.Template.Mvc.nuspec -OutputDirectory .\Packages
.\nuget.exe:你的nuget可执行文件
./HcfMvcTemplate/Hcf.Template.Mvc.nuspec:刚才提到的nuget配置文件
-OutputDirectory .\Packages 输出目录
执行该命令后输出
代码执行成功,那么在指定目录下会生成一个 Hcf.Template.Mvc.1.0.0.nupkg 包文件,这样代码已经打包成功
接下来你可以直接将该包发布到nuget平台上,也可以直接使用该包
那么如何使用,请关注下一篇文章