.NET5 自定义项目模板

1、自定义项目模板,配合使用NuGet打包项目,使用更方便

  • 创建模板配置文件

       在项目文件夹根目录创建.template.config文件夹,在文件夹下创建新的文件:template.json内容如下:

{
  "$schema": "http://json.schemastore.org/template",
  //必须,模板的作者
  "author": "te.1",
  //必须,模板的分类
  "classifications": [ "Web", "WebAPI.Template" ],
  //必须,模板的名称(改成自己的项目名称)
  "name": "API.Temp",
  //可选,模板的唯一名称
  "identity": "API.template.CSharp",
  //可选,简短名称
  "shortName": "apitemp",
  //必须,模板指定了一些标签
  "tags": {
    "language": "C#",
    "type": "project"
  },
  //可选,要替换的名字 这就就行新建项目时替换成新的名称
  "sourceName": "API.Template",
  //是否生成相同名称的目录,可选
  "preferNameDirectory": true
}

我的项目结构如下:

.NET5 自定义项目模板

  • 项目模板安装

   打开命令行进入项目目录,运行以下命令以安装位于当前文件夹的模板:

  • 在 Windows 上:dotnet new -i .\
  • 在 Linux 或 macOS 上:dotnet new -i ./
  • 使用模板新建项目

   使用命令 :dotnet new  apitemp -n Test 创建test项目

.NET5 自定义项目模板 

 创建完成的项目结构:

.NET5 自定义项目模板

使用命令 dotnet new -u 查看安装的模板卸载命令,例如下图,可以直接使用命令 dotnet new -u E:\NET\AppletsShare副本 卸载已安装的模板

.NET5 自定义项目模板

2、创建模板NuGet包项目

  • 创建模板配置文件

  在项目*根目录创建templatepack.csproj修改内容如下:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <!-- 包类型使用与包Id相同的格式,并由分隔 ; 。 包类型可通过追加 , 和字符串进行版本控制 -->
    <!-- 示例 <PackageType>CustomType1, 1.0.0.0;CustomType2</PackageType>     -->
    <PackageType>Template</PackageType>
    <!-- 指定生成的包所具有的版本 -->
    <PackageVersion>1.0</PackageVersion>
    <!-- 唯一名称,卸载安装时使用 -->
    <PackageId>API.Template</PackageId>
    <!-- 包标题 -->
    <Title>WebApi  Template</Title>
    <!-- 作者名称,多个以分号分隔 -->
    <Authors>te.1</Authors>
    <!-- 包描述 -->
    <Description>创建应用程序时使用的模板。</Description>
    <!--使用默认值即可, 必须设置 <TargetFramework> 设置,以便在运行 pack 命令编译和打包项目时 MSBuild 正常运行。 -->
    <TargetFramework>netstandard2.0</TargetFramework>
    <!-- 标记的分号分隔列表,这些标记用于指定包 -->
    <PackageTags>dotnet-new;templates;contoso</PackageTags>
    <!-- 以下配置可以不管 -->
    <IncludeContentInPack>true</IncludeContentInPack>
    <IncludeBuildOutput>false</IncludeBuildOutput>
    <ContentTargetFolders>content</ContentTargetFolders>
    <NoWarn>$(NoWarn);NU5128</NoWarn>
  </PropertyGroup>
 <!-- 排除bin、obj文件夹-->
  <ItemGroup>
    <Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**" />
    <Compile Remove="**\*" />
  </ItemGroup>
</Project>
  • 生成和安装

   项目结构目录必须如下:

项目根目录
│   templatepack.csproj
└───templates   
   └───.template.config        
        └───template.json

在项目根目录下打开命令行,使用命令dotnet pack 此命令会生成项目,并在 项目根目录\bin\Debug 文件夹中创建一个 NuGet 包,如以下输出所示:

.NET5 自定义项目模板

接下来,使用 dotnet new -i PATH_TO_NUPKG_FILE 命令安装模板包文件,完整命令如下。

dotnet new -i E:\NET\AppletsShare副本\bin\Debug\API.Template.1.0.0.nupkg

使用命令 dotnet new -u 查看安装的模板卸载命令,例如下图,可以直接使用命令  dotnet new -u API.Template副本 卸载已安装的模板

.NET5 自定义项目模板

创建项目 命令 :dotnet new  apitemp -n Test 创建test项目

参考:dotnet new 自定义模板 - .NET CLI | Microsoft Docs

          .NET Core - 自定义项目模板 - chaney1992 - 博客园 (cnblogs.com)

.NET5 自定义项目模板

上一篇:.net core Docker Compose启动问题: Debugging Error, The program to be debug con not be found in the container


下一篇:微信公众号_订阅号_爬虫puppeteer