如果你是开发个人项目,那就直接用 Visual Studio Community 版本吧,对个人免费,对小团体免费,不需要这么折腾。
如果你是 Mac / Linux 用户,不想用 Visual Studio for Mac 版;或者不想用 Visual Studio for Windows 版那么重磅的 IDE 来开发简单的 .NET Core 程序;或者你就是想像我这么折腾,那我们就开始吧!
安装必要的软件和插件
- 点击这里下载正式或者预览版的 .NET Core 然后安装
- 点击这里下载 Visual Studio Code 然后安装
- 在 Visual Studio Code 里安装 C# for Visual Studio Code 插件(步骤如下图所示)
搜索的时候,推荐使用 OmniSharp
关键字,因为这可以得到唯一的结果,你不会弄混淆。如果你使用 C# 作为关键字,那需要小心,你得找到名字只有 C#,点开之后是 C# for Visual Studio Code 的那款插件。因为可能装错,所以我不推荐这么做。
对于新版的 Visual Studio Code,装完会自动启用,所以你不用担心。我们可以后续步骤了。
创建一个 .NET Core 控制台项目
准备一个空的文件夹,这个文件夹将会成为我们解决方案所在的文件夹,也就是 sln 文件所在的文件夹。在这个空的文件夹中打开 VSCode,然后打开 VSCode 的终端。
在 VSCode 中的终端中输入:
1
> dotnet new console -o Walterlv.Demo
这样会在当前的文件夹中创建一个 Walterlv.Demo
的子文件夹,并且在此文件夹中新建一个名为 Walterlv.Demo
的控制台项目。
如果你观察我们刚刚创建的项目,你会发现里面有一个 csproj 文件和一个 Program.cs 文件。csproj 文件是 Sdk 风格的项目文件,而 Program.cs 里面包含最简单的 Hello World
代码:
1
2
3
4
5
6
7
8
9
10
11
12
using System;
namespace Walterlv.Demo
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
我们会考虑在一个子文件夹中创建项目,是因为我们会一步步创建一个比较复杂的解决方案,用以演示比较完整的使用 VSCode 开发 .NET 程序的过程。
添加一个解决方案
我们现在创建一个在 Visual Studio 会特别熟悉的解决方案,sln 文件。
使用以下命令创建一个解决方案文件:
1
> dotnet new sln
现在,这个解决方案文件还是空的,不包含任何项目,于是我们把我们一开始创建的 Walterlv.Demo
项目加入到此 sln 文件中。
使用以下命令添加:
1
> dotnet sln add .\Walterlv.Demo\Walterlv.Demo.csproj
于是,我们的解决方案中,就存在一个可以运行的控制台项目了。
开始调试最简单的程序
理论上,你按下 F5,选择 .NET Core 后就能自动生成调试所需的 launch.json 和 tasks.json 文件:
如果不能生成所需的文件,你可以使用以下博客中的方法,手动添加这两个文件:
在经过以上两篇博客中的方法之后,你将可以跑起来你的程序。
如果遇到了编译错误……呃这么简单的程序怎么可能遇到编译错误呢?一定是因为之前的操作有问题。可以考虑删除 bin
和 obj
文件夹,然后输入以下命令自行编译:
1
> dotnet build
这个命令会还原 NuGet 包,然后使用 .NET Core 版本的 MSBuild 编译你的解决方案。在此之后,你并不需要总是输入此命令,只需要像 Visual Studio 一样按下 F5 即可调试。
引用项目
现在我们演示如何引用项目。
首先使用以下命令创建一个类库项目:
1
> dotnet new classlib -o Walterlv.Library
将其添加到 sln 中。
1
> dotnet sln add .\Walterlv.Library\Walterlv.Library.csproj
于是我们的目录结构现在是这样的(稍微改了一点代码)。
然后让我们的 Walterlv.Demo
项目引用这个刚刚创建的项目:
1
> dotnet add Walterlv.Demo reference .\Walterlv.Library\
现在,我们即可在 Program.cs 中使用到刚刚 Class1.cs 中编写的方法(见上面截图中写的方法)。
不过,当你写下 Class1
后,会没有此名称,但有快速操作提示可以自动添加命名空间(就像没有装 ReSharper 的 Visual Studio 的效果一样)。
这时再按下 F5 运行,可以看到多输出了一个 walterlv is a 逗比
这样的提示,我们成功使用到了刚刚引用的类。
引用 NuGet 包
接下来介绍如何引用 NuGet 包。
1
> dotnet add Walterlv.Demo package Newtonsoft.Json
这样可以给 Walterlv.Demo
项目引用 Newtonsoft.Json
包。
接下来就像前面一节我们所描述的那样使用这个包里面的类就好了。
本文会经常更新,请阅读原文: https://blog.walterlv.com/post/develop-an-app-using-vscode-and-dotnet-cli.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 ([email protected]) 。