CS1617:/langversion 的选项“10”无效

问题描述 投票:0回答:4

在 AppVeyor 中构建这个开源 C# 项目时,我收到错误:

CSC:错误CS1617:/langversion 选项“10”无效。使用“/langversion:?”列出支持的值。

请参阅构建日志

构建设置中,选择 Visual Studio 2022 作为构建工作映像,并且预安装软件页面列出了该映像的 .NET 5 和 6 SDK。

我错过了什么?为什么使用 MSBuild 16 而不是 17?

visual-studio msbuild dotnet-sdk
4个回答
6
投票

用VS2022启动解决方案并解决问题


1
投票

根据您的描述,错误:

CSC : error CS1617: Invalid option '10' for /langversion. Use '/langversion:?' to list supported values.
是由于在vs2022和.NET6.0环境下没有使用C#10导致的。

从您提供的构建日志中我们可以看到,在 VS2019 中构建使用的是 MSBuild16。

我们可以从 C:\Program Files\Microsoft Visual Studio�2\Community\MSBuild\Current\Bin\MSBuild.exe 找到随 Visual Studio 2022 Community 安装的 MSBuild.exe。

我们没有使用过AppVeyor。也许你可以尝试在命令行中指定 MSBuild(17) 的路径(不确定 AppVeyor 是否使用命令行构建?)来编译它,或者在选择构建设置时只选择 VS2022 和 .NET6.0。


1
投票

问题是存储库中的

appveyor.yml
将 Visual Studio 2019 作为工作映像。 AppVeyor 的工作方式是,yml 文件优先于 UI 设置。


0
投票

对于 Arch Linux 中的 JetBrains Rider 2023.2.2,这是唯一对我有用的东西:

在 .csproj 的

<PropertyGroup>
中,我添加了以下内容:

    <LangVersion>10.0</LangVersion>
    <TargetFramework>net8.0</TargetFramework>

然后就构建成功了。

然后,矛盾的是,我删除了

<TargetFramework>net8.0</TargetFramework>
它仍然可以编译???

© www.soinside.com 2019 - 2024. All rights reserved.