简介

.NET命令行接口 (CLI) 工具是用于开发、生成、运行和发布.NET应用程序的跨平台工具链。

https://docs.microsoft.com/zh-cn/dotnet/core/tools/

SDK

里程碑 发布日期
.NET Core 2.1.x (servicing) LTS (Long Term Support) release. Approximately every 1-2 months or as needed.
.NET Core 3.1.x (servicing) LTS (Long Term Support) release. Approximately every 1-2 months or as needed.
.NET 5.0 Release scheduled for November 2020
.NET 6.0 LTS (Long Term Support) release, scheduled for November 2021
.NET 7.0 Release scheduled for November 2022
.NET 8.0 LTS (Long Term Support) release, scheduled for November 2023

检查安装

dotnet

新建

dotnet new $templateName

其中常见的模板名称有:

模板名字 短名称 版本要求
控制台应用程序 console >= 1.0
类库 classlib >= 1.0
WPF应用程序 wpf >= 3.0
WPF类库 wpflib >= 3.0
WPF自定义控件库 wpfcustomcontrollib >= 3.0
WPF用户控件库 wpfusercontrollib >= 3.0
Windows窗体(WinForms) 应用程序 winforms >= 3.0
Windows窗体(WinForms)类库 winformslib >= 3.0
Worker Service worker >= 3.0
单元测试项目 mstest >= 1.0
NUnit 3测试项目 nunit >= 2.1
NUnit 3测试项 nunit-test >= 2.2
xUnit 测试项目 xunit >= 1.0
Razor组件 razorcomponent >= 3.0
Razor页 page >= 2.0
MVC ViewImports viewimports >= 2.0
MVC ViewStart viewstart >= 2.0
Blazor 服务器应用 blazorserver >= 3.0
Blazor WebAssembly应用 blazorwasm >= 3.1
ASP.NET Core空 web >= 1.0
ASP.NET Core Web应用程序 (Model-View-Controller) mvc >= 1.0
ASP.NET Core Web 应用程序 webapp, razor >= 2.0
含 Angular 的ASP.NET Core angular >= 2.0
含 React.js 的ASP.NET Core react >= 2.0
含 React.js 和 Redux 的ASP.NET Core reactredux >= 2.0
Razor类库 razorclasslib >= 2.1
ASP.NET Core Web API webapi >= 1.0
ASP.NET Core gRPC服务 grpc >= 3.0
dotnet gitignore文件 gitignore >= 3.0
global.json文件 globaljson >= 2.0
NuGet配置 nugetconfig >= 1.0
Dotnet本地工具清单文件 tool-manifest >= 3.0
Web配置 webconfig >= 1.0
解决方案文件 sln >= 1.0
协议缓冲区文件 proto >= 3.0

可选参数--list可查看本地安装的所有模板

dotnet new --list

可选参数-f 指定目标框架版本号

dotnet new $templateName -f $frameworkName

  • net5.0
  • netcoreapp3.1
  • netcoreapp3.0
  • netcoreapp2.1
dotnet new webapi -f netcoreapp2.1

dotnet new webapi -f netcoreapp3.1

dotnet new webapi -f netcoreapp2.2

dotnet new webapi -f net5.0

可选参数-n 指定创建的输出名称,否认默认是当前文件夹名称

dotnet new webapi -n $projectName

https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-new

可选参数-o 指定输出目录,默认是当前目录

dotnet new webapi -o $projectName

可选参数--no-https关闭默认HTTPS要求,方便开发调试

dotnet new webapi -o $projectName --no-https

还原依赖

dotnet restore
dotnet restore $target.csproj

运行

dotnet run

输出文件会写入到默认位置,即bin/<configuration>/<target>。 例如,如果具有netcoreapp2.1应用程序并且运行dotnet run,则输出置于bin/Debug/netcoreapp2.1。 将根据需要覆盖文件。临时文件将置于obj目录。

如果在上下文中,需要直接运行某个文件,可以用

dotnet $fileName

禁止隐式还原

dotnet run --no-restore

禁止生成项目

dotnet run --no-build

生成

dotnet build

dotnet build命令将项目及其依赖项生成为一组二进制文件。 二进制文件包括扩展名为.dll的中间语言 (IL) 文件中的项目代码。

根据项目类型和设置,可能会包含其他文件,例如:

  • 可用于运行应用程序的可执行文件(如果项目类型是面向.NET Core 3.0或更高版本的可执行文件)。
  • 用于调试的扩展名为.pdb的符号文件。
  • 列出了应用程序或库的依赖项的.deps.json文件。
  • 用于指定应用程序的共享运行时及其版本的.runtimeconfig.json文件。
  • 项目通过项目引用或 NuGet 包引用所依赖的其他库。

