【C#】CSDK/IDE-VSCode 搭建 C# 开发环境
最近准备写 C# 的笔记总结专栏 bug 笔记本硬盘空间实在是不够用了 根本没有办法再安装一个 Visual Studio 集成开发环境了!!! 在学 Java 的过程中基本都是用记事本和命令提示符……再也不想经历了 终于让我想起来大名鼎鼎的 Visual Studio Code 编辑器! 这玩意儿不仅小巧 还是跨平台的 WIndows Linux 都能用 但是 Visual Studio Code 安装完毕也真的就是一个编辑器……除了敲代码什么都不能干 这就需要配置了 不然只能写 C# 代码而不能编译运行 C# 程序我还不如用记事本 cmd 的呢!!! 在一下午的摸索下终于是让我摸索出来如何配置 Visual Studio Code 了~开心!
##################################################
目录
获取安装 Visual Studio Code 汉化及插件配置
命令行单独利用 SDK 命令初始化工作空间并编译运行 C# 程序
##################################################
获取安装 Visual Studio Code 汉化及插件配置
——————————
获取 VSCode
官方主页:Visual Studio Code - Code Editing. Redefined
主页如下:
——————————
安装 VSCode
以普通用户身份运行安装包即可:
默认安装位置为
C:\Users\用户\AppData\Local\Programs\Microsoft VS Code

开始菜单文件夹默认即可:
附加任务也是默认:
这是我的安装配置:
目标位置: C:\Users\byme\AppData\Local\Programs\Microsoft VS Code 开始菜单文件夹: Visual Studio Code 附加任务: 附加快捷方式: 创建桌面快捷方式(D) 其他: 将“通过 Code 打开”操作添加到 Windows 资源管理器文件上下文菜单 将“通过 Code 打开”操作添加到 Windows 资源管理器目录上下文菜单 将 Code 注册为受支持的文件类型的编辑器 添加到 PATH (重启后生效)
开始安装
安装完毕首次运行:
先自动提醒我们装上一个中文包:
重启程序之后:
——————————
安装中文包插件
默认是英文 如果没有提示你需要安装中文的话可以选择手动安装
快捷键
Ctrl Shift x
搜索中文包
Chinese
下载安装完毕后
快捷键
Ctrl Shift p
输入
configure language
就可以配置显示语言了:
这边下载安装的是中文简体 zh-cn
当然你也可以在 configure language 看到配置特定语言的首选项
配置单一语言的 我们就不说了
——————————
关闭自动更新
——————————
安装解决方案管理器插件
快捷键
Ctrl Shift x
搜索安装该插件:
vscode-solution-explorer
安装完毕之后重启程序:
——————————
安装 C# 扩展插件
安装 C# 语言的插件:
@id:ms-dotnettools.csharp
但是上面这个报错我是没看懂啊 其她都好
##################################################
官网下载安装 .NET Code SDK
——————————
官网获取安装包
官网下载主页下载适用于 Visual Studio Code 的 .NET SDK (microsoft.com)

