How to compile c# in Microsoft's new Visual Studio Code?

C#Visual Studio-Code

C# Problem Overview


I have installed the preview version of Microsoft's new code editor "Visual Studio Code". It seems quite a nice tool!

The introduction mentions you can program c# with it, but the setup document does not mention how to actually compile c# files.

You can define "mono" as a type in the "launch.json" file, but that does not do anything yet. Pressing F5 results in: "make sure to select a configuration from the launch dropdown"...

Also, intellisense is not working for c#? How do you set the path to any included frameworks?

Launch.json:

"configurations": [
		{
			// Name of configuration; appears in the launch configuration drop down menu.
			"name": "Cars.exe",
			// Type of configuration. Possible values: "node", "mono".
			"type": "mono",
			// Workspace relative or absolute path to the program.
			"program": "cars.exe",
		}, 
		{
			"type": "mono",
		}

C# Solutions


Solution 1 - C#

Since no one else said it, the short-cut to compile (build) a C# app in Visual Studio Code (VSCode) is SHIFT+CTRL+B.

If you want to see the build errors (because they don't pop-up by default), the shortcut is SHIFT+CTRL+M.

(I know this question was asking for more than just the build shortcut. But I wanted to answer the question in the title, which wasn't directly answered by other answers/comments.)

Solution 2 - C#

Intellisense does work for C# 6, and it's great.

For running console apps you should set up some additional tools:

  • ASP.NET 5; in Powershell: &{$Branch='dev';iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.ps1'))}
  • Node.js including package manager npm.
  • The rest of required tools including Yeoman yo: npm install -g yo grunt-cli generator-aspnet bower
  • You should also invoke .NET Version Manager: c:\Users\Username\.dnx\bin\dnvm.cmd upgrade -u

Then you can use yo as wizard for Console Application: yo aspnet Choose name and project type. After that go to created folder cd ./MyNewConsoleApp/ and run dnu restore

To execute your program just type >run in Command Palette (Ctrl+Shift+P), or execute dnx . run in shell from the directory of your project.

Solution 3 - C#

SHIFT+CTRL+B should work

However sometimes an issue can happen in a locked down non-adminstrator evironment:

If you open an existing C# application from the folder you should have a .sln (solution file) etc..

Commonly you can get these message in VS Code

Downloading package 'OmniSharp (.NET 4.6 / x64)' (19343 KB) .................... Done!
Downloading package '.NET Core Debugger (Windows / x64)' (39827 KB) .................... Done!

Installing package 'OmniSharp (.NET 4.6 / x64)'
Installing package '.NET Core Debugger (Windows / x64)'

Finished
Failed to spawn 'dotnet --info'  //this is a possible issue

To which then you will be asked to install .NET CLI tools

If impossible to get SDK installed with no admin privilege - then use other solution.

Solution 4 - C#

Install the extension "Code Runner". Check if you can compile your program with csc (ex.: csc hello.cs). The command csc is shipped with Mono. Then add this to your VS Code user settings:

"code-runner.executorMap": {
        "csharp": "echo '# calling mono\n' && cd $dir && csc /nologo $fileName && mono $dir$fileNameWithoutExt.exe",
        // "csharp": "echo '# calling dotnet run\n' && dotnet run"
    }

Open your C# file and use the execution key of Code Runner.

Edit: also added dotnet run, so you can choose how you want to execute your program: with Mono, or with dotnet. If you choose dotnet, then first create the project (dotnet new console, dotnet restore).

Solution 5 - C#

To Run a C# Project in VS Code Terminal

  1. Install CodeRunner Extension in your VS Code (Extension ID: formulahendry.code-runner)
  2. Go to Settings and open settings.json
  3. Type in code-runner.executorMap
  4. Find "csharp": "scriptcs"
  5. Replace it with this "csharp": "cd $dir && dotnet run $fileName"

Your project should Run in VS Code Terminal once you press the run button or ALT + Shift + N

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionKokodokoView Question on Stackoverflow
Solution 1 - C#Brandon SView Answer on Stackoverflow
Solution 2 - C#Viktor PtiView Answer on Stackoverflow
Solution 3 - C#Tom StickelView Answer on Stackoverflow
Solution 4 - C#JabbaView Answer on Stackoverflow
Solution 5 - C#DivyashCView Answer on Stackoverflow