Неверный параметр 7.3 для /langversion; должно быть ISO-1, ISO-2, Default или целым числом от 1 до 6.

Я использую Visual Studio 17 (версия 15.8.5), мой проект нацелен на.NET Framework 4.8, и я попытался установить версию C# для использования (через вкладку Build в окне Properties) C# 7.3 (это максимальная версия, которую можно выбрать из выпадающий список). Однако при построении проекта сообщается об ошибке, как в заголовке вопроса. Я даже пробовал7.0 а также C# latest minor version, все они также сообщают об ошибке.

Похоже, среда поддерживает максимальную версию 6 (C# 6.0)?

Я пробовал установить оба Microsoft.Net.Compilers v3.6.0 а также Microsoft.Net.Compilers.Toolset v3.6.0 но это ничего не изменило.

Я хотел бы использовать функцию сопоставления с образцом, как это делает следующий простой код:

object o ...
if(o is int c){
    //do something with c (cast to int) ...
}

ОБНОВЛЕНИЕ:

Странно, что если я создаю совершенно новый проект ASP.NET MVC, он просто компилируется нормально с установленным C# 7.3. Похоже, что-то не так с конкретным проектом, над которым я работаю. Для лучшей диагностики я хотел бы поделиться этим проектом здесь по этой ссылке https://sites.google.com/site/ngaodaantoi/files/WebApiAuth.zip?attredirects=0&d=1

Рекомендуется иметь VS 2017, чтобы, возможно, воспроизвести проблему.

7 ответов

Я решил эту проблему без обновления каких-либо пакетов NuGet , выполнив следующие действия:

  1. Закройте все открытые экземпляры Visual Studio

  2. Откройте «Установщик Visual Studio».

  3. Нажмите "Изменить" в версии Visual Studio, которую вы используете.

    II. В моем случае я использую VS2019 Professional 16.11.0

  4. В верхней части диалогового окна выберите «Отдельные компоненты».

  5. В строке поиска введите «Рослин».

  6. Отметьте оба варианта, они должны выглядеть так

    я. В случае сбоя образа доступны следующие варианты: «.NET Compiler Platform SDK» и «C # и Visual Basic Roslyn Compilers»

    II. В моем случае второй уже был проверен

  7. Подтвердите изменения, нажав «Изменить» в правом нижнем углу диалогового окна.

Как только я снова открыл свой проект, я смог успешно скомпилировать.

Попробуйте выполнить обновление нижеуказанных пакетов NuGet (в зависимости от того, какой из них установлен), чтобы решить проблему:

-Microsoft.CodeDom.Providers.DotNetCompilerPlatform

-Microsoft.Net.Compilers

Для нас простая очистка и перестройка решили проблему без изменения каких-либо других настроек или конфигураций.

Обновите пакет nuget Microsoft.Net.Compilers. Это сработало для меня .. ура!

Во всех проектах, созданных в VS, на вкладке «Сборка» есть свойство «Цель платформы», которое имеет определенное значение, например x64, any и x86. Когда вы открываете экземпляр VS для определенного решения, по умолчанию в верхней строке меню отображается «любой процессор», что создает конфликт. Убедитесь, что у вас везде одинаковый конфиг, это даст вам хорошую сборку.

У меня была похожая проблема. Установка пакета таргетинга .Net Framework 4.8 решила проблему.

  1. перейти к установщику VS
  2. нажмите «Изменить»
  3. в разделе «Отдельные компоненты» проверьте пакет таргетинга .Net Framework 4.8.
  4. установить
  5. откройте свое решение и создайте его

на случай, если кто-то столкнется с подобной ошибкой:

Проект-->Свойства-->Сборка-->Дополнительно-->затем Изменить языковую версию следующим образом: [

Другие вопросы по тегам