简体   繁体   中英

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?

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

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 🦾😎

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM