【发布时间】:2019-11-04 11:27:39
【问题描述】:
我在 Windows 10 (1809) 上安装了最新版本的 Visual Studio Code (1.39.2)。我还安装了 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 或默认值
但是当我从 VS Code 之外的 Windows 命令行运行 csc.exe 时,指定一个完整路径,如下所示:
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...) .
【问题讨论】:
-
从问题中不清楚,但是您是否从 VS Code 终端运行了完整的命令(
~\.vscode\extensions\ms-vscode.csharp-1.21.5\.omnisharp\1.34.5\.msbuild\Current\Bin\Roslyn\csc.exe -langversion:?)?还是来自普通命令行的简短版本 (csc -langversion:?)? -
@phuzi 你是对的,我编辑了这个问题来澄清。非常感谢。
-
当我从 VS2019 PowerShell 运行
csc -langversion:?时,我会升级到并包括 8.0。这是运行C:\VS2019\Enterprise\MSBuild\Current\bin\Roslyn\csc.exe。在默认的 PowerShell 配置文件中,找不到csc,exe。所以这一切都取决于所使用的配置文件,以及PATH环境变量中列出的文件夹。 -
@Richard 刚刚用 PowerShell 试了一下,结果和 VS Code 一样。
标签: c# visual-studio-code omnisharp