dotnet自建项目模板

发布时间 2023-12-19 19:26:31作者: YuanXiaoLcx

NuGet 创建项目模板步骤

  • 相关模板文件下载

  • 将源码放置content中

  • .template.config 下的template.json修改

    {
        "$schema": "http://json.schemastore.org/template",
        "author": "yuanxiao",  //作者
        "classifications": [ "Web/WebAPI" ],  //项目标签TAG
        "name": "EMSCloudAPI ",  //模板名称
        "identity": "EMSCloud.API.Template", //模板标识
        "shortName": "emsapi", //短名称
        "tags": {   //标签
          "language": "C#" , //语言
          "type":"project" //类型
        },
        "sourceName": "EMSCloud",  //模板使用的默认名,用该模板生成工程时会被替换
        "preferNameDirectory": true  //默认False  是否为模板创建目录
    }
    
  • 窗口命令执行

    dotnet new -i .
    
  • 查看是否按照成功

    dotnet new -l
    
  • 模板生成项目工程

     dotnet new {shortName} -n {project.name} 
    
  • 模板卸载

    dotnet new uninstall {PATH}
    
  • NuGet打包

    新建XXX.nuspec文件,内容如下
    <?xml version="1.0" encoding="utf-8"?>
    <package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
      <metadata>
        <id>EMSAPI</id>
        <version>1.1.0</version>
        <description>
          ems.api
        </description>
        <authors>yuanxiao</authors>
        <packageTypes>
          <packageType name="Template" />
        </packageTypes>
    	<!-- <licenseUrl>https://github.com</licenseUrl>
    	<projectUrl>https://github.com</projectUrl>
    	<iconUrl>https://github.comd.png</iconUrl> -->
    	<copyright>Copyright 2019 </copyright>
    	<tags>asp.net core template</tags>
      </metadata>
    </package>
    
    执行命令进行打包
    nuget.exe pack {XXX}.nuspec
    
  • 打包完成

    对应目录下会出现id.version.nupkg,上述文件生成EMSAPI.1.1.0.nupkg

  • 内部源码不能上传到外网,可以使用该文件作为模板进行安装

    安装命令
    dotnet new install EMSAPI.1.1.0.nupkg
    
  • 安装完成

    控制台中出现类似如下输出表示完成

    E:\Code\NuGetPack>dotnet new install EMSAPI.1.1.0.nupkg
    将安装以下模板包:
       E:\Code\NuGetPack\EMSAPI.1.1.0.nupkg
    
    成功: EMSAPI::1.1.0 已安装以下模板:
    模板名        短名称  语言  标记
    ------------  ------  ----  ----------
    EMSCloudAPI   emsapi  [C#]  Web/WebAPI
    
  • 可通过CLI或者VS进行新建项目

    • CLI查看模板生成项目工程部分
    • VS打开新建项目搜索template.json下的 //模板名称"name": "EMSCloudAPI ",