Feature image for the article about how to install Visual Studio Code and .NET Core for C# coding on Linux

Install Visual Studio Code and .NET Core for C# coding on Linux

Interested in developing C# applications on and for Linux? This article explains how to setup a full-featured C# development environment. It consists of the Visual Studio Code editor and the .NET Core SDK, needed to develop and run C# applications on Linux.

Background

Last week I worked on a project, which involved developing software in C#. I heard about C#, but never actually coded in C# before this project. It surprised me how quickly I found my way around the C# programming language. C# feels like it combines all the good things of Java and Object Pascal, mixed with the familiar syntax of C. As a true Linux aficionado, I wondered: “Can I develop C# software on Linux”?

It turns that you can. Quite well actually. Microsoft offers .NET Core for Linux. Combined with the Visual Studio Code editor and its C# extension, you can setup a wonderful C# development environment on Linux.

The .NET Core developer platform includes tools, libraries and a runtime environment needed to develop and run C# applications. This developer platform is called the .NET SDK. SDK stands for software development kit. Note that if you just want to run C# applications, you do not need the entire .NET SDK. The so called .NET runtime suffices in this case.

In this article you learn how to install the Visual Studio Code editor and the .NET SDK, allowing you to develop C# applications for Linux. After completing the installation steps, I’ll also show you how to create a basic “Hello World” console application. To the point that you build, run and debug it.

What do you need

The only thing you need, while working your way through this article, is a Linux system with desktop environment. It can be an actual PC or a virtual machine. Personally, I prefer trying things out on a virtual machine first. For this reason I decided on using Ubuntu 20.04 Budgie, running as a virtual machine in VirtualBox. This means the instructions target Ubuntu 20.04. However, I’ll include links and references in case you run a different Linux distribution.

Install Visual Studio Code on Linux

According to the Visual Studio Code website, you can install Visual Studio Code in two different ways:

  1. As a Snap package from the Snap store.
  2. Using your Linux distribution’s package manager.

My personal preference goes out to option two. Snap packages themselves are fine. I just don’t like it that they update in the background, without you knowing about it. It gives me Windows 10 flashbacks. But that’s just me.

To install Visual Studio Code through the Debian or Ubuntu package manager, we can download the DEB package from the Visual Studio Code website. Download the RPM package instead, if you run Fedora or openSUSE.

Download the Visual Studio Code editor DEB package

Visit the download page on the Visual Studio Code website. Next, click on the .deb link to download the Visual Studio Code editor’s DEB package:

Web browser screenshot that explains how and where to download the Visual Studio Code DEB package for Debian and Ubuntu.

After the download completes, the DEB package shows up in your ~/Downloads directory. In my case its name is code_1.54.3-1615806378_amd64.deb:

File manager screenshot that shows where the Visual Studio Code DEB packages was downloaded to and under what filename.

Install the Visual Studio Code editor DEB package

To install the downloaded Visual Studio Code DEB package, open up the terminal and run the following command. Just remember to adjust the name of the DEB file, in case it has a different filename on your system.

  • sudo apt install -f ~/Downloads/code_1.54.3-1615806378_amd64.deb
Terminal screenshot that explains how to manually install the Visual Studio Code DEB package.

If you are new to directly installing DEB packages, refer to the tutorial about manually installing a DEB package on Debian or Ubuntu.

Install the C# for Visual Studio Code extension

By default, Visual Studio Code for Linux does not yet support C#. Luckily we can add C# support to Visual Studio Code by installing an extension. You can find the C# extension (and other extensions) on the Visual Studio Code market place website. Open this link in your web browser to go directly to the C# extension page:

Web browser screenshot that shows you where and how to install the C# for Visual Code Extension, needed for C# development on Linux.

The C# extension web page tells us exactly how to install the extension. Go ahead and start Visual Studio Code. The installer automatically added an application launcher to your application menu:

Screenshot of the Budgie application menu that explains how to start the newly installed Visual Studio Code editor.

Once opened, press CTRL + P on the keyboard. An edit box pops up. Enter (or copy/paste) the text ext install ms-dotnettools.csharp into this edit box and press ENTER on the keyboard:

Visual Studio Code screenshot that shows how to install its C# extension on Linux.

With the C# for Visual Studio Code extension installed, we continue with the installation of the .NET SDK for Linux in the next section.

Install the .NET SDK for Linux

At this point we installed a C# capable programmer’s editor. In consists of the Visual Studio Code editor combined with the C# extension. The only missing puzzle piece to complete our C# development environment, is the actual .NET SDK. It contains the tools, libraries and runtime environment needed to develop and run C# applications.

