Fork me on GitHub

您好,dotnet tool

  在.net core发布之初,dotnet cli就诞生了,dotnet cli的作用是什么呢?主要是用来创建,还原,构建,发布,测试等一系统管理功能,本来,visual studio中是有这些功能的,那为什么还另外再提供一套呢?


  【注:其实在windows下的.net应用,也是可以通命令行来实现一些功能的,只是vs的功能太好用,太强大,用这些功能的人有限,给人感觉像没有一样


  我总结有两个方面:

  1、开发时:.net core(现在最新版叫.net5)跨平台了,不只只是在有可视化的平台上运行,所以提供dotnet cli是为在这些平台上顺利使用.net core

  2、运维时:现在流行的devopt,也是dotnet cli发挥作用的战场,不管是独立部署的jenkins等工具,还是github,gitlab等云平台,都提供了CICD脚本化编辑功能,方便我们管理.net应用

  下面的例子是gitlab的对.net core项目CI的gilab-ci.yml配置,其中16,20,21,24都是依赖dotnet cli来实现的:

image: mcr.microsoft.com/dotnet/core/sdk:2.2.301

stages:
  - test
  - deploy

release:
  stage: deploy
  only:
    - master
  artifacts:
    paths:
      - publish/
  script:
    # The output path is relative to the position of the csproj-file
    - dotnet publish -c Release -o ../publish MyProject/MyProject.csproj
    
debug:
  before_script:
   - 'echo | dotnet --version' # must be v 2.2.300 or later for reporter tool to work
   - dotnet tool install dotnet-reportgenerator-globaltool --tool-path tools
  stage: test
  script:
    - dotnet test --logger "junit" --collect:"XPlat Code Coverage"
    # each reporttype must be a separate line, doesn't work together ; separated
    - ls -ld ${CI_PROJECT_DIR}/**/TestResults/*
    - ./tools/reportgenerator "-reports:${CI_PROJECT_DIR}/**/TestResults/*/coverage.cobertura.xml" "-targetdir:Reports_Coverage" -reportTypes:TextSummary;
    - ./tools/reportgenerator "-reports:${CI_PROJECT_DIR}/**/TestResults/*/coverage.cobertura.xml" "-targetdir:Reports_Coverage" -reportTypes:Html;
    - ls Reports_Coverage
    - cat ./Reports_Coverage/Summary.txt
    - echo 'End Summary'
  coverage: /Line coverage[\s\S].+%/
  artifacts:
    paths:
      - Reports_Coverage/
    reports:
      junit:
        - '*.Test/TestResults/TestResults.xml'
.....此处省略

  在dotnet cli中,有一个别有洞天的功能,就是dotnet tool了,这个功能给我们打开了一个广阔窗口,一个让我们自己造工具,自己使用工具的窗口。

  比如最常见的我们可以造一个从DB生成实体类的工具(这类工具应该有很多);再比如源码漏洞检测的工具;甚至可以集成一些与项目管理,技术管理的功能(命名是否规范,定义是否规范,要求框架使用是否规范等等)

  今天只是简单引入,关于dotnet tool详细介绍,敬请关注之后公众号文章。

 

  想要更快更方便的了解相关知识,可以关注微信公众号
 

 

 

posted @ 2022-02-03 13:53  桂素伟  阅读(71)  评论(0编辑  收藏  举报