当前位置: 首页 > news >正文

dotnet命令详解

零、文章目录

dotnet命令详解

1、dotnet安装

(1)介绍
  • dotnet命令行工具是.NET Core command-line (CLI) 的一部分,使用前需要安装.NET SDK。
  • 安装.NET SDK 有两种方式
    • 手动安装
    • 随 Visual Studio 安装
(2)手动安装
  • 官方下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet
(3)随VS安装
  • 安装Visual Studio 的时候会安装.NET SDK
  • 官方下载地址:https://visualstudio.microsoft.com/zh-hans/
  • .NET SDK 版本和Visual Studio 版本对应关系
.NET SDK 版本Visual Studio 版本
8Visual Studio 2022 17.8 版或更高版本
7Visual Studio 2022 17.4 版或更高版本
6Visual Studio 2022 版本 17.0 或更高版本
5Visual Studio 2019 版本 16.8 或更高版本
3.1Visual Studio 2019 版本 16.4 或更高版本
3.0Visual Studio 2019 版本 16.3 或更高版本
(4)检验安装
  • 命令行输入,可以查看当前的版本信息
dotnet --info

2、基本信息查询

(1)dotnet(基本功能)
D:\DEV>dotnetUsage: dotnet [options]
Usage: dotnet [path-to-application]Options:-h|--help         Display help.--info            Display .NET information.--list-sdks       Display the installed SDKs.--list-runtimes   Display the installed runtimes.path-to-application:The path to an application .dll file to execute.
(2)dotnet -h(查看帮助)
D:\DEV>dotnet -h
使用情况: dotnet [runtime-options] [path-to-application] [arguments]执行 .NET 应用程序。runtime-options:--additionalprobingpath <path>   要探测的包含探测策略和程序集的路径。--additional-deps <path>         指向其他 deps.json 文件的路径。--depsfile                       指向 <application>.deps.json 文件的路径。--fx-version <version>           要用于运行应用程序的安装版共享框架的版本。--roll-forward <setting>         前滚至框架版本(LatestPatch, Minor, LatestMinor, Major, LatestMajor, Disable)。--runtimeconfig                  指向 <application>.runtimeconfig.json 文件的路径。path-to-application:要执行的应用程序 .dll 文件的路径。使用情况: dotnet [sdk-options] [command] [command-options] [arguments]执行 .NET SDK 命令。sdk-options:-d|--diagnostics  启用诊断输出。-h|--help         显示命令行帮助。--info            显示 .NET 信息。--list-runtimes   显示安装的运行时。--list-sdks       显示安装的 SDK。--version         显示使用中的 .NET SDK 版本。SDK 命令:add               将包或引用添加到 .NET 项目。build             生成 .NET 项目。build-server      与由生成版本启动的服务器进行交互。clean             清理 .NET 项目的生成输出。format            将样式首选项应用到项目或解决方案。help              在浏览器中打开指定命令的引用页。list              列出 .NET 项目的包或引用。msbuild           运行 Microsoft 生成引擎(MSBuild)命令。new               创建新的 .NET 项目或文件。nuget             提供其他 NuGet 命令。pack              创建 NuGet 包。publish           发布 .NET 项目进行部署。remove            从 .NET 项目中删除包或引用。restore           还原 .NET 项目中指定的依赖项。run               生成并运行 .NET 项目输出。sdk               管理 .NET SDK 安装。solution          修改 Visual Studio 解决方案文件。store             在运行时包存储中存储指定的程序集。test              使用 .NET 项目中指定的测试运行程序运行单元测试。tool              安装或管理扩展 .NET 体验的工具。vstest            运行 Microsoft 测试引擎(VSTest)命令。workload          管理可选工作负荷。捆绑工具中的其他命令:dev-certs         创建和管理开发证书。fsi               启动 F# 交互/执行 F# 脚本。user-jwts         在开发中管理 JSON Web 令牌。user-secrets      管理开发用户密码。watch             启动文件观察程序,它会在文件发生更改时运行命令。运行 "dotnet [command] --help",获取有关命令的详细信息。
(3)dotnet --info(显示 Net 信息)
D:\DEV>dotnet --info
.NET SDK:Version:           9.0.201Commit:            071aaccdc2Workload version:  9.0.200-manifests.a3a1a094MSBuild version:   17.13.13+1c2026462运行时环境:OS Name:     WindowsOS Version:  10.0.18363OS Platform: WindowsRID:         win-x64Base Path:   C:\Program Files\dotnet\sdk\9.0.201\已安装 .NET 工作负载:
没有要显示的已安装工作负载。
配置为在安装新清单时使用 loose manifests。Host:Version:      9.0.3Architecture: x64Commit:       831d23e561.NET SDKs installed:8.0.100 [C:\Program Files\dotnet\sdk]9.0.201 [C:\Program Files\dotnet\sdk].NET runtimes installed:Microsoft.AspNetCore.App 6.0.36 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]Microsoft.AspNetCore.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]Microsoft.AspNetCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]Microsoft.AspNetCore.App 8.0.14 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]Microsoft.AspNetCore.App 9.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]Microsoft.NETCore.App 6.0.36 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]Microsoft.NETCore.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]Microsoft.NETCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]Microsoft.NETCore.App 8.0.14 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]Microsoft.NETCore.App 9.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]Microsoft.WindowsDesktop.App 6.0.36 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]Microsoft.WindowsDesktop.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]Microsoft.WindowsDesktop.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]Microsoft.WindowsDesktop.App 8.0.14 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]Microsoft.WindowsDesktop.App 9.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]Other architectures found:x86   [C:\Program Files (x86)\dotnet]registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]Environment variables:Not setglobal.json file:Not foundLearn more:https://aka.ms/dotnet/infoDownload .NET:https://aka.ms/dotnet/download
(4)dotnet --list-sdks(显示安装的 SDK)
D:\DEV>dotnet --list-sdks
8.0.100 [C:\Program Files\dotnet\sdk]
9.0.201 [C:\Program Files\dotnet\sdk]
(5)dotnet --list-runtimes(显示安装的运行时)
D:\DEV>dotnet --list-runtimes
Microsoft.AspNetCore.App 6.0.36 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.14 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.36 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.14 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.36 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.20 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.14 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 9.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
(6)dotnet --version(显示使用中的 .NET SDK 版本)
D:\DEV>dotnet --version
9.0.201
(7)dotnet [command] --help(获取有关命令的详细信息)
  • SDK 命令
    • add 将包或引用添加到 .NET 项目。
    • build 生成 .NET 项目。
    • build-server 与由生成版本启动的服务器进行交互。
    • clean 清理 .NET 项目的生成输出。
    • format 将样式首选项应用到项目或解决方案。
    • help 在浏览器中打开指定命令的引用页。
    • list 列出 .NET 项目的包或引用。
    • msbuild 运行 Microsoft 生成引擎(MSBuild)命令。
    • new 创建新的 .NET 项目或文件。
    • nuget 提供其他 NuGet 命令。
    • pack 创建 NuGet 包。
    • publish 发布 .NET 项目进行部署。
    • remove 从 .NET 项目中删除包或引用。
    • restore 还原 .NET 项目中指定的依赖项。
    • run 生成并运行 .NET 项目输出。
    • sdk 管理 .NET SDK 安装。
    • solution 修改 Visual Studio 解决方案文件。
    • store 在运行时包存储中存储指定的程序集。
    • test 使用 .NET 项目中指定的测试运行程序运行单元测试。
    • tool 安装或管理扩展 .NET 体验的工具。
    • vstest 运行 Microsoft 测试引擎(VSTest)命令。
    • workload 管理可选工作负荷。
  • 捆绑工具中的其他命令
    • dev-certs 创建和管理开发证书。
    • fsi 启动 F# 交互/执行 F# 脚本。
    • user-jwts 在开发中管理 JSON Web 令牌。
    • user-secrets 管理开发用户密码。
    • watch 启动文件观察程序,它会在文件发生更改时运行命令。
