与Visual Studio Code

我在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不使用安装在其自己的目录结构(即.vscode \ extensions \ ms-vscode.csharp-1.21.5下)中的csc.exe。 )。

zcwilove 回答:与Visual Studio Code

运行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命令行,结果应该相同。

本文链接:https://www.f2er.com/3167148.html

大家都在问