——————————
安装 SDK
这边我安装 64 位的:
已成功安装。下列项安装于: ""• .NET SDK 6.0.301• .NET Runtime 6.0.6• ASP.NET Core Runtime 6.0.6• .NET Windows Desktop Runtime 6.0.6此产品会收集用法数据• 详细信息和选择退出选项: https://aka.ms/dotnet-cli-telemetry资源• .NET 文档: https://aka.ms/dotnet-docs• SDK 文档: https://aka.ms/dotnet-sdk-docs• 发行说明: https://aka.ms/dotnet6-release-notes• 教程: https://aka.ms/dotnet-tutorials已成功安装。 下列项安装于: "" • .NET SDK 6.0.301 • .NET Runtime 6.0.6 • ASP.NET Core Runtime 6.0.6 • .NET Windows Desktop Runtime 6.0.6 此产品会收集用法数据 • 详细信息和选择退出选项: https://aka.ms/dotnet-cli-telemetry 资源 • .NET 文档: https://aka.ms/dotnet-docs • SDK 文档: https://aka.ms/dotnet-sdk-docs • 发行说明: https://aka.ms/dotnet6-release-notes • 教程: https://aka.ms/dotnet-tutorials
安装完成之后管理员权限运行 cmd 输入
dotnet --version
如果输出版本号就是安装成功!
Microsoft Windows [版本 6.3.9600](c) 2013 Microsoft Corporation。保留所有权利。C:\Windows\system32>dotnet --version6.0.301C:\Windows\system32>
——————————
初识 .NET SDK 的一些命令
查看帮助文档:
C:\Windows\system32>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, LatestMino r, 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# 脚本。 sql-cache SQL Server 缓存命令行工具。 user-secrets 管理开发用户密码。 watch 启动文件观察程序,它会在文件发生更改时运行命令。 运行 "dotnet [command] --help",获取有关命令的详细信息。 C:\Windows\system32>
.NET SDK 是一组库和工具
开发人员可用其创建 .NET 应用程序和库
包含以下用于构建和运行应用程序的组件:
.NET CLI
.NET 运行时和库
dotnetdotnet
这边我们主要查看新建命令:
C:\Windows\system32>dotnet new -h Usage: new [options] Options: -h, --help 显示此命令的帮助。 -l, --list <PARTIAL_NAME> 列出包含指定模板名称的模板。如果未指定任何名称 ,则列出所有模板。 -n, --name 正在创建的输出名称。如未指定名称,则使用输出目 录的名称。 -o, --output 要放置生成的输出的位置。 -i, --install 安装源或模板包。 -u, --uninstall 卸载源或模板包。 --interactive 允许内部 dotnet restore 命令以停止和等待用户输 入或操作(例如完成身份验证)。 --add-source, --nuget-source 指定安装期间将使用的 NuGet 源。 --type 根据可用类型筛选模板。预定义值为“项目”和“项 ”。 --dry-run 如果运行给定命令行将导致模板创建,则显示将发生 情况的摘要。 --force 强制生成内容,即使它会更改现有文件。如果与 --in stall 选项一起使用,则允许从指定的源安装模板包,即使它们将替代另一个源中的模板包 。 -lang, --language 根据语言筛选模板,并指定要创建的模板的语言。 --update-check 检查当前安装的模板包以获取更新。 --update-apply 检查当前安装的模板包以获取更新,然后安装更新。 --search <PARTIAL_NAME> 在 NuGet.org 上搜索模板。 --author <AUTHOR> 根据模板作者筛选模板。仅适用于 --搜索 或 --列出 | -l 选项。 --package <PACKAGE> 筛选基于 NuGet 包 ID 的模板。应用于 --搜索。 --columns <COLUMNS_LIST> 要在 --列出 和 --搜索 输出中显示的以逗号分隔的 列的列表。 支持的列为: 语言、标记、作者和类型。 --columns-all 在 --列出 和 --搜索 中显示所有列。 --tag <TAG> 根据标记筛选模板。应用于 --搜索 和 --列出。 --no-update-check 在实例化模板时,禁用对模板包更新的检查。 C:\Windows\system32>
我们可以新建的有这些:
C:\Windows\system32>dotnet new -l 这些模板已匹配你的输入: 模板名 短名称 语言 标记 ------------------ ------------------- ---------- -------------------------- ASP.NET Core Empty web [C#],F# Web/Empty ASP.NET Core gR... grpc [C#] Web/gRPC ASP.NET Core We... webapi [C#],F# Web/WebAPI ASP.NET Core We... webapp,razor [C#] Web/MVC/Razor Pages ASP.NET Core We... mvc [C#],F# Web/MVC ASP.NET Core wi... angular [C#] Web/MVC/SPA ASP.NET Core wi... react [C#] Web/MVC/SPA Blazor Server App blazorserver [C#] Web/Blazor Blazor WebAssem... blazorwasm [C#] Web/Blazor/WebAssembly/PWA dotnet gitignor... gitignore Config Dotnet 本地工具... tool-manifest Config EditorConfig 文件 editorconfig Config global.json file globaljson Config MSTest Test Pro... mstest [C#],F#,VB Test/MSTest MVC ViewImports viewimports [C#] Web/ASP.NET MVC ViewStart viewstart [C#] Web/ASP.NET NuGet 配置 nugetconfig Config NUnit 3 Test Item nunit-test [C#],F#,VB Test/NUnit NUnit 3 Test Pr... nunit [C#],F#,VB Test/NUnit Protocol Buffer... proto Web/gRPC Razor Class Lib... razorclasslib [C#] Web/Razor/Library Razor Component razorcomponent [C#] Web/ASP.NET Razor Page page [C#] Web/ASP.NET Web 配置 webconfig Config Windows 窗体控件库 winformscontrollib [C#],VB Common/WinForms Windows 窗体类库 winformslib [C#],VB Common/WinForms Windows 窗体应用 winforms [C#],VB Common/WinForms Worker Service worker [C#],F# Common/Worker/Web WPF 类库 wpflib [C#],VB Common/WPF WPF 应用程序 wpf [C#],VB Common/WPF WPF 用户控件库 wpfusercontrollib [C#],VB Common/WPF WPF 自定义控件库 wpfcustomcontrollib [C#],VB Common/WPF xUnit Test Project xunit [C#],F#,VB Test/xUnit 解决方案文件 sln Solution 控制台应用 console [C#],F#,VB Common/Console 类库 classlib [C#],F#,VB Common/Library C:\Windows\system32>
我们只需要输入第二列的简写名称就可以创建对应的模板
按照模板创建一个控制台项目:
dotnet new console /* 创建到当前目录 */ dotnet new console -o test /* 创建在当前目录中的 test 目录中 */
之后我们如果安装了 VSCode 就可以使用该命令打开此项目:
code test /* 在 VSCode 中打开 test 项目 */
##################################################
基本 C# 程序编译和运行
——————————
命令行单独利用 SDK 命令初始化工作空间并编译运行 C# 程序
新建一个文件夹 这个就是我们的工作空间了!
以后都要在这里存放项目 这里我设置的目录是
E:\C#
进入该目录 在地址栏输入 cmd 后回车
打开当前目录的 cmd
在当前目录创建工作空间:
dotnet new console /* 创建控制台应用程序 */
创建工作空间完毕:
Microsoft Windows [版本 6.3.9600] (c) 2013 Microsoft Corporation。保留所有权利。 E:\C#>dotnet new console 已成功创建模板“控制台应用”。 正在处理创建后操作... 在 E:\C#\C#.csproj 上运行 “dotnet restore”... 正在确定要还原的项目… 已还原 E:\C#\C#.csproj (用时 228 ms)。 已成功还原。 E:\C#>dir 驱动器 E 中的卷是 File 卷的序列号是 0008-8672 E:\C# 的目录 2022/06/29 19:23 <DIR> . 2022/06/29 19:23 <DIR> .. 2022/06/29 19:22 288 C#.csproj 2022/06/29 19:23 <DIR> obj 2022/06/29 19:22 105 Program.cs 2 个文件 393 字节 3 个目录 25,124,012,032 可用字节 E:\C#>
初始化目录时创建的 Program.cs 是 SDK 为我们创建的 C# 源文件:
是的你没有看错 C# 真的只需要一条输出语句就可以编译出一个程序:
// See https://aka.ms/new-console-template for more information Console.WriteLine("Hello, World!");
输入命令 dotnet run 编译运行:
编译出来的 .exe 存放在可执行程序在工作目录的
bin\Debug\net6.0
该目录下的 .exe 就是编译出来的程序了:
完全可以双击运行的!
——————————
在 VSCode 中搭配 SDK 编译运行 C# 程序
cmd 中在当前工作目录启动 VSCode 的话可以输入命令:
code .
该命令相当于你右击空白处选择 VSCode 在当前目录启动:
勾选我信任:
此时在左边看到 图标表示创建了一个项目:
若右下角弹出该询问务必选择 Yes !!!
此时务必选择 Yes 然后发现左边列多出来一个隐藏目录:
该 .cs 是系统自动为我们创建的 c# 源文件:
// See https://aka.ms/new-console-template for more information Console.WriteLine("Hello, World!");
调出一个终端:
输入命令后回车:
dotnet run
等待几秒后程序会显示运行的结果:
Windows PowerShell 版权所有 (C) 2014 Microsoft Corporation。保留所有权利。 PS E:\C#> dotnet run Hello, World! PS E:\C#>
这个编译运行的操作相当于你按下 Ctrl F5 快捷键:
——————————
安装配置 Code Runner 插件更方便地编译运行
在扩展中搜索并安装该插件
Code Runner
安装插件之后退出程序再重新启动 VSCode 程序
点击左下角的设置图标 进入设置:
搜索
run in terminal
勾选 Run In Terminal 的
Whether to run code in Integrated Terminal.
点击右上角的 图标打开设置源代码:
原 settings.json 内容:
{ "update.showReleaseNotes": false, "update.enableWindowsBackgroundUpdates": false, "update.mode": "none", "code-runner.runInTerminal": true }
最后一行代码添加英文逗号
回车另起一行 输入 code 选择 code-runner.executorMap 后回车:
直接帮你导入了几十行代码:
找到 csharp 这一行:
替换 csharp 命令 scriptcs 为:
cd $dir && dotnet run $fileName
修改后内容:
{ "update.showReleaseNotes": false, "update.enableWindowsBackgroundUpdates": false, "update.mode": "none", "code-runner.runInTerminal": true, "code-runner.executorMap": { "javascript": "node", "java": "cd $dir && javac $fileName && java $fileNameWithoutExt", "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "objective-c": "cd $dir && gcc -framework Cocoa $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "php": "php", "python": "python -u", "perl": "perl", "perl6": "perl6", "ruby": "ruby", "go": "go run", "lua": "lua", "groovy": "groovy", "powershell": "powershell -ExecutionPolicy ByPass -File", "bat": "cmd /c", "shellscript": "bash", "fsharp": "fsi", "csharp": "cd $dir && dotnet run $fileName", "vbscript": "cscript //Nologo", "typescript": "ts-node", "coffeescript": "coffee", "scala": "scala", "swift": "swift", "julia": "julia", "crystal": "crystal", "ocaml": "ocaml", "r": "Rscript", "applescript": "osascript", "clojure": "lein exec", "haxe": "haxe --cwd $dirWithoutTrailingSlash --run $fileNameWithoutExt", "rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt", "racket": "racket", "scheme": "csi -script", "ahk": "autohotkey", "autoit": "autoit3", "dart": "dart", "pascal": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt", "d": "cd $dir && dmd $fileName && $dir$fileNameWithoutExt", "haskell": "runhaskell", "nim": "nim compile --verbosity:0 --hints:off --run", "lisp": "sbcl --script", "kit": "kitc --run", "v": "v run", "sass": "sass --style expanded", "scss": "scss --style expanded", "less": "cd $dir && lessc $fileName $fileNameWithoutExt.css", "FortranFreeForm": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "fortran-modern": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "fortran_fixed-form": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "fortran": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt", "sml": "cd $dir && sml $fileName" } }
Ctrl s 保存并返回代码界面 此时按下
Ctrl Alt n
或者点击右上方的三角形图标 即可编译运行!
正在编译:
运行成功:
##################################################
本节所有资源
pan.baidu.com/s/1TfsyHVYqoUTNscDbP7axPQ1025
原文连接https://blog.csdn.net/m0_67268286/article/details/125529352
猜你喜欢
- 【C#】C#二分查找(迭代与递归)
- 二分搜索被定义为一种在排序数组中使用的搜索算法,通过重复将搜索间隔一分为二。二分查找的思想是利用数组已排序的信息,将时间复杂度降低到O(log N)。二分查找算法示例 何时在数据结构中应用二分查找的条件: 应用二分查找算法: 1、数据结构必须是有序的。 2、访问数据结构的任何元素都
- 【C#】C# Winform自动更新
- 目录一、需求二、更新文件列表生成器三、软件启动器1.判断是否需要更新2.文件下载3.执行 下载,覆盖,删除任务4.执行结果四、搭建更新服务器1.启动服务器2.新建项目本体3.给启动软件加密4.修改版本号五、整体测试1.生成更新文件2.软件更新3.下载最新的版本4.打开软件本体5.总结结束当前项目已停止维护,推荐使用 FTP 版自动更新C# 自动更新(基于FTP)_c# 程序自动升级-CSDN博客一、需求在Unity里面,有XLua,ILRuntime 这样的热更新框架,有Unity经验的人都知道
- 【C#】C# Winform 文本面板带滚动条
- 在PC软件开发中经常有这样的需求,需要在一个固定大小的面板中显示一些内容,并且面板能上下拖动,将所有的内容完整的展示,有点类似网页上看新闻,如果要在 winfrom 中要如何实现的呢,下面就演示如何实现的吧效果:1.新建一个winform 项目,在界面中拖入一个Panel 将 panel1 的 AutoScroll 设置为 True2.再次拖入一个 Panel ,将高度拉长,这时就自动出现了滚动条,只是此时里面还没有任何内容,下面就在 panel2 中加入一点内容。
- 【C#】C# Winform 定时清理日志
- 一、前言在 Winform 开发中经常有这样的需求,在用户执行一些操作不正确时,需要将错误信息反馈给用户,比如:登录密码不正确,无法连接到服务器等,一般常见的用法有两个:1.弹框使用 MessageBox.Show("密码错误"); 这样的方式,弹框后,用户必须点击确定后才能执行下一步操作,给用户的体验并不是特别好。2.在界面中显示错误信息,定时清除如果是输入框,直接用 ErrorProvider 控件就行了。如果只是做一些简单的提示信息,那么就要定时清除
- 【C#】Winform NanUI 0.77版本 JS和C#相互调用
- 目录一、导入插件二、常用方法三、C#和JS相互调用1.C# 调用JS2.JS调用C#方法3.完整版C#代码4.完整版JS代码结束一、导入插件用的NanUI版本0.77参考官方地址:https://docs.formium.net/zh-hans/tutorial/first-app.html二、常用方法基础代码:using NetDimension.NanUI; using NetDimension.NanUI.Browser; class MainW
- 【C#】C# 开源框架(整理)
- C# 开源框架(整理)Json.NEThttp://json.codeplex.com/Json.Net 是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单。通过Linq To JSON可以快速的读写Json,通过JsonSerializer可以序列化你的.Net对象。让你轻松实现.Net中所有类型(对象,基本数据类型 等)和Json的转换。Math.NEThttp://www.mathdotnet.com/Math.NET的目标是为提供一款
- 【C#】C#Windows桌面应用开发实践
- 速览必须功能一览简单下载异步下载如何解决下载文件不完整的问题使用 Downloader 进行 HTTP 多线程下载创建一个下载服务:下载非 HTTP 协议的文件注册表相关的操作(添加与删除)文件占用问题的处理防止重复启动只开一个实例,通用弹窗和提示 使用示例使用 C# 下载文件 (引用自使用 C# 下载文件的十八般武艺)常用接口示例必须功能一览注册表相关的操作(添加与删除) RegistryKey hkm
- 【C#】Winform NanUI 0.88版本 JS和C#相互调用
- 目录一、需求版本二、实例JS调用C#注册的只读属性JS调用C#注册的字段JS调用C#注册的同步方法JS调用C#注册的异步方法C#注册一个方法,JS调用并传递参数C#注册一个方法,JS调用并接收C#返回值C#注册一个方法,接收JS的数组参数C#注册一个方法,接收JS的一个函数,执行这个JS函数,并将C#的值传递过去三、结束一、需求在软件的界面和软件逻辑分离后,最重要的就是要处理参数的传递,和函数的调用,因此存在JS中和C#相互调用的需求。版本NanUI 版本:0.8.80.191二、实例using