说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正。

原文:.NET Core Command Line Tools

翻译:.NET Core命令行工具

什么是 .NET Core 命令行界面(CLI)?

.NET Core CLI 是开发 .NET Core 应用程序的一个新的跨平台工具链的基础。它是“基础”的原因时它是在其它的、高级别工具的主要层,如集成开发环境(IDEs),由编辑器和构建者组成。

默认它是跨平台的,并且对支持的每个平台有相同的表现范围。这意味着,当你学会如何使用工具,你可以从任何支持的平台上以同样的方式使用它。

安装

和其他工具一样,第一件事就是获取工具到你的机器上。根据你的情况,你可以使用本地安装程序安装 CLI 或使用安装脚本。

本地安装程序主要是用于开发的机器。CLI 是分别使用每个支持的平台的原生安装机制,例如在 Ubuntu 上的 DEB 包,或者在 Windows 上的 MSI 包。这些安装程序将安装和安装后用户立即使用 CLI 的需要设置环境。然而,在机器上它们也需要的管理特权。你可以在 .NET Core 开始页 查看安装说明。

安装脚本,另一方面,不需要管理权限。然而,它们也将不安装任何必备的事物在机器上;你需要手动安装所有的必备的事物。脚本是用于安装建立服务器或当你没有管理特权时希望安装工具(请注意上面提示的必备的事物)。你可以在 安装脚本参考主题 找到更多的信息。如果你对如何在持续集成(CI)生成服务器上配置 CLI,请查看 CLI 和 CI 服务器 文档。

默认情况下,CLI 将以一个并行的(SxS)方式安装。这意味着的多个版本的 CLI 工具可以在一台机器上在任何给定的时间共存。如何正确的解释学会使用,在下面的 驱动部分 是更详细的说明。

CLI 有哪些命令?

默认情况下安装以下命令:

也有一种方法可以在每个项目基础上导入更多的命令,以及添加自己的命令。这是更详细的说明在 可扩展性部分

使用 CLI 工作

一个简短的例子

在我们进入其它更多细节之前,让我们看看如何使用 CLI 工作,看起来像来自 10,000 英寸的视图。

下面的示例使用来自正常安装的 CLI 几个命令,初始化一个新的、简单的控制台应用程序,还原依赖项,生成应用程序并运行它。

dotnet new
dotnet restore
dotnet build --output /stuff
dotnet /stuff/new.dll

它如何工作?

正如 上面 看到的简短的示例,当你使用 CLI 工具时有一个模式。在这个模式中,我们可以识别每个命令的三个主要部分:

  1. 驱动程序(“dotnet”)
  2. 命令或者 “verb”
  3. 命令参数

让我们深入到上面每个的更多细节。

驱动程序

驱动程序被命名为 dotnet。它是你调用的第一部分。这个驱动程序有两个功能:

  1. 执行 IL 代码
  2. 执行动词(verb)

它所做的两件事依赖于在命令行上指定的东西。在第一种情况下,你可以指定一个 IL 程序集,dotnet 运行类似这个:dotnet /path/to/your.dll

在第二种情况下,该驱动程序试图调用指定的命令。这将开启 CLI 命令执行进程。首选,该驱动程序将确定你想要的工具的版本。你可以在 global.json 文件中使用 sdkVersion 属性指定版本。如果那个不可用,该驱动程序将查找已经在磁盘上安装的工具的最新版本并将使用该版本。一旦版本被确定,它将执行命令。

“动词”

动词是简单的执行操作命令。dotnet build 将生成代码。dotnet publish 将发布代码。动词被实现是作为一个按每一个约定命名的控制台应用程序:dotnet-{verb}。所有的逻辑是表示动词的控制台应用程序实现的。

参数

在命令行上传递的参数是实际调用的 verb/command 的参数。

例如,当你键入 dotnet publish --output publishedapp--output 参数被传递给 publish 命令。

可移植应用程序的类型

CLI 使应用程序可以移植在两个主要方面:

  1. 完全可移植的应用可以在任何安装 .NET Core 地方运行
  2. 独立的应用程序

你可以在 应用程序类型描述 主题了解更多有关这两种。

从 DNX 迁移

如果你使用 .NET Core RC1 DNX,你可能想知道发生了什么和这些新工具与 DNX 工具如何有联系。总而言之,DNX 工具已经被 .NET Core CLI 工具代替了。

如果你有已存在的项目,或者是仅仅想知道命令如何映射,你可以使用 DNX 迁移到 CLI 文档 来获取所有的详细信息。

扩展性

当然,不是每一个工具你可以使用你的工作将是 core CLI 工具的一部分。但是,.NET Core CLI 具有扩展模式,允许你为你的项目指定额外的工具。你可以在 可扩展性文档 查出更多信息。

