首先声明,本文使用的CLI版本是最新和VS 2017搭配的最新版本,并不是之前的预览版本,我们可以输入dotnet --version查看当点的.NET Core版本,因为最新版本和之前的预览版本所创建的项目的模板是有所区别的,命令的相关选项和命令的种类也是不一样的。请务必到.NET Core的官方网站去下载最新版本的.NET Core SDK 和.NET Core Runtime。
一、dotnet命令的作用
通过命令行,完成跨平台的.NET Core项目的创建、编译、包的还原,程序的运行等等。
dotnet命令:查看与dotnet命令相关的一些信息,详情如下
dotnet [command] [arguments] [--version] [--info] [-d|--diagnostics] [-v|--verbose][-h|--help],其中相关的命令行选项的含义如下:
-v|--verbose
启用详细输出。
-d|--diagnostics
启用诊断输出。
--version
打印出 CLI 工具的版本。
--info
打印出有关 CLI 工具的更多详细信息,例如当前操作系统、提交该版本的 SHA 等。
-h|--help
打印出有关命令的简短帮助。 如果仅使用 dotnet
,还将打印可用命令的列表
二、相关详细命令
1、dotnet new命令:创建一个新的.NET Core项目,根据指定的模板,创建新的项目、配置文件或解决方案。
dotnet new [-lang|--language] [-n|--name] [-o|--output] [-all|--show-all] [-h|--help][Template arguments]
其中表示的是项目的模板,可以有下面一些取值
模板描述 | 模板名称 | 语言 |
---|---|---|
控制台应用程序 | console | [C#]、F# |
类库 | classlib | [C#]、F# |
单元测试项目 | mstest | [C#]、F# |
xUnit 测试项目 | xunit | [C#]、F# |
ASP.NET Core 空 | Web | [C#] |
ASP.NET Core Web 应用 | mvc | [C#]、F# |
ASP.NET Core Web API | webapi | [C#] |
Nuget 配置 | nugetconfig | |
Web 配置 | webconfig | |
解决方案文件 | sln |
dotnet new console -lang f#
在当前目录中新建定位 .NET Core 1.0 且没有设置身份验证的 ASP.NET Core C# MVC 应用程序项目:
dotnet new mvc -au None -f netcoreapp1.0
新建定位 .NET Core 1.1 的 XUnit 应用程序:
dotnet new xunit --Framework netcoreapp1.1
列出适用于 MVC 的所有模板:
dotnet new mvc -l
命令行的使用方法:命令 选项 该选项所对应的参数(如果参数有空格,则用引号将该参数引用起来),上面的标示中,
2 dotnet restore - 恢复项目的依赖项和工具。
dotnet restore [root] [-s|--source] [-r|--runtime] [--packages] [--disable-parallel] [--configfile] [--no-cache] [--ignore- failed-sources] [--no-dependencies] [-v|--verbosity]
root 要还原的项目文件的可选路径。
-h|--help
打印出有关命令的简短帮助。
-s|--source
指定要在还原操作期间使用的 NuGet 包源。 这会替代 NuGet.config 文件中指定的所有源。 多次指定此选项可以提供多个源。
--packages
--disable-parallel
禁用并行还原多个项目。
--configfile
用于还原操作的 NuGet 配置文件 (NuGet.config)。
--no-cache
指定不缓存包和 HTTP 请求。
--ignore-failed-sources
如果存在符合版本要求的包,则源失败时警告。
--no-dependencies
当使用 P2P 引用还原项目时,不要还原引用,只需还原根项目。
--verbosity
在输出中显示此数量的详细信息。 级别可以是 normal
、quiet
或 detailed
下面是几个例子:
还原当前目录中项目的依赖项和工具:
dotnet restore
还原在给定路径中找到的 app1
项目的依赖项和工具:
dotnet restore ~/projects/app1/app1.csproj
通过将提供的文件路径用作回退源,在当前目录中还原项目的依赖项和工具:
dotnet restore -f c:\packages\mypackages
通过将提供的两个文件路径用作回退源,还原当前目录中项目的依赖项和工具:
dotnet restore -f c:\packages\mypackages -f c:\packages\myotherpackages
还原当前目录中项目的依赖项和工具并仅显示输出中的错误:
dotnet restore --verbosity Error
dotnet build 命令将项目及其依赖项生成为一组二进制文件。 二进制文件是一种符号文件,用于调试(具有 *.pdb
扩展名)和中间语言 (IL) 形式的项目代码(具有 *.dll
扩展名)。 此外,将生成一个 JSON 文件,其中列出应用程序的依赖项(扩展名为 *.deps.json
)。 最后,还将生成 runtime.config.json
文件。 此文件指定生成的代码将针对哪个共享运行时和版本运行。
dotnet build [project] [-o|--output] [-f|--framework] [-c|--configuration] [-r|--runtime] [--version-suffix] [--no- incremental] [--no-dependencies] [-v|--verbosity]
-h|--help 打印出有关命令的简短帮助。
-o|--output
放置生成二进制文件的目录。 指定此选项时还需要定义 --framework
。
-f|--framework
编译特定框架。 需要在项目文件中定义该框架。
-c|--configuration [Debug|Release]
定义一个配置,根据该配置进行生成。 如果省略,则默认为 Debug
。
-r|--runtime [RUNTIME_IDENTIFIER]
要生成的目标运行时。 有关可以使用的运行时标识符 (RID) 列表,请参阅 RID 目录。
--version-suffix [VERSION_SUFFIX]
定义在项目文件的版本字段中应替换的 *
对象。 格式遵循 NuGet 的版本准则。
--no-incremental
将生成标记为对增量生成不安全。 这将关闭增量编译并强制完全重新生成项目依赖项关系图。
--no-dependencies
忽略项目间引用,并仅生成指定要生成的根项目。
-v|--verbosity
设置命令的详细级别。 允许使用的值为 q[uiet]
、m[inimal]
、 n[ormal]
、d[etailed]
和 diag[nostic]
。
下面是具体例子:
生成项目及其依赖项:
dotnet build
使用“发布”配置生成项目及其依赖项:
dotnet build --configuration Release
针对特定运行时(本例中为 Ubuntu 16.04)生成项目及其依赖项:
dotnet build --runtime ubuntu.16.04-x64
4、dotnet run 即运行程序
dotnet run [-c|--configuration] [-f|--framework] [-p|--project] [[--] [application arguments]]
-h|--help
打印出有关命令的简短帮助。
-c|--configuration {Debug|Release}
用于生成项目的配置。 默认值为 Debug
。
-f|--framework
使用指定框架生成并运行应用。 框架必须在项目文件中进行指定。
-p|--project
指定要运行的项目文件的路径。 它可能是 csproj 文件的路径或包含 csproj 文件的目录路径。 如未指定,则默认为当前
使用实例如下:
运行当前目录中的项目:
dotnet run
运行指定的项目:
dotnet run --project /projects/proj1/proj1.csproj
运行当前目录中的项目(在本例中,--help
参数被传递到正在运行的应用程序,因为使用了 --
参数):
dotnet run --configuration Release -- --help
上面是我们创建.NET Core程序最为常用的四步走,但是新版的dotnet还添加了很多其他的命令,这里不一一列举出来了,详情可以参加官方网站加以了解:
https://docs.microsoft.com/zh-cn/dotnet/articles/core/tools/dotnet-run