对于目标版本低于.NET Core 3.0的可执行项目,通常不会将NuGet中的库依赖项复制到输出文件夹。 而是在运行时从NuGet全局包文件夹中对其进行解析。

对于面向.NET Core 3.0及更高版本的可执行项目,库依赖项会被复制到输出文件夹。 这意味着如果没有其他任何特定于发布的逻辑(例如,Web项目具有的逻辑),则应可部署生成输出。

输出可执行文件还是输出库的配置

要生成库,请省略<OutputType>属性或将其值更改为Library

<PropertyGroup>
<OutputType>Exe</OutputType>
</PropertyGroup>

<PropertyGroup>
<OutputType>Library</OutputType>
</PropertyGroup>

指定生成模式

  • Debug
  • Release
dotnet build -c Release

dotnet build -c Debug

指定文件版本

dotnet build -p:Version=$targetVersion

清理

dotnet clean
dotnet clean -c Release

打包

dotnet pack
dotnet pack -c Release

默认情况下,Web 项目不可打包。 若要覆盖默认行为,请将以下属性添加到 .csproj 文件中

<PropertyGroup>
<IsPackable>true</IsPackable>
</PropertyGroup>

Nuget

添加源

dotnet nuget add source $nugetUrl -n $sourceName

列举源

dotnet nuget list source

删除源

dotnet nuget remove source $sourceName

推送包到指定源

dotnet nuget push $packageName.nupkg -k $sourceAuthKey -s $sourceUrl

删除包

dotnet nuget delete $packageName $packageVersion -s $sourceName

发布

dotnet publish

dll文件的形式将应用发布为依赖于框架的应用时,将创建跨平台二进制文件。 dll文件将与项目同名。 例如,如果有名为demoForWebApp3.1的应用,则会创建名为demoForWebApp3.1.dll的文件。 以这种方式发布的应用可通过dotnet <filename.dll>命令运行,并且可在任意平台上运行。

只要安装了目标.NET 运行时,就可以在任何操作系统上运行跨平台二进制文件。 如果未安装目标.NET运行时,如果将应用配置为前滚,则它可以使用较新的运行时运行。

指定框架的发布

--runtime => -r

dotnet publish -r linux-x64 --self-contained false
dotnet publish -r win-x64 --self-contained false

所有可选的框架清单:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog

其中--self-contained false参数表示不包括对应框架运行时。

dotnet publish -r linux-x64
dotnet publish -r win-x64

将包含完整的目标框架运行时+程序

将应用发布为独立应用,将生成特定于平台的可执行文件。 输出发布文件夹包含应用的所有组件,包括.NET库和目标运行时。 应用独立于其他.NET应用,且不使用本地安装的共享运行时。 应用的用户无需下载和安装.NET。

直接生成ReadyToRun映像

dotnet publish -c Release -r win-x64 -p:PublishReadyToRun=true

使用ReadyToRun映像发布可以缩短应用程序的启动时间,但代价是增加应用程序的大小。

https://docs.microsoft.com/zh-cn/dotnet/core/deploying/#produce-a-cross-platform-binary

指定项目文件发布

dotnet publish $packageName.csproj

监听并自动生成

开发阶段在源文件发生变动的情况下就自动执行dotnet build

dotnet watch run

包管理

添加包

dotnet add package $packageName
dotnet add package $packageName -v $packageVersion

查看已安装包

dotnet list package

移除某安装包

dotnet remove package $packageName

用VSC打开当前目录

先cd到需要打开的当前目录,然后输入命令:

code .

让VSC支持C#语法检查

只要安装C#插件即可。

让VSC支持自动Using

只要安装Auto-Using for C#这个插件即可。