更多资源

这是 CLI 的最重要的一个特征的简短概述。在这个网站你可以找到更多的使用参考和概念主题。也有其他的资源你可以使用:

『.NET Core CLI工具文档』(一).NET Core 命令行工具(CLI)的更多相关文章

  1. 『.NET Core CLI工具文档』(九)dotnet-run

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:dotnet-run 翻译:dotnet-run 名称 dotnet-run -- 没有任何明确的编译或启动命令运行&q ...

  2. 『.NET Core CLI工具文档』(十一)dotnet-test

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:dotnet-test 翻译:dotnet-test 名称 dotnet-test - 使用配置的测试运行器运行单元测试 ...

  3. 『.NET Core CLI工具文档』(六)dotnet 命令

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:dotnet command 翻译:dotnet 命令 名称 dotnet -- 运行命令行命令的一般驱动程序 概要 d ...

  4. 『.NET Core CLI工具文档』(二).NET Core 工具遥测(应用信息收集)

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:.NET Core Tools Telemetry 翻译:.NET Core 工具遥测(应用信息收集) .NET Cor ...

  5. 『.NET Core CLI工具文档』(八)dotnet-restore

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:dotnet-restore 翻译:dotnet-restore 名称 dotnet-restore - 还原一个项目的 ...

  6. 『.NET Core CLI工具文档』(七)dotnet-new

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:dotnet-new 翻译:dotnet-new 名称 dotnet-new -- 创建一个新的 .NET Core 项 ...

  7. 『.NET Core CLI工具文档』(十四)dotnet-install 脚本参考

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:dotnet-install scripts reference 翻译:dotnet-install 脚本参考 名称 d ...

  8. 『.NET Core CLI工具文档』(十)dotnet-build

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:dotnet-build 翻译:dotnet-build 名称 dotnet-build -- 生成项目和所有的依赖 概 ...

  9. 『.NET Core CLI工具文档』(十三)dotnet-publish

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:dotnet-publish 翻译:dotnet-publish 名称 dotnet-publish - 打包应用程序及 ...

随机推荐

  1. 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...

  2. VS2015使用scanf报错的解决方案

    1.在程序最前面加: #define _CRT_SECURE_NO_DEPRECATE 2.在程序最前面加: #pragma warning(disable:4996) 3.把scanf改为scanf ...

  3. 【干货分享】流程DEMO-付款申请单

    流程名: 付款申请单  业务描述: 包括每月固定开支.固定资产付款.办公用品付款.工资发放.个人所得税缴纳.营业税缴纳.公积金.社保缴纳和已签订合同的按期付款,最后是出纳付款,出纳核对发票. 流程发起 ...

  4. 三星Note 7停产,原来是吃了流程的亏

    三星Note 7发售两个月即成为全球噩梦,从首炸到传言停产仅仅47天.所谓"屋漏偏逢连天雨",相比华为.小米等品牌对其全球市场的挤压.侵蚀,Galaxy Note 7爆炸事件这场连 ...

  5. 【代码笔记】iOS-获得当前的月的天数

    一,代码. #import "ViewController.h" @interface ViewController () @end @implementation ViewCon ...

  6. Linux服务器安全配置

    众所周知,网络安全是一个非常重要的课题,而服务器是网络安全中最关键的环节.Linux被认为是一个比较安全的Internet服务器,作为一种开放源代码操作系统,一旦Linux系统中发现有安全漏洞,Int ...

  7. 警惕!高版本VS发布时预编译导致Mono中Razor找不到视图

    早前一段时间,一位朋友在Q群里面找到我,说它按照<Linux.NET学习手记>的操作,把一个ASP.NET MVC 4.0的项目部署到Mono之后出现Razor无法找到视图的现象.当时费了 ...

  8. C#移动跨平台开发(2)Xamarin移动跨平台解决方案是如何工作的?

    概述 上一篇 C#移动跨平台开发(1)环境准备发布之后不久,无独有偶,微软宣布了开放.NET框架源代码并且会为Windows.Mac和Linux开发一个核心运行时(Core CLR),这也是开源的!I ...

  9. 写给.NET开发者的数据库Migration方案

    微软给我们提供了一种非常好用的数据库迁移方案,但是我发现周围的同学用的并不多,所以我还是想把这个方案整理一下..NET选手看过来,特别是还在通过手工执行脚本来迁移数据库的同学们,当然你也可以选择EF的 ...

  10. Egret3D研究报告(二)从Unity3D导出场景到Egret3D

    Egret3D暂时没有场编的计划,但是我们知道unity3D是一个很好的场编. 有一些游戏即使不是使用Unity3D开发,也使用Unity3D做场编.这里就不点名了,而且并不在少数. 我们就这么干. ...