zoukankan      html  css  js  c++  java
  • .netcore 3.1高性能微服务架构:打造自己的.NET Core项目模板

     本文首发:http://www.zyiz.net/tech/detail-115973.html

    一、前提:

    1、搭建好企业内部的nuget服务器,非常简单,netframework 4.6.1项目。

    2、下载nuget.exe   https://www.nuget.org/downloads,下载后一般会放在目录  C:Program Files uget

    3、下载:NuGet Package Explorer工具。 这2个工具下载地址:https://download.csdn.net/download/puzi0315/12238563

    4、本地电脑,环境变量--Path添加nuget.exe所在目录(C:Program Files uget)。

    5、已经创建好的项目模板;

    二、打包项目文件

    1、创建目录,Nuget/Content, 把整个项目解决方案复制一份到该目录下。

    2、把所有解决方案的所有项目下的bin和obj删除;

    3、创建目录 .template.config,记得前面有点号;

    4、.template.config目录下创建template.json文件,该文件的内容如下:

    {
      "$schema": "http://json.schemastore.org/template",
      "author": "zyiznet",
      "classifications": [ "WebApi" ],
      "name": "Zyiz WebApi31",
      "identity": "Zyiz WebApi31",
      "groupIdentity": "Zyiz WebApi31",
      "shortName": "ZyizWebApi31",
      "tags": {
        "language": "C#",
        "type": "project"
      },
      "sourceName": "Template",
      "preferNameDirectory": true
    }

    author为作者名称,classifications表明该项目适用的类型,可以设置WebApi,web等;name是nuget的名称,identity为唯一标识,shortName为短名称;下载模板的时候会用到。

    sourceName【修改】在使用 -n 选项时,会替换模板中项目的名字。

    5、在content目录的同级创建一个.nuspec文件,比如:Zyiz.WebApi.Template.NetCore31.nuspec,该文件里的内容如下:

    <?xml version="1.0" encoding="utf-8"?>
    <package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
      <metadata>
        <id>Zyiz.WebApi.Template.NetCore31</id>
        <version>1.0.9</version>
        <description>
          Zyiz.Net.WebApi31 Template, including WebApi      
        </description>
        <authors>muxue</authors>
        <packageTypes>
          <packageType name="Template" />
        </packageTypes>
      </metadata>
    </package>

    id是在nuget服务器上的唯一标识,version是版本号,以后更新升级啥的,就靠这个版本号来维护了。

    如上,目录层次好像有点乱,我截个图:

    6、.nuspec打包成.nupkg

    cmd:进入该 .nuspec所在目录,在cmd里执行如下命令:

    nuget   pack   Zyiz.WebApi.Template.NetCore31.nuspec   -NoDefaultExcludes  -OutputDirectory   .

    自动在当前目录下生成的.nupkg。

    若执行的时候,报警告:

    警告: NU5100: The assembly 'ContentWebApiTemplateMuXue.Zyiz.Template.CommoninDebug
    etcoreapp3.1MuXue.Zyiz.Template.Common.dll' is not inside the 'lib' folder and hence it won't be added as a reference when the package is installed into a project. Move it into the 'lib' folder if it needs to be referenced.

    说明项目里的bin和obj没有删除,需要先删除bin和obj,再删除刚刚生成的.nupkg包。重新执行打包命令,如下,说明打包成功了。

    7、你可以使用NuGet Package Explorer工具查看你的刚刚打好的包。

     三、打的包确认无误后,将包上传到nuget服务器:

    你可以使用 NuGet Package Explorer工具上传,也可以使用命令上传。

    我们先用命令上传,(把 NuGet Package Explorer工具里刚刚打开的包关掉)。

    dotnet nuget push *.nupkg -k www_zyiz_net -s http://127.0.0.1:8866/nuget

    其中 www_zyiz_net 为 nuget服务器的web.config里设置的appkey值。

    http://127.0.0.1:8866/nuget  是 nuget服务器地址。

    该命令的详细参数如下:

    dotnet nuget push [<ROOT>] [-d|--disable-buffering] [--force-english-output] [--interactive] [-k|--api-key] [-n|--no-symbols]
        [--no-service-endpoint] [-s|--source] [--skip-duplicate] [-sk|--symbol-api-key] [-ss|--symbol-source] [-t|--timeout]
    dotnet nuget push [-h|--help]

    说明已经成功了。可以在nuget服务器上查看。

    http://127.0.0.1:8866/nuget/Packages

    四、使用模板

    1、本地安装模板: cmd里敲命令

    dotnet new -i Zyiz.WebApi.Template.NetCore31::*

    这里的Zyiz.WebApi.Template.NetCore31即为我们上面的.nuspec文件里 metadata 的id值。

    2、查看是否安装成功:

    上一步若安装成功后,界面会返回一个已经安装好的项目模板:如图,说明已经安装好了。

    (这里需要将内部的nuget服务器地址配置到nuget包源里,在vs2019里设置:nuget包管理器-程序包源,添加地址)

    3、将入我们现在要创建一个学生接口项目,先创建一个文件夹StudentApi目录,cmd进入该目录。

    dotnet   new   ZyizWebApi31   -n   StudentApi   -o   .

    这里的ZyizWebApi31是使用短名称。

    StudentApi为新创建的项目名称。

    执行完毕后,查看该目录,已经成功创建好项目了。并且名称都是我们自己定义的新的名称。 上面说的项目模板里Template全部替换成StudentApi了。

     

    4、用vs2019打开,整个解决方案生成下。

    完美结束。

  • 相关阅读:
    全文检索引擎 sphinxcoreseek中文索引
    html 截图粘粘图片JS
    php 无限参数方法
    LINUX SSH 建立密钥对
    PHP递归无限分类,数组和直接输出。
    带cookie请求数据
    JS 红包随机
    《大话数据结构》 第四章 栈与队列
    《大话数据结构》第二章 算法
    《大话设计模式》 第二章 策略模式
  • 原文地址:https://www.cnblogs.com/puzi0315/p/12455276.html
Copyright © 2011-2022 走看看