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 Then
currentDir = 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 控制台应用程序