温故知新,DotNet Core SDK和.Net CLI十八般武艺的更多相关文章

  1. 腾讯云 docker 镜像 dotnet/core sdk aspnet

    ccr.ccs.tencentyun.com/mcr.microsoft.com/dotnetcoresdk  = mcr.microsoft.com/dotnet/core/sdk  => 3 ...

  2. 使用mongodb提供的dotnet core sdk进行地理位置运算

    mongodb提供地理位置运算功能,比较常用的场景比如,先判断用户所在的街道,然后看看街道附近有啥餐厅,然后算算用户与餐厅的距离什么的,官网里提供了比较详细的demo介绍不同api的用法 此处记录下d ...

  3. dotnet core sdk 2.1 在centos下的安装

    1. 安装微软的仓库 rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm 2. 修改仓库 ...

  4. ServiceStack DotNet Core前期准备

    下载DotNet Core SDK 下载地址:https://dotnet.microsoft.com/download. 安装完成之后通过cmd的命令行进行确认. 官方自带的cmd比较简陋,可以用c ...

  5. 使用 dotnet core 和 Azure PaaS服务进行devOps开发(Web API 实例)

    作者:陈希章 发表于 2017年12月19日 引子 这一篇文章将用一个完整的实例,给大家介绍如何基于dotnet core(微软.NET的最新版本,支持跨平台,跨设备的应用开发,详情请参考 https ...

  6. devOps开发(Web API 实例)dotnet core 和 Azure PaaS服务

    使用 dotnet core 和 Azure PaaS服务进行devOps开发(Web API 实例) 作者:陈希章 发表于 2017年12月19日 引子 这一篇文章将用一个完整的实例,给大家介绍如何 ...

  7. dotnet core 跨平台编译发布

    vs2017 建立的项目,在项目目录 ,执行 dotnet publish -r ubuntu.15.04-x64 dotnet publish -r linux-x64 dotnet publish ...

  8. Docker系列之AspNetCore Runtime VS .NetCore Runtime VS .NET Core SDK(四)

    前言 接下来我们就要慢慢步入在.NET Core中使用Docker的殿堂了,在开始之前如题,我们需要搞清楚一些概念,要不然看到官方提供如下一系列镜像,我们会一脸懵逼,不知道到底要使用哪一个. AspN ...

  9. 【ASP.NET Core分布式项目实战】(五)Docker制作dotnet core控制台程序镜像

    Docker制作dotnet core控制台程序镜像 基于dotnet SDK 新建控制台程序 mkdir /home/console cd /home/console dotnet new cons ...

随机推荐

  1. Davinci 可视化系统部署安装及简单使用

    Davinci 是一个目前比较热门的国内开源BI系统,功能比较完善,各种可视化效果也挺不错.主要获取数据的方式是通过编写SQL 创建数据视图来展示各种图表的. Davinci面向业务人员/数据工程师/ ...

  2. TCP 中的两个细节点

    TCP 超时和重传 没有永远不出错误的通信,这句话表明着不管外部条件多么完备,永远都会有出错的可能.所以,在 TCP 的正常通信过程中,也会出现错误,这种错误可能是由于数据包丢失引起的,也可能是由于数 ...

  3. 寻找CPU使用率高的进程方法

    寻找CPU使用率高的进程方法 发布时间:  2017-07-13 浏览次数:  1362 下载次数:  0 问题描述 节点报CPU使用率高,甚至出现"ALM-12016 CPU使用率超过阈值 ...

  4. ssh安全优化免密登陆

    ssh协议 为什么使用ssh协议? 在进行传输时,会对数据进行加密,保证会话安全:telnet协议不是加密传输,在传输过程中如果被抓包,就会造成信息泄露,telnet默认不支持root远程. # 常用 ...

  5. Python 简单的龟鱼游戏

    游戏编程:按一下要求定义一个乌龟类和鱼类并尝试编程 假设游戏场景为范围(x,y)为 0<=x<=10,0<=y<=10 游戏生成1只乌龟和10条鱼 他们的移动方向均随机 乌龟的 ...

  6. mysql3_pymysql

    python数据库编程 1.pyshon数据库接口(python DB-API) 1.为开发人员提供的数据库应用编程接口 2.python支持的数据库服务软件 mysql,oracle,sql_ser ...

  7. Java 关键字详解

    Java 关键字是 Java 语言中被赋予特殊意义的一些单词(每个关键字都代表着不同场景下的不同含义),不可以把它当作标识符来使用(不能用作变量名.方法名.类名.包名和参数名等).Java 中的关键字 ...

  8. 爱心跳动效果 CSS实现

    爱心跳动效果 CSS实现 实现效果 砰砰砰 实现原理 通过动画改变每个元素的高度,从而实现每个元素高度变化的效果,为了使每个元素依次跳动,给每个元素添加一定的延时效果,使得从效果元素依次跳动 代码分析 ...

  9. 重新整理 .net core 实践篇————配置系统之盟约[五]

    前言 在asp .net core 中我们会看到一个appsettings.json 文件,它就是我们在服务中的各种配置,是至关重要的一部门. 不管是官方自带的服务,还是我们自己编写的服务都是用它来实 ...

  10. Python+Selenium自动化-设置浏览器大小、刷新页面、前进和后退

    Python+Selenium自动化-设置浏览器大小.刷新页面.前进和后退   1.设置浏览器大小 maximize_window():设置浏览器大小为全屏 set_window_size(500,5 ...