本文分享一下我在VSC上写C#的体验,只适用于学习C#的语法和编写命令行程序。http://ASP.NET Core和Unity我都不会,故不涉及。
最基本的操作可以参考官方文档:C# 和 Visual Studio Code 入门 - .NET Core。本文假定你不是第一次使用VSC。
环境
- VSC本体
- .NET Core SDK,可以访问
dot.net
下载 - VSC扩展:C#、Code Runner(可选)
操作步骤
建立一个文件夹(例如C:dotnet),用VSC打开(文件 - 打开文件夹)。
按 ctrl + 反引号 打开终端,输入dotnet new console
,会自动生成Hello World项目。
文件列表里点击打开Program.cs,第一次会自动联网下载100多M的文件。完成后右下角会弹出提示,选Yes。此时已经有Intellisense了,也会自动生成tasks.json
和launch.json
。
按F5就能看见编译生成项目并且在“调试”面板里输出Hello World了,加断点和监视也是有效的。但是调试只支持x64。
还需要做一点修改。左边点开.vscode
文件夹:
launch.json:"console": "integratedTerminal", "internalConsoleOptions": "neverOpen"
;那个.NET Core Attach
可以删掉。
tasks.json:给build
加上"group": { "kind": "build", "isDefault": true },
(打group就会自动提示)
另外如果杀软用的不是WD,最好给必要的地方加例外,否则会导致运行时卡住。
单文件运行(Code Runner)
很多人嫌VS启动太慢,用了VSC发现还是要不同代码单独建立工作区,一样的麻烦。其实这个问题可以解决。
(新建).vscode/settings.json:
{
"code-runner.saveFileBeforeRun": true,
"code-runner.ignoreSelection": true,
"code-runner.executorMap": {
"csharp": "cd $dir && csc $fileName /checked /r:System.Net.Http.dll /langversion:latest /o+ && $dir$fileNameWithoutExt"
},
}
csc是编译C#的程序。虽然安装好C#扩展后会自动下下来一份,但是路径中含有版本号(%UserProfile%.vscodeextensionsms-vscode.csharp-1.21.5.omnisharp1.34.5.msbuildCurrentBinRoslyn
)。所以要么复制出来后加到Path里(如果你用的不是Windows就只能选这种方法了),要么安装VS,把C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildCurrentBinRoslyn
加到Path里。不太推荐用C:WindowsMicrosoft.NETFrameworkv4.0.30319
的csc,那个最高只支持C#5 。
这样可以右键Run Code就可以运行单文件程序了。但注意调试仍然只能整个项目调试(所以Code Runner的命令我加了/o+开启优化,反正也调试不了)。如果确实要调试,出现了多个Main方法就会冲突,需要在项目的csproj中指定StartupObject
。
可以创建一个快捷方式放到桌面上,方便启动到那个工作区:
docs.microsoft.com 使用说明
此文档中关于.Net Core的教程看上去很少且很乱,这是因为.Net Core和C#是两个东西。.Net Core最重要的改变是跨平台特性、运行时和库,还提供了dotnet
这个命令行接口,以及简化了csproj。如果你想学C#语法,不要去看.Net Core的文档,下面的C#指南才是正确的。.Net Framework文档里确实含有一些非跨平台的东西,但也有许多是教你“怎么写程序”,所以也可以看。
所有与内置的类和函数有关的问题,可以看“.NET Core API参考”,一部分还有示例。不过注意大部分是机器翻译的,不建议花时间去改。
其它教程
- C# programming with Visual Studio Code
- .NET Core 命令行接口 (CLI) 工具 - .NET Core CLI
- 使用 dotnet test 和 xUnit 在 .NET Core 中进行 C# 代码单元测试 - .NET Core