【问题标题】:How can I find and use the latest version of CSC.exe when using Visual Studio Code?使用 Visual Studio Code 时如何查找和使用最新版本的 CSC.exe?
【发布时间】:2021-07-25 13:14:38
【问题描述】:

我正在设置 Visual Studio Code 来编写和学习 C#。

我无法找到并使用带有 Visual Studio Code 的 最新 版 C# 编译器。

使用 Visual Studio Code 终端命令查询我的编译器版本 csc -langversion:? 会出现以下错误消息:

csc : 术语“csc”未被识别为 cmdlet 的名称, 函数、脚本文件或可运行的程序。检查拼写 名称,或者如果包含路径,请验证路径是否正确并 再试一次。


我之前解决问题的尝试

经过仔细搜索,我发现了这一点:

  • 使用 Visual Studio 时,甚至不会出现此问题。 Visual Studio 显然包含必要的 .NET SDK 和编译器并自动使用它。
  • 我应该找到 csc.exe 文件并将其设置为环境变量路径。

我找到的唯一 csc.exe 文件位于以下目录中: C:\Windows\Microsoft.NET\Framework64\v x.x.xxxxx,最新版本为 4.0.30319

我能找到的所有说明都建议使用此文件夹设置为环境变量路径。

我这样做。我现在在 Visual Studio Code 中重试:csc -langversion:?

现在我收到以下消息:

适用于 C# 5 的 Microsoft (R) Visual C# 编译器版本 4.8.4084.0 版权所有 (C) 微软公司。保留所有权利。

此编译器作为 Microsoft (R) .NET Framework 的一部分提供, 但仅支持最高 C# 5 的语言版本,这不再是 最新版本。对于支持较新版本 C# 的编译器 编程语言,见 http://go.microsoft.com/fwlink/?LinkID=533240

警告 CS2008:未指定源文件错误 CS1617:选项无效 “?”对于 /langversion;必须是 ISO-1、ISO-2、3、4、5 或默认值"

所以我所指的 csc.exe 已设置为环境变量路径已过时。但是,我希望获得 C# 9 的所有现代特性。

我再次尝试从文件夹“C:\Program Files\dotnet”中找到最新的编译器,但我只能找到一个文件夹“Roslyn”,据我了解,它指的是最新版本的 csc。我在这些文件夹中找不到任何 csc.exe

解决方案?

现在我应该从某处(在哪里?) 找到支持 C# 9 的最新 csc.exe 并将其设置为环境变量路径吗?

还是我走错了路?

或者是我完全放弃 Visual Studio Code 并切换到 Visual Studio 的唯一选择(我不想这样做)。但这不可能是唯一的解决方案!


背景资料

我是编码世界的初学者。

我已安装最新版本的 .NET SDK 5.0.302。

我在我的 Visual Studio Code 实例中安装了以下扩展:

  • C# (MS)
  • .NET 扩展作者 (MS) 安装工具,
  • C# XML 文档注释 (Keisuke Kato)
  • ilspy-vscode(SharpDevelop 团队)
  • MSBuild 项目工具(tintoy)
  • REST 客户端(茂华超)

【问题讨论】:

标签: c# visual-studio-code csc


【解决方案1】:

您应该在控制台中使用dotnet 命令来构建和运行 .NET 5 应用程序。

尝试在您的 Visual Studio 代码中安装 C# extension

【讨论】:

  • 感谢您的回答。正如我最后提到的,我已经安装了 C# 扩展和 .NET SDK。然而,我现在确实在 VSC 中找到了 csc.exe。我在这里找到它:“\.vscode\extensions\ms-dotnettools.csharp-1.23.13\.omnisharp\1.37.12\.msbuild\Current\Bin\Roslyn” 将其设置为环境路径后,它起作用了!
【解决方案2】:

关键的发现:

使用语句:

#错误版本

产生有关正在使用的编译器的详细信息。它为编译器返回了相同的版本号,就好像我不会在环境变量中将 .vscode 下的 Roslyn 文件夹定义为 PATH。

因此,我认为我可以放心地得出以下结论:

  • Visual Studio Code 不会通过调用 csc -langversion:? 向您显示当前编译器,除非您将 .vscode 下的上述 Roslyn 文件夹添加为环境变量的 PATH。
  • 但是,Visual Studio Code 似乎确实使用了这个特定的编译器,尽管它并没有正式识别它。所以唯一真正重要的是安装最新的 .NET SDK。

【讨论】:

    【解决方案3】:

    我做了以下,它工作。

    我去了我的电脑属性高级系统设置环境变量 → 双击“路径”→添加新的→粘贴可以找到csc.exe的目录,点击确定。

    我重新启动了 Visual Studio Code,它工作正常。我为我找到 csc.exe 的目录是:

    C:\Program Files (x86)\Microsoft SDKs\UWPNuGetPackages\microsoft.net.native.compiler\2.2.10-rel-29722-00\tools\csc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-01
      • 1970-01-01
      • 2018-08-20
      • 2017-11-25
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多