1. 创建模板配置
1.1 在项目目录中创建.template.config
文件夹
1.2 创建一个名为“template.json” 的新文件
{
"author": "5DThinking",
"classifications": [ "WinForm" ], //对应模板的Tags
"identity": "5DThinking.Demo", //模板的唯一名称
"name": "5DThinking.Demo", //对应模板的Templates
"shortName": "abc", //【修改】短名称,使用 dotnet new <shortName> 安装模板时的名称
"tags": {
"language": "C#",
"type": "project"
}
"sourceName": "xxx", // 【修改】在使用 -n 选项时,会替换模板中项目的名字xxx
"preferNameDirectory": true // 可选,添加目录
}
注意:"sourceName": "xxx"
指明模板中将要被替换的字符串
2. 安装模板
运行命令dotnet new -i .
以安装位于当前文件夹的模板
3. 测试模板
运行命令dotnet new abc -n 5DThinking.Test -o TestTemplate
,新项目成功在TestTemplate
目录下生成,名字也都统一改为5DThinking.Test
4. 遇到的坑
现在运行新项目,出现一堆错误,主要是两类:1.NuGet包还原问题 2..resx
文件报错
临时解决办法:
- 从模板项目
lib
目录中复制.dll
文件到新项目相应目录中并覆盖,在项目中重新引用 - 从模板项目复制
.resx
文件到新项目相应目录中并覆盖
注:这个解决办法是野路子,虽然也行,但比较Low,下面尝试打包的方式来解决
5. 用NuGet生成包
5.1 根目录GMS
下创建Content\GMSTemplate
目录,将模板文件及文件夹都复制进来
5.2 template.json
文件修改为:
{
"$schema": "http://json.schemastore.org/template",
"author": "5DThinking",
"classifications": [ "WinForm" ],
"name": "5DThinking WinForm GMS v1.0",
"identity": "GMS.WinForm.1.0.Template",
"shortName": "gms1.0",
"tags": {
"language": "C#" ,
"type":"project"
},
"sourceName": "Thinking.GMS",
"preferNameDirectory": true
}
5.3 在GMS
目录下创建GMSTemplate.nuspec
文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>GMSTemplate</id>
<version>1.0.1</version>
<description>
GMS(General Management System) For WinForm
</description>
<authors>5DThinking</authors>
<packageTypes>
<packageType name="Template" />
</packageTypes>
</metadata>
</package>
5.4 用NuGet打包,在GMS
目录下执行命令nuget pack GMSTemplate.nuspec -OutputDirectory .
,然后生成GMSTemplate.1.0.1.nupkg
文件
5.5 在GMS
目录下创建CreateYourProject.bat
文件,内容如下:
color 4
dotnet new -i GMSTemplate.1.0.1.nupkg
set /p OP=Please set your project name(for example:Baidu.Api):
md .1YourProject
cd .1YourProject
dotnet new gms1.0 -n %OP%
cd ../
echo "Create Successfully!!!! ^ please see the folder .1YourProject"
dotnet new -u GMSTemplate
echo "Delete Template Successfully"
pause
5.6 双击执行CreateYourProject.bat
文件,按提示输入新的项目名称,大功告成!