温故知新,DotNet Core SDK和.Net CLI十八般武艺
简介
.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 |
- https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install
- https://github.com/dotnet/core/blob/main/roadmap.md
检查安装
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十八般武艺的更多相关文章
- 腾讯云 docker 镜像 dotnet/core sdk aspnet
ccr.ccs.tencentyun.com/mcr.microsoft.com/dotnetcoresdk = mcr.microsoft.com/dotnet/core/sdk => 3 ...
- 使用mongodb提供的dotnet core sdk进行地理位置运算
mongodb提供地理位置运算功能,比较常用的场景比如,先判断用户所在的街道,然后看看街道附近有啥餐厅,然后算算用户与餐厅的距离什么的,官网里提供了比较详细的demo介绍不同api的用法 此处记录下d ...
- dotnet core sdk 2.1 在centos下的安装
1. 安装微软的仓库 rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm 2. 修改仓库 ...
- ServiceStack DotNet Core前期准备
下载DotNet Core SDK 下载地址:https://dotnet.microsoft.com/download. 安装完成之后通过cmd的命令行进行确认. 官方自带的cmd比较简陋,可以用c ...
- 使用 dotnet core 和 Azure PaaS服务进行devOps开发(Web API 实例)
作者:陈希章 发表于 2017年12月19日 引子 这一篇文章将用一个完整的实例,给大家介绍如何基于dotnet core(微软.NET的最新版本,支持跨平台,跨设备的应用开发,详情请参考 https ...
- devOps开发(Web API 实例)dotnet core 和 Azure PaaS服务
使用 dotnet core 和 Azure PaaS服务进行devOps开发(Web API 实例) 作者:陈希章 发表于 2017年12月19日 引子 这一篇文章将用一个完整的实例,给大家介绍如何 ...
- dotnet core 跨平台编译发布
vs2017 建立的项目,在项目目录 ,执行 dotnet publish -r ubuntu.15.04-x64 dotnet publish -r linux-x64 dotnet publish ...
- Docker系列之AspNetCore Runtime VS .NetCore Runtime VS .NET Core SDK(四)
前言 接下来我们就要慢慢步入在.NET Core中使用Docker的殿堂了,在开始之前如题,我们需要搞清楚一些概念,要不然看到官方提供如下一系列镜像,我们会一脸懵逼,不知道到底要使用哪一个. AspN ...
- 【ASP.NET Core分布式项目实战】(五)Docker制作dotnet core控制台程序镜像
Docker制作dotnet core控制台程序镜像 基于dotnet SDK 新建控制台程序 mkdir /home/console cd /home/console dotnet new cons ...
随机推荐
- Davinci 可视化系统部署安装及简单使用
Davinci 是一个目前比较热门的国内开源BI系统,功能比较完善,各种可视化效果也挺不错.主要获取数据的方式是通过编写SQL 创建数据视图来展示各种图表的. Davinci面向业务人员/数据工程师/ ...
- TCP 中的两个细节点
TCP 超时和重传 没有永远不出错误的通信,这句话表明着不管外部条件多么完备,永远都会有出错的可能.所以,在 TCP 的正常通信过程中,也会出现错误,这种错误可能是由于数据包丢失引起的,也可能是由于数 ...
- 寻找CPU使用率高的进程方法
寻找CPU使用率高的进程方法 发布时间: 2017-07-13 浏览次数: 1362 下载次数: 0 问题描述 节点报CPU使用率高,甚至出现"ALM-12016 CPU使用率超过阈值 ...
- ssh安全优化免密登陆
ssh协议 为什么使用ssh协议? 在进行传输时,会对数据进行加密,保证会话安全:telnet协议不是加密传输,在传输过程中如果被抓包,就会造成信息泄露,telnet默认不支持root远程. # 常用 ...
- Python 简单的龟鱼游戏
游戏编程:按一下要求定义一个乌龟类和鱼类并尝试编程 假设游戏场景为范围(x,y)为 0<=x<=10,0<=y<=10 游戏生成1只乌龟和10条鱼 他们的移动方向均随机 乌龟的 ...
- mysql3_pymysql
python数据库编程 1.pyshon数据库接口(python DB-API) 1.为开发人员提供的数据库应用编程接口 2.python支持的数据库服务软件 mysql,oracle,sql_ser ...
- Java 关键字详解
Java 关键字是 Java 语言中被赋予特殊意义的一些单词(每个关键字都代表着不同场景下的不同含义),不可以把它当作标识符来使用(不能用作变量名.方法名.类名.包名和参数名等).Java 中的关键字 ...
- 爱心跳动效果 CSS实现
爱心跳动效果 CSS实现 实现效果 砰砰砰 实现原理 通过动画改变每个元素的高度,从而实现每个元素高度变化的效果,为了使每个元素依次跳动,给每个元素添加一定的延时效果,使得从效果元素依次跳动 代码分析 ...
- 重新整理 .net core 实践篇————配置系统之盟约[五]
前言 在asp .net core 中我们会看到一个appsettings.json 文件,它就是我们在服务中的各种配置,是至关重要的一部门. 不管是官方自带的服务,还是我们自己编写的服务都是用它来实 ...
- Python+Selenium自动化-设置浏览器大小、刷新页面、前进和后退
Python+Selenium自动化-设置浏览器大小.刷新页面.前进和后退 1.设置浏览器大小 maximize_window():设置浏览器大小为全屏 set_window_size(500,5 ...