D:\DEV>dotnet new --help
Description:.NET CLI 的模板实例化命令。用法:dotnet new [<template-short-name> [<template-args>...]] [options]dotnet new [command] [options]参数:<template-short-name>  要创建的模板的短名称。<template-args>        要使用的模板特定选项。选项:-o, --output <output>    要放置生成的输出的位置。-n, --name <name>        正在创建的输出名称。如未指定名称,则使用输出目录的名称。--dry-run                如果运行给定命令行将导致模板创建,则显示将发生情况的摘要。--force                  强制生成内容 (即使它会更改现有文件)。--no-update-check        在实例化模板时,禁用对模板包更新的检查。--project <project>      应用于上下文评估的项目。-v, --verbosity <LEVEL>  设置详细级别。允许的值为 q[uiet]、m[inimal]、n[ormal]、diag[nostic][default: normal]-d, --diagnostics        启用诊断输出。-?, -h, --help           显示命令行帮助。命令:create <template-short-name> <template-args>  实例化具有给定短名称的模板。"dotnet new <template name>" 的别名。install <package>                             安装模板包。uninstall <package>                           卸载模板包。update                                        检查当前安装的模板包是否有更新,然后安装更新。search <template-name>                        在 NuGet.org 上搜索模板。list <template-name>                          列出包含指定模板名称的模板。如果未指定任何名称,则列出所有模板。details <package-identifier>                  提供指定模板包的详细信息。命令将检查本地是否安装了包;如果未找到,它会搜索所配置的 NuGet 源。

3、项目生命周期命令

