sprocket12
sprocket12

Reputation: 5488

How to make csc.exe C# 6 aware

I am compiling a basic console app using :

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\csc.exe /t:exe /out:myapp.exe Program.cs

Which first prints :

Microsoft (R) Visual C# Compiler version 4.6.1038.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

Then fails because I am using string interpolation like $"{x}". The error is:

error CS1056: Unexpected character '$'

I assume this is because the csc.exe does not understand C# 6. How do I make this compiler C# 6 aware?

Upvotes: 6

Views: 3969

Answers (2)

Renan Duarte
Renan Duarte

Reputation: 170

I got the same problem here;

I fixed using the Roslyn compiler inside de Visual Studio 2019 instalation folder , setting up the environment variable of csc to it.

Changed

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

To

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Roslyn

In the system environment variables and worked here 🦾😎

Upvotes: 1

Patrick Hofman
Patrick Hofman

Reputation: 156998

You are using an old version of the compiler. From this MSDN forum post, the C# compiler is no longer part of the .NET Framework. You have to download it yourself.

You can do that from this NuGet statement:

nuget install Microsoft.Net.Compilers

Upvotes: 7

Related Questions