Właśnie ściągnąłem Visual Studio 2017 RC, który był released a few days ago i posiada wsparcie dla C# 7. mogę używać C# 7 cech z IDE:Dlaczego nie można wykonać polecenia csc kompilacji C# 7 po zainstalowaniu VS 2017?
Jednak takie zachowanie nie wydaje się posiadać na wiersz poleceń. Pracuję nad projektem, który wymaga pliku wykonywalnego csc
do obsługi C# 7 i wyższych. Jednak przy próbie zmiany na tym samym katalogu co projekt i skompletowanie dokumentacji, mam
> csc Program.cs /target:exe
Microsoft (R) Visual C# Compiler version 1.3.1.60616
Copyright (C) Microsoft Corporation. All rights reserved.
Program.cs(12,23): error CS1026:) expected
Program.cs(12,25): error CS1001: Identifier expected
Program.cs(12,25): error CS1002: ; expected
Program.cs(12,26): error CS1002: ; expected
Program.cs(12,26): error CS1513: } expected
Program.cs(13,32): error CS1003: Syntax error, '=>' expected
Program.cs(13,32): error CS1525: Invalid expression term '='
więc wyraźnie, że wygląda wersji csc
znalezionego w moim PATH nie obsługuje C# 7. Zrobiłem niewiele badań na ten temat i znalazłem similar question dla C# 6, co sugerowało, sprawdzając, upewnij się, że powołując się na csc
z %PROGRAMFILES(x86)%\MSBuild\14.0\Bin
zamiast starego z C:\Windows\Microsoft.NET\Framework\4.0.30319
, ponieważ ten ostatni obsługuje tylko C# 5. Tak więc nie tylko to:
> where csc
C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
Jak widać ten z MSBuild\14.0\Bin
zostaje wybrany katalog, a nie stary w v4.0.30319
. I dodatkowo prowadził csc /version
który mówi mi, że wersja csc
jest 1.3.1.60616, które rzeczywiście obsługuje tylko C# 6.
Czy ktoś ma pojęcia, jak włączyć funkcje C# 7 dla wersji csc
w wierszu polecenia? Dzięki!
14.0 to numer wersji VS2015, a nie VS2017. Więc wciąż jest stary. Użyj opcji Wiersz polecenia programisty 2017 i powtórz komendę * where *, aby znaleźć nową. –