C#中dotnet CLI命令行_C#命令行工具教程【基础】

来源:NoSQL教程作者:鱼儿头衔:草根站长
导读:本期聚焦于鱼儿创作的《C#中dotnet CLI命令行_C#命令行工具教程【基础】》,敬请观看详情。面对图形界面之外的开发需求,dotnet CLI 为 C# 开发者提供了一套轻量高效的命令行工具链。本文从基础概念讲起,介绍 dotnet CLI 的安装验证、核心命令含义以及完整的项目创建流程。你会看到如何使用 dotnet new 快速生成控制台项目,如何通过 dotnet restore 还原依赖,再借助 dotnet build 编译输出,最后用 dotnet run 直接运行。除了这些高频操作,文章还会补充 dotnet add package、dotnet test 和 dotnet publish 等命令的适用场景,帮助初学者在脱离 IDE 的环境下也能轻松完成开发任务。整个教程以命令驱动,每一步都配有可执行的代码示例,适合刚接触 C# 命令行开发的读者逐步跟练。

dotnet CLI 是微软推出的 .NET 命令行接口,它把项目创建、依赖管理、编译测试发布等流程统一到一组命令中。对于不使用 Visual Studio 或者希望实现自动化脚本的开发者来说,dotnet CLI 是 C# 开发工具箱中不可或缺的一部分。它以简洁的参数结构降低了命令记忆成本,同时又保持了强大的扩展能力,无论是个人学习还是团队协作都能发挥重要作用。

C#中dotnet CLI命令行_C#命令行工具教程【基础】

安装与验证 dotnet CLI 环境

在开始使用命令之前,需要确保本机已经安装 .NET SDK。SDK 包含编译器、运行时以及 dotnet 命令本身。前往官方下载页面安装即可,Windows、Linux 和 macOS 均有对应安装包。安装完成后打开终端,输入以下命令验证:

dotnet --info

该命令会显示当前 SDK 版本、运行时环境以及操作系统信息等。如果命令能够正常输出,说明环境准备就绪。也可以通过 dotnet --version 快速查看版本号。需要注意的是,dotnet CLI 支持跨平台,但某些命令在不同系统上的表现可能有细微差异。例如 Windows 平台可以调用 dotnet msbuild 等内部命令,而 Linux 环境下则更推荐直接使用 dotnet build

如果你使用 Visual Studio 安装的 SDK,命令行工具会自动加入系统 PATH,无需额外配置。如果遇到 dotnet 不是内部或外部命令的提示,通常是因为 PATH 未配置正确,需要手动添加安装目录。在 Windows 系统上,默认安装路径通常为 C:\Program Files\dotnet\,手动配置时需要注意路径中的反斜杠不能省略。而在 Linux 或 macOS 上,dotnet 一般安装在 /usr/share/dotnet/usr/local/share/dotnet,可通过软链接或环境变量指向该目录。

核心命令详解

dotnet CLI 的命令结构遵循一定的模式,最基础的三类命令是 new、build、run。dotnet new 用来创建项目或文件,它支持多种模板如 console、classlib、webapp 等。比如创建一个控制台应用:

dotnet new console -n HelloApp

该命令会在当前目录下生成一个名为 HelloApp 的文件夹,里面包含一个 csproj 工程文件和一个 Program.cs 入口文件。这是所有 C# 项目探险的起点。csproj 文件中记录了目标框架、包引用以及编译配置,是命令行构建的核心依据。如果你需要更精简的项目结构,还可以使用 dotnet new list 查看完整模板列表,并根据实际需求选择合适的模板。

dotnet build 用于编译整个项目,它会根据 csproj 文件中的配置还原依赖并生成可执行程序集。在较新版本的 SDK 中,dotnet build 会自动触发隐式 restore,所以不一定需要先手动运行 dotnet restore。但如果你希望单独控制依赖还原步骤,仍然可以显式执行。编译后的产物默认存放在 bin 目录下,其中 Debug 和 Release 分别对应不同的配置。Debug 配置通常带有符号信息,便于调试;Release 配置则包含更多优化,适合发布。

