VS Code CSC:错误 CS1617:/langversion 的无效选项“7.3”

VS Code CSC : error CS1617: Invalid option '7.3' for /langversion

我下载了 VS 2017 15.7、.NET Core 2.1.2 和 Blazor 来试用一下。它在 VS 2017 中无法正常工作 并认为我会尝试通过 dotnet cli 和 VS Code。相反,我遇到了以下错误:

CSC : error CS1617: Invalid option '7.3' for /langversion.

在 VS 中,它将 运行 应用程序显示 "Loading..." 然后什么也没有。不确定这两个问题是否相关

dotnet --info returns 以下内容:

.NET Command Line Tools (2.1.300-preview1-008174)

Product Information:
 Version:            2.1.300-preview1-008174
Commit SHA-1 hash:  b8df89a54f

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.17666
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk.1.300-preview1-008174\

Microsoft .NET Core Shared Framework Host

  Version  : 2.1.0-preview1-26216-03
  Build    : f2c3216183d20416568a4bbf5bb7d153e826f153

您应该使用 VS 的预览版来试用编号为 15 的 Blazor。8.x

并安装.net core 2.1 RC。 2.1.2就不剪了

您可以使用 15.7 预览版或更高版本之一。既然 15.7 决赛已经结束,那么使用它们就有点毫无意义了。您还可以使用 15.8 预览版,因为它们是在 15.7 最终版本之上递增的。 访问 blazor.net 了解入门等的最新详细信息。

我遇到了同样的问题(运行 VS 中的应用程序时出现黑屏,CLI 中的选项“7.3”无效),我只需要升级 SDK 的版本。使用 dotnet --info 检查这个。 2.1.300-preview1 不起作用,您似乎需要 2.1.300-rc1,可从 https://www.microsoft.com/net/download/all

我在 visual studio 2019 年,在构建 MVC REST Api 项目时也遇到了这个错误。我通过将框架版本降低到 4.5(它是在 4.6.1 上)来解决它。

在 VS 2019 上,我去项目文件,将目标框架从 4.6.2 更改为 4.7.2,项目构建成功。然后恢复到 4.6.2,它仍然构建成功

刚刚有了这个和一个 Clean, Rebuild 为我解决了这个问题。

清理和重建对我不起作用,直到我关闭 Visual Studio 并删除了 .vs 文件夹,然后 re-opened,清理并重建。

2020 年 10 月到来,我在 VS 2019 .. 这是我的错误导致我 google 我的方式 post:

CS1617 Invalid option '7.3' for /langversion; must be ISO-1, ISO-2, Default, Latest or a valid version in range 1 to 7.1

FWIW - 我只是在做一个老派的 .NET Framework / ASP.NET / Web API2 项目,fwiw,没有尝试用标准或核心做任何很酷的事情...

我挠头是因为:

  1. 它可以在我工作的工作站上使用
  2. 它适用于我的 Azure CI 管道
  3. 那么..为什么不在我家里的 Win 10 专业工作站上呢?

解决方案

  • 我启动了 Visual Studio 安装程序 > 2019 > 更多 > 修改屏幕
  • 切换到 Individual Components 选项卡,向下滚动到 Code Tools
  • 发现这个小复选框需要检查 NuGet targets and build tasks 这是我在工作和家中的 2 个工作站之间唯一可以轻易辨别的不同之处。我认为选中该框会有所不同,而不仅仅是我在恢复 nugets 后被迫关闭并重新启动 Visual Studio 的事实......但你永远不会知道。

只是 运行 解决了这个问题,因为该应用程序以前可以正常工作,但最近已从 repo 下拉到新计算机。第一个问题是未找到 Nuget 包,当我们修复该错误时,这个问题又出现了。解决方案是:

  1. 关闭Visual Studio
  2. 打开解决方案
  3. 删除 Microsoft.Net.Compilers(因为它已被弃用)
  4. Update/Install Microsoft.CodeDom.Providers.DotNetCompilerPlatform 和 Microsoft.Net.Compilers。工具设置为最新版本

5。清理并重建解决方案

我的直觉是这两个包的版本不匹配导致语言选项出现问题,但我不知道这是怎么突然出现的,因为它在上次签入项目时工作正常。

在我的例子中,我用新版本 visual studio 打开了解决方案,然后尝试 运行 使用旧版本

  1. 用记事本打开csproj

  2. 修改 LangVersion 元素

    来自

    <LangVersion>7.3</LangVersion>
    

    <LangVersion>6</LangVersion>
    

为您的场景使用合适的值

我在 VS 2019 的解决方案中遇到了同样的问题。除了这个错误之外,这个解决方案中的两个项目还有另一个错误:

cs0006: c# metadata file could not be found

修复方法是关闭 VS,从这些项目中删除 obj 文件夹,再次打开解决方案并编译。

在我的例子中,问题是 Typescript 版本设置为“2.5(不可用)”,在项目属性中,选项卡 TypeScript 构建。我更改为“使用最新可用”来解决问题。

为什么设置为不可用的版本?因为源文件是从存档中检出的,该存档源自另一台装有 TS 2.5 版的电脑上的 VisualStudio。当前PC没有2.5,只有4.1.

None 其中对我有用。我的代码可以顺利编译,但是当我尝试发布它时会因上述错误而失败。要修复它,我发现文件 Directory.Build.Props 需要编辑为

<Project>
 <PropertyGroup>
   <LangVersion>Default</LangVersion>
 </PropertyGroup>
</Project>

希望有人发现这个金块有用!

's answer and this post 帮了我一点忙。后者在本地解决了这个问题,但它在我的构建服务器上失败了,出现了一些关于“GetPathsOfAllDirectoriesAbove()”的错误。在进入那个兔子洞之前(因为服务器上的构建从来没有问题),我来到了 bkwdesign 的答案。我没有关注整个事情,只是更新了 VS 2019 并且它在本地工作。我的构建服务器继续正常。

在 VS 2022 中打开您的项目,因为 VS 2019 不支持 .NET 6。