【问题标题】:How do I update a compiler?如何更新编译器?
【发布时间】:2021-06-10 21:13:23
【问题描述】:

所以,我刚刚在这台电脑上安装了 net5。它是全新的,当我使用 PowerShell 并运行 csc -langversion:? 命令来检查它支持的 C# 版本时,我收到了以下消息:

Microsoft (R) Visual C# Compiler version 4.6.1038.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer v
ersions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240

warning CS2008: Nenhum arquivo de origem especificado
error CS1617: Opção '?' inválida para /langversion; deve ser ISO-1, ISO-2, 3, 4, 5 ou Default

不仅编译器不支持 C# 9.0,而且它没有显示它应该显示的假定消息,如下所示:

default
1
2
3
4
5
6
7.0
7.1
7.2
7.3
8.0
9.0 (default)
latestmajor
preview
latest

正如我的昵称所暗示的那样,我对编程和其他东西很陌生,所以有人可以帮助我吗?

【问题讨论】:

  • 尝试安装最新版本的 .NET Framework(develper back from here 或通过 Visual Studio)。
  • 刚刚完成将我的 Windows 更新到最新版本(如果我没记错的话,是 21h1)所以我可以下载 .Net Framework 4.8(.Net 框架的最新版本)但我一直收到相同的消息
  • 您是安装了SDK 还是只是安装了运行时?我认为您将需要 SDK 来获得所有支持的语言。
  • 是的,安装了 sdk:PS C:\Users\Lucas Souza> dotnet --list-sdks 5.0.301 [C:\Program Files\dotnet\sdk]

标签: c# compiler-errors .net-5 c#-9.0


【解决方案1】:

您说您安装了 .NET 5。但后来您使用了 csc 命令,它不是 .NET 5 的一部分。命令的输出甚至说您正在使用 .NET Framework ,这 不是 .NET 5。

.NET 5 与 .NET Framework 不同。

所有 .NET 5 命令都使用 dotnet 调用。

dotnet --info 会告诉您是否安装了 .NET 5.0 SDK。如果你有 .NET 5 SDK,it will support C#, even if you can't directly query the language version

【讨论】:

  • 但是,我安装了 .NET 5 请参阅:.NET SDKs installed: 5.0.301 [C:\Program Files\dotnet\sdk] 当我使用 dotnet --info 时,它会返回很多信息,所以我只是粘贴了重要部分。这是否意味着我可以安全地使用 C# 9.0,即使编译器说它只支持 C# 5.0 及以下版本?
  • 您手动运行的 csc 编译器与 .NET 5 中包含的编译器不同。csc 编译器不支持 C# 9。.NET 5 编译器(您通过dotnet builddotnet run 使用)将支持C# 9。
  • 所以为了澄清:将 csc 编译器更改为支持 C# 9 的版本很重要吗?如果是这样,我该怎么做?很抱歉给我带来了麻烦,我只是喜欢编程,但由于我是新手,所以我只能依靠比我更有经验的人。感谢您迄今为止的帮助。
  • 嗯,不用担心。您应该使用dotnet 命令(如dotnet build)来构建您的代码。不要使用 csc,它将使用不支持 C# 9 的旧编译器。如果您遵循的指南/教程告诉您使用 csc,则该文档已过时,无法与 . NET 5.
猜你喜欢
  • 1970-01-01
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
  • 2013-07-10
  • 2011-10-10
  • 2012-07-05
  • 1970-01-01
  • 2019-12-05
相关资源
最近更新 更多