When writing this article, .NET version 5.0 was the latest stable release. We’ll go ahead and install the .NET 5.0 SDK on Ubuntu 20.04. Refer to the Microsoft .NET website for instructions, in case you use a different Linux distribution.

Install required dependencies

Installing the .NET SDK requires HTTPS support for the APT package manager. Therefore we first need to install the apt-transport-https package. Open the terminal and run the command:

  • sudo apt install apt-transport-https
Terminal screenshot that shows how to install the apt-transport-https package. It is needed for installing the .NET SDK on  a Debian or Ubuntu based Linux system.

Install the .NET SDK package repository

Next, we install the .NET SDK package repository onto our system. With the terminal still open, run the following commands. It adds the Microsoft package signing key to your list of trusted keys. Additionally, it adds the package repository from which we can later on install the .NET 5.0 SDK:

  • wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
  • sudo dpkg -i packages-microsoft-prod.deb
Terminal screenshot that shows how to add the Microsoft repository to APT. It is needed to be able to install the .NET 5.0 SDK later on.

Install the .NET SDK package

With the .NET SDK package repository added to our system, we can update the package repository information on our system. Then as a final step, install the actual .NET 5.0 SDK. In the terminal, run the following two commands to complete the installation of the .NET 5.0 SDK:

  • sudo apt update
  • sudo apt install dotnet-sdk-5.0
Terminal screenshot that illustrates how to install the .NET 5.0 SDK on Debian and Ubuntu.

Create a C# console application with Visual Studio Code

Now that we completed the installation of Visual Studio Code and the .NET SDK on our Linux system, it’s about time we take it for a spin by creating our first C# console application.

Create a new C# project

Start Visual Studio Code and select Terminal → New Terminal  from the program menu. From the new terminal window, we can create a C# console application by running these commands:

  • mkdir MyApp
  • cd MyApp
  • dotnet new console
Visual Studio Code screenshot on Linux that shows how to create a new C# console application project, using the dotnet utility.

With the new project created, we can open it. From the program menu, select File → Open Folder and select the MyApp directory. Visual Studio Code automatically identifies it as a C# project and downloads necessary dependencies, such as the .NET Core debugger for Linux. When completed, a dialog appears and asks if you want to add assets to build and debug the application. Make sure so select Yes here:

Dialog screenshot that show you to answer yes when prompted to add required assets to build and debug.

Build and run the C# application

When the dotnet tool created the new C# console application, it automatically added a Hello World type program in Program.cs. You can use this as a starting point for your C# console application development. Here’s what the created C# project looks like in Visual Studio Code on Linux:

Screenshot of Visual Studio Code on Linux with the newly created C# console application project opened.

Before we can build the C# application, we need to configure the so called default build task. From the program menu, select TerminalConfigure Default Build Task. A small menu with available build tasks appears. Select build from this menu:

Screenshot that shows how to configure the C# default build task in Visual Studio Code on Linux.

With the default build task configured, we can build our C# application by selecting Terminal → Run Build Task from the program menu. Alternatively, you can press CTRL + SHIFT + B on the keyboard. You can follow the build progress in the terminal window.

With the C# application built, you can run it by selecting Run → Run Without Debugging from the program menu. If you prefer keyboard shortcuts, you can press CTRL + F5 instead. The output of the console application appears in the Debug Console window:

Screenshot of the Visual Studio Code Debug Console window. It shows  the output of running the Hello World C# console application.

Note that the C# application automatically builds before it runs, so there is no need to always explicitly build it first.

Debug the C# application

No integrated development environment is complete without debugging capabilities. Luckily, our solution with Visual Studio Code for developing C# applications on Linux, offers build-in debugging functionality. For example, to set a breakpoint, simply click on the left side of the line number in the editor. A red dot appears, indicating that a breakpoint is active for that line:

Screenshot of the Visual Studio Code editor that shows the breakpoint indicator on a C# source code line.

To start a new debug session, select RunStart Debugging from the program menu or press F5 on the keyboard:

Screenshot of debugging a C# console application in Visual Studio Code on Linux. It highlights the debugging specific user interface elements.

Wrap up

In this article we setup a fully functional integrated development environment for C# on Linux. In a nutshell, we completed these steps:

  • Installed the Visual Studio Code editor, including the C# extension.
  • Installed the .NET 5.0 SDK for Linux.

To take the development environment for a test ride, we created a Hello World type C# console application. Afterwards, we learned how to build, run and debug the C# console application, all from within Visual Studio Code on our Linux system. Now it’s up to you to unleash your creativity and start coding in C#.

PragmaticLinux

Long term Linux enthusiast, open source software developer and technical writer.

View all posts by PragmaticLinux →