.Net Core 中你不可或缺的 10 个命令
在Twitter上关注我,很高兴接受您对主题或改进的建议/Chris
TLDR;这是一篇描述 .Net Core CLI 中的 10 个强大命令的文章,希望对每个人来说都有用,从完全的初学者到更有经验的开发人员。
我从事.Net开发已有多年。其中最棒的部分之一是Visual Studio,它是一款绝对出色的IDE,能够让你轻松编写代码,并支持代码补全、轻松调试和打包应用程序。几年后,我开始使用.Net,并随之推出了.Net Core,它赋予了我跨平台使用.Net的能力。.Net Core还附带了一个非常强大的CLI工具。使用旧版.Net时,你知道后台有一个MSBuild命令,但你很少需要关心它,Visual Studio会为你处理好一切。
虽然使用 .Net Core 您可以同时获得两全其美的效果,但仍然可以获得 Visual Studio 或令人惊叹的 Visual Studio Code 的一流体验,并且通过 CLI 工具我们也可以拥有一流的终端体验。
那么为什么要使用终端命令呢,我是一个 UI 人员?
我知道你们中的许多人都是这样想的(我以前也是这样想的),答案是原因不止一个。
- 脚本是一个很好的理由,脚本可以让我们轻松设置 CI/CD
- 速度是一个因素,使用终端工作通常比使用视觉环境更快。
- 选择你自己的编辑器,它还允许你使用自己喜欢的编辑器。我们都有自己喜欢的编辑器。.Net 过去与 Visual Studio 紧密耦合,现在有了 .Net Core CLI,你可以轻松地通过终端构建、测试、打包和发布你的项目。
无论你认为最引人注目的原因是什么,了解底层运行的命令并了解它们的作用都是有益的。因此,让我们看一下使用 .Net Core CLI 的 10 个最重要的命令:
-1- dotnet new
此命令用于搭建项目。通常,您可以这样调用它:
dotnet new <type of project template> - o <name of directory>
真实的例子可能如下所示:
dotnet new console -o app
上述命令将在目录中创建一个控制台项目app
。此命令还有很多内容,请查看文档页面。
-2- dotnet 恢复
这将恢复项目的依赖项。这到底是什么意思?好吧,当你将 NuGet 包添加到解决方案中时,它会添加对项目文件的引用.csproj
。如果你从 GitHub 检出项目,这些包可能没有版本控制,需要添加到项目中。restore
此时运行将从 NuGet 存储库中获取包。
该命令可以通过两种方式运行:
- 明确地,你输入它,它就会获取你需要的包
- 隐式地,它作为正在执行的另一个命令的一部分运行
以下是隐式运行的命令的完整列表restore
:
- 点网新
- dotnet 构建
- dotnet 构建服务器
- dotnet 运行
- dotnet 测试
- dotnet 发布
- dotnet 包
要了解有关此命令的更多信息,请阅读此处:
-3- dotnet 构建
此命令会构建一个项目及其所有依赖项。如果您位于根目录并且有一个解决方案,那么它将构建整个解决方案,即该解决方案中的所有项目。如果您位于特定的项目目录中,那么它只会构建该目录,具体位置很重要。该命令的功能远不止build
于此,请查看以下链接了解更多详细信息:
-4- dotnet 运行
命令run
就是用来执行代码的。
要使用它,只需将自己置于要运行的项目的项目目录中并输入:
dotnet run
注意:该命令用于项目上下文,而非构建的程序集。如果您尝试运行依赖于框架的应用程序 DLL,则必须使用dotnet
不带命令的命令。例如,要运行 myapp.dll,请使用:
dotnet myapp.dll
要了解有关此命令的更多信息,请查看以下链接:
-5- dotnet 测试
此命令用于执行测试项目的测试。它带有相当多的参数,使您可以运行特定的测试或整个测试套件。
要了解有关此命令的更多信息,请查看以下链接:
如果您对测试完全陌生,请查看我撰写的有关开始测试的文章:
-6- dotnet 包
现在我们进入一个有趣的领域,即创建你自己的 NuGet 包。你可以使用此命令创建一个包,并且可以在本地仓库以及官方的全局仓库中创建包。要了解更多信息,请查看官方文档页面:
另外,请查看我写的一篇关于如何从头开始执行此操作的文章,并了解如何发布您的包以便其他人可以下载它:
-7- dotnet clean
此命令用于清理项目的输出。这意味着它会同时删除 obj 和 bin 文件夹的内容。此命令附带一些参数,例如,您可以选择仅清理特定的运行时或框架。有关此命令的更多信息,请参阅官方文档:
-8- dotnet sln
这是用于管理解决方案的命令。如果您是 dotnet 新手,解决方案会跟踪多个项目,它是管理一组逻辑上属于同一组的不同项目(例如构建或发布可执行文件)的绝佳方式。由于此命令管理与解决方案相关的所有事务,因此最好了解如何入门。
要创建解决方案,您只需将自己置于所选目录中并运行
dotnet new sln
这将创建一个与目录同名的解决方案文件。例如:
cd hello
dotnet new sln
这将创建一个hello.sln
文件。要管理该解决方案,您可以使用以下命令:
- 添加,这将向您的解决方案添加一个项目。
- 删除,这将从您的解决方案中删除一个项目
- 列表,列出解决方案中的所有项目
要了解有关此命令的更多信息,请查看官方文档页面:
此外,请查看我撰写的博客文章,其中教您如何创建解决方案、项目以及如何开始使用 .Net Core
-9- dotnet 添加/删除引用
此命令会将一个项目添加到您的项目中。其目的是,例如,让您的项目使用其他项目的代码。为此,您首先需要添加对该项目的引用,然后编译器和 IDE 才能识别它。例如,您目前正在开发控制台项目app
,并且想要将该项目添加lib
到app
。您可以通过以下两种方式之一执行此操作:
- 添加来自解决方案目录的引用,如果您站在解决方案目录中(应用程序目录的上一级),则键入
dotnet add app/app.csproj reference lib/lib.csproj
- 从当前目录添加引用,然后输入
dotnet add reference lib1/lib1.csproj
要了解有关此命令的更多信息,请查看文档页面:
-10- dotnet 添加/删除包
现在我们又回到了讨论 NuGet 包的问题。该add
命令允许我们通过指定包名来从 NuGet 添加包:
dotnet add package Newtonsoft.Json
这会将包添加Newtonsoft.Json
到我们的项目文件中。它还会运行一个dotnet restore
命令,从 NuGet 仓库中获取包。
要了解有关此命令的更多信息,请查看此链接:
参考
以下是您可能需要的一些参考资料:
-
安装 dotnet
这会带你进入 .Net Core 的安装页面。访问https://dotnet.microsoft.com即可查看。这是一个很棒的 .Net 网站,里面有很多教程。 -
.Net Core 系列
看看我写的这一系列 .Net Core 文章,从 .Net Core 的第一步到无服务器甚至 GraphQL