dotnet run 则结合了编译和运行两个步骤,是开发阶段最常用的命令。它会在编译成功后立即启动应用程序。例如在上一步创建的 HelloApp 目录中执行:

cd HelloApp
dotnet run

控制台会输出 Hello World,这就是你的第一个命令行 C# 程序。除了这几个基础命令,dotnet test 专门用于运行单元测试项目,它会自动查找测试类并执行断言;dotnet publish 用于打包发布,可以将程序部署到目标机器;dotnet add package 则用于快速引用 NuGet 包,让第三方库的集成变得非常直接。

从零开始一个完整的控制台项目

为了更系统地理解这些命令的配合,我们手动模拟一次完整开发流程。首先打开终端,在一个干净的目录中执行:

dotnet new console -n DemoApp
cd DemoApp

这样得到一个默认的控制台工程。接下来用任意编辑器修改 Program.cs,例如加入一个简单的求和功能。程序的核心代码可以写成:

using System;

namespace DemoApp
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 10;
            int b = 20;
            Console.WriteLine($"Sum: {a + b}");
        }
    }
}

注意这里的字符串插值符号 $"...",在命令行环境下也能正常输出。保存文件后,在项目目录执行 dotnet build 编译。构建结果会显示生成成功,以及输出文件的路径。如果需要给项目添加外部依赖,比如使用 Newtonsoft.Json 这个常见的 JSON 库,可以执行:

dotnet add package Newtonsoft.Json

这个命令会自动修改 csproj 文件,在 PackageReference 节点中加入对应的包版本,然后只需在代码中再添加 using 指令,即可使用其中的类型。这种方式非常适合管理第三方依赖,比手动下载 DLL 再添加引用要可靠得多。

等到代码编写完成,就可以用 dotnet run 启动。如果希望发布成单文件可执行程序,可以尝试:

dotnet publish -c Release -r win-x64 --self-contained

其中 -r 指定运行时标识符,--self-contained 表示发布包含运行时,这样目标机器不需要预装 .NET 也能运行。发布后的文件位于 bin/Release/net8.0/win-x64/publish 目录下。这里需要提醒的是,不同 SDK 版本对应的目标框架不同,比如 net8.0、net9.0 等,路径中的 net8.0 需要根据实际项目文件里的 TargetFramework 属性来调整。发布单文件时还可以搭配 --source 参数指定依赖镜像源,不过对于基础教程来说,掌握默认用法已经足够。

命令行技巧与常见问题

在日常使用中,有几个技巧能显著提升效率。第一,善用 dotnet new list 查看所有可用模板,避免记忆冗长的模板名称。第二,使用 dotnet sln 创建解决方案文件,把多个项目组织在一起。例如:

dotnet new sln -n MySolution
dotnet sln MySolution.sln add DemoApp

这样可以实现多项目协同管理,在命令行下也能维护复杂的解决方案。当你建立了一个大型应用,包含多个类库和测试项目时,解决方案文件提供了一站式构建入口。你还可以用 dotnet sln list 查看解决方案中已包含的项目,或者用 dotnet sln remove 移除某个项目,所有操作都无需打开 Visual Studio。

另一个常见问题是清理临时文件。dotnet clean 可以删除 bin 和 obj 目录,让项目恢复干净状态。如果遇到依赖冲突或缓存问题,还可以执行 dotnet nuget locals all --clear 清空 NuGet 缓存。这些命令在自动化构建脚本中非常有用,因为干净的环境能避免旧产物带来的干扰。不过需要注意的是,清空缓存后首次构建会重新下载依赖,可能会消耗一些时间,建议只在确有需要时执行。

最后,不要忘记 dotnet --help 命令,它提供所有命令的完整说明。对于初学者,遇到不确定的参数时先查阅帮助是最稳妥的做法。通过不断练习,你会发现 dotnet CLI 完全可以胜任从简单脚本到大型企业级应用的开发任务,同时还能让你更深入地理解 .NET 构建系统的组成原理。在循环构建和测试的过程中,命令行的高速反馈会逐渐形成一种开发节奏,让你渐渐摆脱图形界面的束缚。

C#dotnet CLI命令行工具修改时间:2026-08-23 06:18:33

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。