DotNet 命令行开发
- 下载安装
- 下载 SDK
- 安装 SDK
- 绿色版
- 下载
- 绿化脚本
- 常用命令
- 创建 dotnet new
- 运行 dotnet run
- 发布应用 dotnet publish
- 更多命令
- VSCode 调试
- 所需插件
- 调试 CS
- 配置
- 项目.csproj
- 排除依赖关系
- launch.json
- tasks.json
- 参考资料
下载安装
下载 SDK
我们就下最新的好: .NET 8.0 SDK (v8.0.100) - Windows x64 Installer!
安装 SDK
直接运行,一路下一步即可。
绿色版
下载
https://download.csdn.net/download/jx520/88673976
将压缩包解压到目标路径,如: C:\dotnet
绿化脚本
将当前目录
添加到系统环境变量 PATH
。
以是 VBS 脚本,用于为 dotnet sdk 添加环境变量。
Set WshShell = WScript.CreateObject("WScript.Shell") ' 创建一个 WshShell 对象
currentDir = WshShell.CurrentDirectory ' 获取当前目录' 以管理员权限运行自己(并把当前目录作为参数传过去)
If WScript.Arguments.Length = 0 Then Set ObjShell = CreateObject("Shell.Application") ObjShell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ """ & currentDir & """ RunAsAdministrator", , "runas", 1 WScript.Quit
End if ' 检查是否传递了当前目录作为参数
If WScript.Arguments.Count > 0 ThencurrentDir = WScript.Arguments(0)'MsgBox currentDir, vbOKOnly, "-当前目录-"
End If' 读取当前的 PATH 环境变量
pathEnv = WshShell.Environment("SYSTEM").Item("Path")
MsgBox pathEnv, vbOKOnly, "当前环境变量 Path"' 将当前目录追加到 PATH
updatedPath = pathEnv & ";" & currentDir' 添加 DOTNET_ROOT 环境变量
WshShell.Environment("SYSTEM").Item("DOTNET_ROOT") = currentDir' 更新 PATH 环境变量
WshShell.Environment("SYSTEM").Item("Path") = updatedPath' 通知用户
MsgBox "已将当前目录添加到 PATH 环境变量中。", vbOKOnly, "环境变量更新"' 暂停脚本执行
WScript.Sleep 3000
执行完脚本后新开一个 cmd
执行 dotnet --version
输出版本号则成功。
Microsoft Windows [版本 10.0.22000.1936]
(c) Microsoft Corporation。保留所有权利。C:\>dotnet --version
8.0.100
注意:如果某些IDE环境无法识别新加的环境变量,则重启一下系统。
常用命令
先进入项目根目录
命令 | 说明 | 演示 |
---|---|---|
dotnet new | .NET CLI 的模板实例化命令。 比如:创建解决方案、项目、装卸模板包 | dotnet new <项目模板> -o <项目目录> -n <项目名称> |
dotnet run | 调试运行 | |
dotnet publish | 发布应用 | dotnet publish -c Release -r <目标平台> --self-contained true |
创建 dotnet new
- 在
C:/mysln
位置,创建一个解决方案
dotnet new sln -o C:/mysln
# 或:进入指定目录 `C:/mysln` 后再创建解决方案文件 `mysln.sln`
cd "C:/mysln"
dotnet new sln -n "mysln"
- 在
C:/mysln/demo
位置,创建一个C#
的命令行
项目,然后添加到解决方案
dotnet new "console" -lang "C#" -n <项目名称> -o <项目路径>
# 创建项目
cd "C:/mysln"
dotnet new "console" -lang "C#" -o "demo_path" -n "demo_name"
# 添加到解决方案
dotnet sln "./mysln.sln" add "./demo_path/demo_name.csproj"
- 在
C:/mysln/windemo
位置,创建一个桌面应用
项目,然后添加到解决方案
# 创建项目
cd "C:/mysln"
dotnet new "winforms" -lang "C#" -n "windemo" -o "windemo"
# 添加到解决方案
dotnet sln "./mysln.sln" add "./windemo/windemo.csproj"
运行 dotnet run
进入项目根目录,执行 dotnet run
即可运行
C:\>cd "C:/mysln/demo"
C:\mysln\demo>dotnet run
Hello, World!
发布应用 dotnet publish
发布当前项目(不带依赖,需要目标系统安装有相应的 .net 才能执行)
dotnet publish -c Release -r win-x64
发布当前项目(包含依赖,可以直接执行,但无用的依赖没排除,文件有点大)
dotnet publish -c Release -r win-x64 --self-contained true
发布当前项目为单 exe
(可以直接执行,排除了一部分无用依赖,还是比较大)
dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true -p:TrimMode=link /p:IncludeNativeLibrariesForSelfExtract=true
要进一步优化排除无用依赖需要添加配置,详见:排除依赖关系
更多命令
可以在线看 dotnet 命令,也可以命令行 dotnet --help
查看
C:\>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 安装。sln 修改 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",获取有关命令的详细信息。
VSCode 调试
所需插件
-
vscode-solution-explorer 用于管理解决方案(先打开一个目录 ,然后就可以:创建解决方案、创建项目…)上面讲的命令在这里都有对应的右键菜单
-
C# Dev Kit
- 首次打开C#项目,VSCode 右下角会弹出此提示,点【安装】即可。
- 安装 C# Dev Kit 后会自动装:
.NET Install Tool
、C#
- IntelliCode for C# Dev Kit 提供自动完成
- 首次打开C#项目,VSCode 右下角会弹出此提示,点【安装】即可。
调试 CS
打开 CS 文件,按 F5 调试运行。
配置
项目.csproj
排除依赖关系
项目文件: C:/demo1/demo1.csproj
使用 <Trim>
和 <PublishTrimmed>
标签:
.NET Core 3.0 及以上版本引入了 trimming(修剪)功能,可以在发布时移除未使用的代码和依赖项。
在你的 .csproj 文件中添加以下内容:
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup>...<PublishTrimmed>true</PublishTrimmed><TrimMode>link</TrimMode></PropertyGroup></Project>
Hello, World!
项目未排除无用依赖时 60、70M,排除后 11.5M
launch.json
主菜单 > 运行 > 添加配置:即可生成。
tasks.json
Ctrl + Shift + P
:> Tasks: Configure Task
参考资料
什么是 .NET? 简介和概述
dotnet 命令
使用 Visual Studio Code 创建 .NET 控制台应用程序