(1)dotnet new(创建新的 .NET 项目或文件)
  • 功能:基于模板创建新项目或解决方案文件。
  • 常用参数:
    • -o:指定输出目录(如 dotnet new console -o MyApp
    • -n:设置项目名称
    • --framework:指定目标框架(如 net8.0
dotnet new sln -o MySolution          # 创建解决方案 
dotnet new webapi -n MyApi            # 创建 Web API 项目 
dotnet sln add MyApi/MyApi.csproj      # 将项目加入解决方案
  • 常用模板如下
D:\DEV>dotnet new list
这些模板已匹配你的输入:模板名                                                         短名称                           语言        标记
-------------------------------------------------------------  -------------------------------  ----------  ------------------------------------------------------------------------------------
API 控制器                                                     apicontroller                    [C#]        Web/ASP.NET
ASP.NET Core gRPC 服务                                         grpc                             [C#]        Web/gRPC/API/Service
ASP.NET Core Web API                                           webapi                           [C#],F#     Web/WebAPI/Web API/API/Service
ASP.NET Core Web API (native AOT)                              webapiaot                        [C#]        Web/Web API/API/Service
ASP.NET Core Web 应用                                          webapp,razor                     [C#]        Web/MVC/Razor Pages
ASP.NET Core Web 应用(模型-视图-控制器)                        mvc                              [C#],F#     Web/MVC
ASP.NET Core 与 Angular                                        angular                          [C#]        Web/MVC/SPA
ASP.NET Core 与 React.js                                       react                            [C#]        Web/MVC/SPA
ASP.NET Core 空                                                web                              [C#],F#     Web/Empty
Blazor Server 应用                                             blazorserver                     [C#]        Web/Blazor
Blazor Server 应用空                                           blazorserver-empty               [C#]        Web/Blazor/Empty
Blazor Web 应用                                                blazor                           [C#]        Web/Blazor/WebAssembly
Blazor WebAssembly 应用空                                      blazorwasm-empty                 [C#]        Web/Blazor/WebAssembly/PWA/Empty
Blazor WebAssembly 独立应用                                    blazorwasm                       [C#]        Web/Blazor/WebAssembly/PWA
dotnet gitignore 文件                                          gitignore,.gitignore                         Config
Dotnet 本地工具清单文件                                        tool-manifest                                Config
EditorConfig 文件                                              editorconfig,.editorconfig                   Config
global.json file                                               globaljson,global.json                       Config
MSBuild Directory.Build.props 文件                             buildprops                                   MSBuild/props
MSBuild Directory.Build.targets 文件                           buildtargets                                 MSBuild/props
MSBuild Directory.Packages.props 文件                          packagesprops                                MSBuild/packages/props/CPM
MSTest Playwright 测试项目                                     mstest-playwright                [C#]        Test/MSTest/Playwright/Desktop/Web
MSTest 测试类                                                  mstest-class                     [C#],F#,VB  Test/MSTest
MSTest 测试项目                                                mstest                           [C#],F#,VB  Test/MSTest/Desktop/Web
MVC ViewImports                                                viewimports                      [C#]        Web/ASP.NET
MVC ViewStart                                                  viewstart                        [C#]        Web/ASP.NET
MVC 控制器                                                     mvccontroller                    [C#]        Web/ASP.NET
NuGet 配置                                                     nugetconfig,nuget.config                     Config
NUnit 3 测试项                                                 nunit-test                       [C#],F#,VB  Test/NUnit
NUnit 3 测试项目                                               nunit                            [C#],F#,VB  Test/NUnit/Desktop/Web
NUnit Playwright 测试项目                                      nunit-playwright                 [C#]        Test/NUnit/Playwright/Desktop/Web
Razor 类库                                                     razorclasslib                    [C#]        Web/Razor/Library
Razor 组件                                                     razorcomponent                   [C#]        Web/ASP.NET
Razor 视图                                                     view                             [C#]        Web/ASP.NET
Razor 页面                                                     page                             [C#]        Web/ASP.NET
Web 配置                                                       webconfig                                    Config
Windows 窗体应用                                               winforms                         [C#],VB     Common/WinForms
Windows 窗体控件库                                             winformscontrollib               [C#],VB     Common/WinForms
Windows 窗体类库                                               winformslib                      [C#],VB     Common/WinForms
WPF 应用程序                                                   wpf                              [C#],VB     Common/WPF
WPF 用户控件库                                                 wpfusercontrollib                [C#],VB     Common/WPF
WPF 类库                                                       wpflib                           [C#],VB     Common/WPF
WPF 自定义控件库                                               wpfcustomcontrollib              [C#],VB     Common/WPF
xUnit 测试项目                                                 xunit                            [C#],F#,VB  Test/xUnit/Desktop/Web
协议缓冲区文件                                                 proto                                        Web/gRPC
控制台应用                                                     console                          [C#],F#,VB  Common/Console
类库                                                           classlib                         [C#],F#,VB  Common/Library
解决方案文件                                                   sln,solution                                 Solution
辅助角色服务                                                   worker                           [C#],F#     Common/Worker/Web
  • 详细说明
D:\DEV>dotnet new --help
Description:.NET CLI 的模板实例化命令。用法:dotnet new [<template-short-name> [<template-args>...]] [options]dotnet new [command] [options]参数:<template-short-name>  要创建的模板的短名称。<template-args>        要使用的模板特定选项。选项:-o, --output <output>    要放置生成的输出的位置。-n, --name <name>        正在创建的输出名称。如未指定名称,则使用输出目录的名称。--dry-run                如果运行给定命令行将导致模板创建,则显示将发生情况的摘要。--force                  强制生成内容 (即使它会更改现有文件)。--no-update-check        在实例化模板时,禁用对模板包更新的检查。--project <project>      应用于上下文评估的项目。-v, --verbosity <LEVEL>  设置详细级别。允许的值为 q[uiet]、m[inimal]、n[ormal]、diag[nostic][default: normal]-d, --diagnostics        启用诊断输出。-?, -h, --help           显示命令行帮助。命令:create <template-short-name> <template-args>  实例化具有给定短名称的模板。"dotnet new <template name>" 的别名。install <package>                             安装模板包。uninstall <package>                           卸载模板包。update                                        检查当前安装的模板包是否有更新,然后安装更新。search <template-name>                        在 NuGet.org 上搜索模板。list <template-name>                          列出包含指定模板名称的模板。如果未指定任何名称,则列出所有模板。details <package-identifier>                  提供指定模板包的详细信息。命令将检查本地是否安装了包;如果未找到,它会搜索所配置的 NuGet 源。
(2)dotnet restore(还原 .NET 项目中指定的依赖项)
  • 功能:还原项目依赖的 NuGet 包(现代 .NET 版本中通常由 buildrun 隐式调用)。
  • 显式使用场景:需强制更新依赖时(如 dotnet restore --force)。
  • 详细说明:
D:\DEV>dotnet restore --help
Description:.NET 依赖项恢复程序用法:dotnet restore [<PROJECT | SOLUTION>...] [options]参数:<PROJECT | SOLUTION>  要操作的项目或解决方案文件。如果没有指定文件,则命令将在当前目录里搜索一个文件。选项:--disable-build-servers             强制命令忽略任何永久性生成服务器。-s, --source <SOURCE>               用于还原的 NuGet 包源。--packages <PACKAGES_DIR>           要将包还原到其中的目录。--ucr, --use-current-runtime        将当前运行时用作目标运行时。--disable-parallel                  防止并行还原多个项目。--configfile <FILE>                 要使用的 NuGet 配置文件。--no-http-cache                     禁用包的 Http 缓存。--ignore-failed-sources             将包源失败视为警告。-f, --force                         强制解析所有依赖项,即使最后一次还原已经成功。这等效于删除 project.assets.json。-r, --runtime <RUNTIME_IDENTIFIER>  要还原包的目标运行时。--no-dependencies                   请勿还原项目到项目引用,仅还原指定项目。-v, --verbosity <LEVEL>             设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。--interactive                       允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。--artifacts-path <ARTIFACTS_DIR>    工件路径。项目中的所有输出(包括生成、发布和打包输出)都将放到指定路径下的子文件夹中。--use-lock-file                     允许生成项目锁定文件并与还原一起使用。--locked-mode                       不允许更新项目锁定文件。--lock-file-path <LOCK_FILE_PATH>   写入项目锁定文件的输出位置。默认情况下, 此位置为 "PROJECT_ROOT\packages.lock.json"。--force-evaluate                    即使锁定文件已存在,也强制还原以重新评估所有依赖项。-a, --arch <ARCH>                   目标体系结构。-?, -h, --help                      显示命令行帮助。
(3)dotnet build(生成 .NET 项目)
  • 功能:编译项目并生成程序集。
  • 关键参数:
    • -c:指定配置(如 Release
    • -r:目标运行时(如 linux-x64
    • --no-restore:跳过隐式还原。
dotnet build -c Release -r linux-x64  # 编译 Linux 平台的 Release 版本
  • 详细说明:
D:\DEV>dotnet build --help
Description:.NET 生成器用法:dotnet build [<PROJECT | SOLUTION>...] [options]参数:<PROJECT | SOLUTION>  要操作的项目或解决方案文件。如果没有指定文件,则命令将在当前目录里搜索一个文件。选项:--ucr, --use-current-runtime         将当前运行时用作目标运行时。-f, --framework <FRAMEWORK>          要生成的目标框架。必须在项目文件中指定目标框架。-c, --configuration <CONFIGURATION>  用于生成项目的配置。大多数项目的默认值是 "Debug"。-r, --runtime <RUNTIME_IDENTIFIER>   要生成的目标运行时。--version-suffix <VERSION_SUFFIX>    设置生成项目时使用的 $(VersionSuffix) 属性的值。--no-restore                         生成前请勿还原项目。--interactive                        允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。-v, --verbosity <LEVEL>              设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。--debug-o, --output <OUTPUT_DIR>            要放置生成项目的输出目录。--artifacts-path <ARTIFACTS_DIR>     工件路径。项目中的所有输出(包括生成、发布和打包输出)都将放到指定路径下的子文件夹中。--no-incremental                     请勿使用增量生成。--no-dependencies                    请勿生成项目到项目引用,仅生成指定项目。--nologo                             不显示启动版权标志或版权消息。--sc, --self-contained               随应用程序一起发布 .NET 运行时,这样就不需要在目标计算机上安装运行时。默认值为 "false"。但目标为 .NET 7 或更低版本时,如果指定了运行时标识符,则默认值为 "true"。--no-self-contained                  将应用程序发布为依赖框架的应用程序。目标计算机上必须安装兼容的 .NET 运行时才能运行该应用程序。-a, --arch <ARCH>                    目标体系结构。--os <OS>                            目标操作系统。--disable-build-servers              强制命令忽略任何永久性生成服务器。-?, -h, --help                       显示命令行帮助。
(4)dotnet run (生成并运行 .NET 项目输出)
  • 功能:编译并立即运行项目(默认 Debug 配置)。
  • 重要参数:
    • --urls:指定监听地址(如 http://0.0.0.0:5000
    • --environment:设置环境(如 Production
    • --no-build:跳过编译阶段。
dotnet run --urls=http://localhost:8080 --environment=Production
  • 详细说明:
D:\DEV>dotnet run --help
Description:.NET 运行命令用法:dotnet run [<applicationArguments>...] [options]参数:<applicationArguments>  Arguments passed to the application that is being run. []选项:-c, --configuration <CONFIGURATION>     要运行的配置。大多数项目的默认值是 "Debug"。-f, --framework <FRAMEWORK>             要运行的目标框架。必须在项目文件中指定目标框架。-r, --runtime <RUNTIME_IDENTIFIER>      要为其运行的目标运行时。--project <project>                     要运行的项目文件的路径(如果只有一个项目,则默认使用当前目录)。-lp, --launch-profile <launch-profile>  启动应用程序时使用的启动配置文件名称(如果有).--no-launch-profile                     请勿尝试使用 launchSettings.json 配置应用程序。--no-build                              运行之前不要生成项目。Implies --no-restore.--interactive                           允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。--no-restore                            生成前请勿还原项目。--sc, --self-contained                  随应用程序一起发布 .NET 运行时,这样就不需要在目标计算机上安装运行时。默认值为 "false"。但目标为 .NET 7 或更低版本时,如果指定了运行时标识符,则默认值为 "true"。--no-self-contained                     将应用程序发布为依赖框架的应用程序。目标计算机上必须安装兼容的 .NET 运行时才能运行该应用程序。-v, --verbosity <LEVEL>                 设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。-a, --arch <ARCH>                       目标体系结构。--os <OS>                               目标操作系统。--disable-build-servers                 强制命令忽略任何永久性生成服务器。--artifacts-path <ARTIFACTS_DIR>        工件路径。项目中的所有输出(包括生成、发布和打包输出)都将放到指定路径下的子文件夹中。-e, --environment <NAME="VALUE">        设置环境变量的值。如果该变量不存在,则创建它;如果它已存在,则替代它。这将在隔离的进程中强制运行测试。可多次指定此参数来提供多个变量。示例:-e VARIABLE=abc-e VARIABLE="value with spaces"-e VARIABLE="value;seperated with;semicolons"-e VAR1=abc -e VAR2=def -e VAR3=ghi-?, -h, --help                          显示命令行帮助。
(5)dotnet watch(监视文件变动并启动热重载)
  • 功能:监视文件变动并自动重启或热重载应用。
  • 场景:开发时实时更新(如 dotnet watch run)。
  • 热重载触发:按 Ctrl+R 手动重启。
dotnet watch run --project MyApi/
  • 详细说明:
D:\DEV>dotnet watch --help
Description:环境变量:DOTNET_USE_POLLING_FILE_WATCHER设置为 "1""true" 时,dotnet-watch 将轮询文件系统更改。对于某些文件系统来说(如网络共享,Docker 装载的卷和其他虚拟文件系统),这是必需的。DOTNET_WATCHdotnet-watch 在启动的所有子进程上将此变量设置为 "1"。DOTNET_WATCH_ITERATIONdotnet-watch 将此变量设置为 "1",每次递增一一个文件已更改,并且命令已重新启动。DOTNET_WATCH_SUPPRESS_EMOJIS当设置为 "1""true" 时,dotnet-watch 不会在中显示表情符号控制台输出。备注:特殊选项 "--" 用于分隔选项的末尾和将传递给子 dotnet 进程的参数的开头。例如: dotnet watch -- --verbose run尽管 dotnet-watch 支持 "--verbose" 选项,但 "--" 的使用指示应将 "--verbose" 转而视为dotnet-run 的参数。示例:dotnet watch rundotnet watch test用法:dotnet-watch [options] [[--] <additional arguments>...]]选项:-?, -h, --help                       Show help and usage information--version                            显示版本信息-q, --quiet                          抑制所有输出(警告和错误除外)--verbose                            显示详细输出--no-hot-reload                      抑制支持的应用的热重载。--non-interactive                    在非交互模式下运行 dotnet-watch。只有在启用了热重载的情况下运行时,才支持此选项。使用此选项可防止捕获控制台输入。--list                               列出所有发现的文件,而不启动观察程序。-c, --configuration <CONFIGURATION>  要运行的配置。大多数项目的默认值是 "Debug"。-f, --framework <FRAMEWORK>          要运行的目标框架。必须在项目文件中指定目标框架。-r, --runtime <RUNTIME_IDENTIFIER>--interactive                        允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。--no-restore                         生成前请勿还原项目。--sc, --self-contained               随应用程序一起发布 .NET 运行时,这样就不需要在目标计算机上安装运行时。默认值为 "false"。但目标为 .NET 7 或更低版本时,如果指定了运行时标识符,则默认值为 "true"。--no-self-contained                  将应用程序发布为依赖框架的应用程序。目标计算机上必须安装兼容的 .NET 运行时才能运行该应用程序。-v, --verbosity <LEVEL>              设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。-a, --arch <ARCH>                    目标体系结构。--os <OS>                            目标操作系统。--disable-build-servers              强制命令忽略任何永久性生成服务器。--artifacts-path <ARTIFACTS_DIR>     工件路径。项目中的所有输出(包括生成、发布和打包输出)都将放到指定路径下的子文件夹中。附加参数:Arguments passed to the application that is being run.
(6)dotnet test (执行单元测试)
  • 功能:执行单元测试。
  • 参数:
    • --filter:按条件筛选测试用例(如 FullyQualifiedName~MyTestClass
    • --collect:启用诊断工具(如代码覆盖率 --collect "XPlatCodeCoverage")。
dotnet test --filter "Category=Integration"  # 运行标记为 Integration 的测试
  • 详细说明:
D:\DEV>dotnet test --help
Description:.NET 测试驱动程序用法:dotnet test [options] [[--] <additional arguments>...]]选项:-s, --settings <SETTINGS_FILE>       运行测试时要使用的设置文件。-t, --list-tests                     列出已发现的测试,而不是运行测试。-e, --environment <NAME="VALUE">     设置环境变量的值。如果该变量不存在,则创建它;如果它已存在,则替代它。这将在隔离的进程中强制运行测试。可多次指定此参数来提供多个变量。示例:-e VARIABLE=abc-e VARIABLE="value with spaces"-e VARIABLE="value;seperated with;semicolons"-e VAR1=abc -e VAR2=def -e VAR3=ghi--filter <EXPRESSION>                运行与给定表达式匹配的测试。示例:运行优先级设置为 1 的测试: --filter "Priority = 1"运行指定全名的测试: --filter "FullyQualifiedName=Namespace.ClassName.MethodName"运行包含指定名称的测试: --filter "FullyQualifiedName~Namespace.Class"有关筛选支持的详细信息,请参阅 https://aka.ms/vstest-filtering。--test-adapter-path <ADAPTER_PATH>   自定义适配器用于测试运行的路径。-l, --logger <LOGGER>                要用于测试结果的记录器。示例:使用唯一的文件名登录 trx 格式: --记录器 trx使用指定的文件名登录 trx 格式: --记录器 "trx;LogFileName=<TestResults.trx>"有关记录器参数的详细信息,请参阅 https://aka.ms/vstest-report。-o, --output <OUTPUT_DIR>            要放置生成项目的输出目录。--artifacts-path <ARTIFACTS_DIR>     工件路径。项目中的所有输出(包括生成、发布和打包输出)都将放到指定路径下的子文件夹中。-d, --diag <LOG_FILE>                启用对指定文件的详细记录。--no-build                           测试之前不要生成项目。Implies --no-restore.--results-directory <RESULTS_DIR>    要放置测试结果的目录。若不存在,将创建指定目录。--collect <DATA_COLLECTOR_NAME>      用于测试运行的数据收集器的友好名称。有关详细信息,请访问: https://aka.ms/vstest-collect--blame                              在追责模式下运行测试。此选项有助于隔离导致测试主机出现故障或挂起的有问题的测试,但默认情况下它不会创建内存转储。检测到故障时,它会在 TestResults/guid/guid_Sequence.xml 中创建顺序文件,该文件捕获故障前测试运行的顺序。基于其他设置,还可以收集挂起转储或故障转储。示例:当测试时长超过默认超时时长(1 小时)时,对测试运行执行超时操作,当测试主机意外退出时,收集故障转储。(故障转储需要其他设置,请参阅下文。)dotnet test --blame-hang --blame-crash示例:当测试时长超过 20 分钟时,对测试运行执行超时操作并收集挂起转储。dotnet test --blame-hang-timeout 20min--blame-crash                        在追责模式下运行测试,并在测试主机意外退出时收集故障转储。此选项取决于使用的 .NET 版本、错误类型和操作系统。对于托管代码中的异常,将在 .NET 5.0 及更高版本上自动收集转储。它将为 testhost 或同样在 .NET 5.0 上运行并出现故障的任何子进程生成转储。本机代码中的崩溃不会生成转储。此选项适用于 Windows、macOS 和 Linux。只能使用 Procdump 在 Windows 上收集本机代码或者面向 .NET Framework 或 .NET Core 3.1 及更早版本的故障转储。包含 procdump.exe 和 procdump64.exe 的目录必须位于 PATH 或 PROCDUMP_PATH 环境变量中。可在此处下载工具: https://docs.microsoft.com/sysinternals/downloads/procdump若要从在 .NET 5.0 或更高版本上运行的本机应用程序收集故障转储,可以通过将 VSTEST_DUMP_FORCEPROCDUMP 环境变量设置为 1 来强制使用 Procdump。表示 --blame。--blame-crash-dump-type <DUMP_TYPE>  要收集的故障转储的类型。支持的值为 full (默认)和 mini。表示 --blame-crash。--blame-crash-collect-always         允许在预期和意外的 testhost 退出时收集故障转储。--blame-hang                         在追责模式下运行测试,并允许在测试超过给定超时时长时收集挂起转储。Implies --blame-hang。--blame-hang-dump-type <DUMP_TYPE>   要收集的故障转储的类型。支持的值为 full (默认值)、mini 和 none。使用“none”时,测试主机将在超时时终止,但不会收集任何转储。表示 --blame-hang。--blame-hang-timeout <TIMESPAN>      每次测试超时,超过该超时后将触发挂起转储并终止 testost 进程。默认值为 1 小时。使用以下格式指定超时值: 1.5h / 90m / 5400s / 5400000ms。如果不使用单位(例如 5400000),则假定该值以毫秒为单位。如果与数据驱动的测试一起使用,则超时行为取决于所使用的测试适配器。对于 xUnit、NUnit 和 MSTest 2.2.4+,超时会在每个测试用例后更新,对于 2.2.4 之前的 MSTest,超时用于所有测试用例。--nologo                             运行测试,而不显示 Microsoft Testplatform 版权标志-c, --configuration <CONFIGURATION>  用于运行测试的配置。大多数项目的默认值是 "Debug"。-f, --framework <FRAMEWORK>          运行测试的目标框架。必须在项目文件中指定目标框架。-r, --runtime <RUNTIME_IDENTIFIER>   要为其测试的目标运行时。--no-restore                         生成前请勿还原项目。--interactive                        允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。-v, --verbosity <LEVEL>              设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。-a, --arch <ARCH>                    目标体系结构。--os <OS>                            目标操作系统。--disable-build-servers              强制命令忽略任何永久性生成服务器。-?, -h, --help                       显示命令行帮助。附加参数:Arguments passed to the application that is being run.
(7)dotnet publish(发布 .NET 项目进行部署)
  • 功能:生成可部署包。
  • 部署模式:
    • 独立部署:包含运行时(--self-contained true
    • 框架依赖:依赖目标机器运行时(--self-contained false)。
dotnet publish -c Release -r win-x64 --self-contained true  # 打包 Windows 独立应用 
  • 详细说明:
D:\DEV>dotnet publish --help
Description:适用于 .NET 平台的发布服务器用法:dotnet publish [<PROJECT | SOLUTION>...] [options]参数:<PROJECT | SOLUTION>  要操作的项目或解决方案文件。如果没有指定文件,则命令将在当前目录里搜索一个文件。选项:--ucr, --use-current-runtime         将当前运行时用作目标运行时。-o, --output <OUTPUT_DIR>            要放置已发布项目的输出目录。--artifacts-path <ARTIFACTS_DIR>     工件路径。项目中的所有输出(包括生成、发布和打包输出)都将放到指定路径下的子文件夹中。--manifest <MANIFEST>                指向目标清单文件的路径,该文件包含要通过发布步骤执行的包的列表。--no-build                           发布之前不要生成项目。Implies --no-restore.--sc, --self-contained               随应用程序一起发布 .NET 运行时,这样就不需要在目标计算机上安装运行时。默认值为 "false"。但目标为 .NET 7 或更低版本时,如果指定了运行时标识符,则默认值为 "true"。--no-self-contained                  将应用程序发布为依赖框架的应用程序。目标计算机上必须安装兼容的 .NET 运行时才能运行该应用程序。--nologo                             不显示启动版权标志或版权消息。-f, --framework <FRAMEWORK>          要发布的目标框架。必须在项目文件中指定目标框架。-r, --runtime <RUNTIME_IDENTIFIER>   要发布的目标运行时。在创建自包含部署时使用。默认情况下发布依赖于框架的应用程序。-c, --configuration <CONFIGURATION>  发布所对应的配置。对于 NET 8.0 及更高版本的项目,默认值为 "Release",但对于较低版本的项目,默认值为 "Debug"。--version-suffix <VERSION_SUFFIX>    设置生成项目时使用的 $(VersionSuffix) 属性的值。--interactive                        允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。--no-restore                         生成前请勿还原项目。-v, --verbosity <LEVEL>              设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。-a, --arch <ARCH>                    目标体系结构。--os <OS>                            目标操作系统。--disable-build-servers              强制命令忽略任何永久性生成服务器。-?, -h, --help                       显示命令行帮助。
(8)dotnet pack(将库项目打包为 NuGet 包)
  • 功能:将库项目打包为 NuGet 包(.nupkg)。
  • 参数:--output 指定输出目录 。
  • 详细说明:
D:\DEV>dotnet pack --help
Description:.NET Core NuGet 包打包程序用法:dotnet pack [<PROJECT | SOLUTION>...] [options]参数:<PROJECT | SOLUTION>  要操作的项目或解决方案文件。如果没有指定文件,则命令将在当前目录里搜索一个文件。选项:-o, --output <OUTPUT_DIR>            要放置生成包的输出目录。--artifacts-path <ARTIFACTS_DIR>     工件路径。项目中的所有输出(包括生成、发布和打包输出)都将放到指定路径下的子文件夹中。--no-build                           打包之前不要生成项目。Implies --no-restore.--include-symbols                    除了输出目录中的常规包之外,还包括带符号的包。--include-source                     包括 PDB 和源文件。源文件放入 nuget 结果包的“src”文件夹中。-s, --serviceable                    在包中设置可用标志。有关详细信息,请参阅 https://aka.ms/nupkgservicing。--nologo                             不显示启动版权标志或版权消息。--interactive                        允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。--no-restore                         生成前请勿还原项目。-v, --verbosity <LEVEL>              设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。--version-suffix <VERSION_SUFFIX>    设置生成项目时使用的 $(VersionSuffix) 属性的值。-c, --configuration <CONFIGURATION>  用于生成包的配置。默认值为 "Release"。--disable-build-servers              强制命令忽略任何永久性生成服务器。--ucr, --use-current-runtime         将当前运行时用作目标运行时。-?, -h, --help                       显示命令行帮助。
(9)生命周期命令总结表
阶段核心命令关键功能常用参数示例
创建dotnet new初始化项目/解决方案-o
, --framework
构建dotnet build编译代码-c Release
, -r linux-x64
运行dotnet run启动应用(开发环境)--urls
, --environment
热更新dotnet watch文件监视与热重载run
, test
测试dotnet test执行单元测试--filter
, --collect
发布dotnet publish生成部署包--self-contained
, -r win-x64
维护dotnet pack创建 NuGet 包--output nupkgs/
  • 隐式还原机制:build/run/test 等命令默认自动执行 restore,可通过 --no-restore 禁用。
  • 跨平台发布:使用 -r 指定运行时标识符(如 linux-arm64)生成平台特定包。

文章转载自:
http://bugologist.zekgq.cn
http://arioso.zekgq.cn
http://bbb.zekgq.cn
http://changeabout.zekgq.cn
http://bern.zekgq.cn
http://asyndetic.zekgq.cn
http://cathedra.zekgq.cn
http://amidogroup.zekgq.cn
http://chokedamp.zekgq.cn
http://birmingham.zekgq.cn
http://affright.zekgq.cn
http://catholicity.zekgq.cn
http://candlewick.zekgq.cn
http://abash.zekgq.cn
http://briefcase.zekgq.cn
http://alliterate.zekgq.cn
http://bobbed.zekgq.cn
http://bosom.zekgq.cn
http://bureaucratist.zekgq.cn
http://bumbo.zekgq.cn
http://bipropellant.zekgq.cn
http://chirognomy.zekgq.cn
http://adage.zekgq.cn
http://bedclothes.zekgq.cn
http://bullshot.zekgq.cn
http://attractable.zekgq.cn
http://angakok.zekgq.cn
http://barnstorm.zekgq.cn
http://adulterated.zekgq.cn
http://babiche.zekgq.cn
http://www.dtcms.com/a/281387.html

相关文章:

  • linux的数据库与web服务器
  • LSTM入门案例(时间序列预测)
  • 平升智慧水务整体解决方案,大数据驱动的智慧水务,让城市供水更智能
  • 康谋分享 | 破解数据瓶颈:智能汽车合成数据架构与应用实践
  • 改进_开源证券_VCF_多尺度量价背离检测因子!
  • 【从0-1的JavaScript】第1篇:JavaScript的引入方式和基础语法
  • 第五章 管道工程 5.2 燃气管道
  • 数据库第三次作业
  • 脚手架新建Vue2/Vue3项目时,项目文件内容的区别
  • yolo-world环境配置
  • 【PCIe 总线及设备入门学习专栏 5.1.1 -- PCIe PERST# 信号的作用】
  • 关于实习的经验贴
  • eSearch识屏 · 搜索 v14.3.0
  • Redis集群搭建(主从、哨兵、读写分离)
  • netstat -tlnp | grep 5000
  • 3.创建表-demo
  • 进程的内存映像,只读区,可读写区,堆,共享库,栈详解
  • 23.将整数转换为罗马数字
  • 磁悬浮轴承的“眼睛”:位移测量核心技术深度解析
  • 【监控实战】Grafana自动登录如何实现
  • 关于tresos Studio(EB)的MCAL配置之FEE
  • dataLoader是不是一次性的
  • 文心一言4.5企业级部署实战:多模态能力与Docker容器化测评
  • 告别手动迁移:使用 PowerShell 一键导出 IIS 配置,让服务器迁移更轻松
  • LSA链路状态通告
  • QT——文件选择对话框 QFileDialog
  • Transformer是什么 - 李沐论文《Attention Is All You Need》精读
  • 内网穿透实例:在 NAT 环境下通过 FRP 配置 ThinLinc 远程桌面 实现外网登录
  • zynq串口的例子
  • 自己训练大模型?MiniMind 全流程解析 (一) 预训练