温故知新,DotNet Core SDK和.Net CLI十八般武艺
简介
.NET命令行接口 (CLI) 工具是用于开发、生成、运行和发布.NET应用程序的跨平台工具链。
https://docs.microsoft.com/zh-cn/dotnet/core/tools/
SDK
.NET SDK (Software Development Kit) v5.0.201.exe
里程碑 | 发布日期 |
---|---|
.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十八般武艺相关推荐
- Dotnet Core应用跨框架版本运行
有时候,我们真想用新框架,可也真不想改代码. 有一个前置的知识需要了解,就是微软 Dotnet Core 框架的版本体系.我前边的文章「Dotnet Core使用特定的SDK&Runtim ...
- 使用 dotnet core 和 Azure PaaS服务进行devOps开发(Web API 实例)
引子 这一篇文章将用一个完整的实例,给大家介绍如何基于dotnet core(微软.NET的最新版本,支持跨平台,跨设备的应用开发,详情请参考 https://www.microsoft.com/ne ...
- 在Linux上编译dotnet cli的源代码生成.NET Core SDK的安装包
.NET 的开源,有了更多的DIY乐趣.这篇博文记录一下在新安装的 Linux Ubuntu 14.04 上通过自己动手编译 dotnet cli 的源代码生成 .net core sdk 的 deb ...
- 【dotnet跨平台】微软昨天宣布正式发布.NET Core RC2和.NET Core SDK Preview 1,还有Entity Framework Core RC2
[dotnet跨平台]微软昨天宣布正式发布.NET Core RC2和.NET Core SDK Preview 1,还有Entity Framework Core RC2 期待已经的版本终于在 ...
- ubuntu 安装yum_如何在 Linux 中安装微软的 .NET Core SDK | Linux 中国
本分步操作指南文章解释了如何在 Linux 中安装 .NET Core SDK 以及如何使用 .NET 开发出第一个应用程序.-- Sk致谢译自 | ostechnix.com 作者 | Sk译者 | ...
- Microsoft使用.NET Core SDK遥测数据
Microsoft发布了采集自.NET Core SDK用户的遥测原始数据集.数据集的时间跨度是从2016年第三季度到2017年第二季度,为了解当前开发人员使用SDK的情况提供了一个视角.据Micro ...
- centos 6.5 安装dotnet core 2.2
.net core 官网地址 https://dotnet.microsoft.com/download 本次安装版本为.net core SDK v2.2.101 1.查看系统版本, 升级系统基本l ...
- 国产linux 中标麒麟安装.net core sdk
项目背景 最近接到了一个需求,是要把原有部署在Windows服务器上的网站部署到国产操作系统上(环保行业的码农,zf机关推行国产化),最终选型中标麒麟操作系统,所以原有.net framework需要 ...
- 【干货特供】dotNet core 应用部署至 centos(超详解附截图)
文章来源:公众号-智能化IT系统. 阅读目录 需要安装的插件以及支撑架构 安装dotnetSDK 安装jexus 安装supervisord 遇到问题汇总 注意事项.扩展延伸 需要安装的插件以及支撑架 ...
最新文章
- redis 基本信息查询
- CNN 与 LSTM 模型复杂度分析
- coroSync packmarker
- Zend Framework 自动加载类的实现方法
- 【转】c++虚函数实现原理
- php原生好还是tp好_webapp/H5封装,混开APP,没有原生APP好?事实是这样的吗?
- Android pid uid
- Tornado web开发之简单文件上传
- UI设计师SVG动画进阶篇——路径变形动画(上篇)
- vue前后分离session实现_springboot-vue前后端分离session过期重新登录的实现
- 必读的 Java 学习资料分享! 1
- UDP视频聊天室(一)
- document和document.documentElement的区别
- 【公司邮箱如何申请】怎么写加密邮件,企业邮箱支持吗?
- PJSIP 下载和编译
- wordpress mysql 密码重置_WordPress登录密码找回办法之修改数据库篇 | Wopus
- 数学思想:4、数学归纳法
- Dev c++无法新建项目解决方法
- 柯桥韩国人到底一周平均要吃几次泡面?
- win10+NVIDIA GTX 960M+CUDA 8.0+cudnn6.0+tensorflow安装