Смущает версия C #, используемая Visual Studio Code - PullRequest
0 голосов
/ 04 ноября 2019

У меня установлена ​​последняя версия кода Visual Studio (1.39.2) в Windows 10 (1809). Я также установил расширение OmniSharp C # (идентификатор расширения ms-vscode.csharp, версия 1.21.5).

Когда я запускаю команду csc -langversion:? со встроенного терминала, я получаю:

Компилятор Microsoft (R) Visual C # версии 4.7.3190.0
для C # 5
предупреждение CS2008: не указаны исходные файлы
ошибка CS1617: недопустимая опция '?'для / langversion;должен быть ISO-1, ISO-2, 3, 4, 5 или по умолчанию

Но когда я запускаю csc.exe из командной строки Windows вне кода VS, указав полный путь, например, так:

C:\Users\myaccount\.vscode\extensions\ms-vscode.csharp-1.21.5\
    .omnisharp\1.34.5\.msbuild\Current\Bin\Roslyn\csc.exe -langversion:?

Я получаю:

Поддерживаемые языковые версии:
по умолчанию
1
2
3
4
5
6
7.0 (по умолчанию)
7.1
7.2
7,3 (самое последнее)
самое последнее

Я понимаю, что терминал VS Code может принимать другоеверсия csc.exe, но почему это несоответствие и как я могу настроить VS Code, чтобы я мог использовать последний компилятор C #?

РЕДАКТИРОВАТЬ:

Я думаю,Что меня действительно озадачивает, так это то, что VS Code не использует csc.exe, установленный в его собственной структуре каталогов (то есть в .vscode \ extensions \ ms-vscode.csharp-1.21.5 ...).

1 Ответ

3 голосов
/ 04 ноября 2019

Когда вы запускаете csc -langversion:?, какая бы версия компилятора не была найдена через переменную окружения PATH, выполняется. Однако, когда вы запускаете ~\.vscode\extensions\ms-vscode.csharp-1.21.5\.omnisharp\1.34.5\.msbuild\Current\Bin\Roslyn\csc.exe -langversion:?, запускается версия компилятора, которую использует расширение csharp. Это не будет одна и та же копия / версия csc.exe.

Терминалы в VS Code (либо CMD, либо Powershell) не являются их специальными версиями, для них не установлены дополнительные переменные среды, поэтомувы должны увидеть те же результаты в любом случае.

Чтобы устранить несоответствие, либо установите последнюю версию компилятора в вашей системе, либо обновите настройки PATH, включив ~\.vscode\extensions\ms-vscode.csharp-1.21.5\.omnisharp\1.34.5\.msbuild\Current\Bin\Roslyn\ перед любой другой версиейcsc.exe.

Как только вы это сделаете, перезапустите и VS Code, и командную строку Windows, и результаты должны быть идентичны.

...