Неверный параметр 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 , выполнив следующие действия:
Закройте все открытые экземпляры Visual Studio
Откройте «Установщик Visual Studio».
Нажмите "Изменить" в версии Visual Studio, которую вы используете.
II. В моем случае я использую VS2019 Professional 16.11.0
В верхней части диалогового окна выберите «Отдельные компоненты».
В строке поиска введите «Рослин».
Отметьте оба варианта, они должны выглядеть так
я. В случае сбоя образа доступны следующие варианты: «.NET Compiler Platform SDK» и «C # и Visual Basic Roslyn Compilers»
II. В моем случае второй уже был проверен
Подтвердите изменения, нажав «Изменить» в правом нижнем углу диалогового окна.
Как только я снова открыл свой проект, я смог успешно скомпилировать.
Попробуйте выполнить обновление нижеуказанных пакетов NuGet (в зависимости от того, какой из них установлен), чтобы решить проблему:
-Microsoft.CodeDom.Providers.DotNetCompilerPlatform
-Microsoft.Net.Compilers
Для нас простая очистка и перестройка решили проблему без изменения каких-либо других настроек или конфигураций.
Обновите пакет nuget Microsoft.Net.Compilers. Это сработало для меня .. ура!
Во всех проектах, созданных в VS, на вкладке «Сборка» есть свойство «Цель платформы», которое имеет определенное значение, например x64, any и x86. Когда вы открываете экземпляр VS для определенного решения, по умолчанию в верхней строке меню отображается «любой процессор», что создает конфликт. Убедитесь, что у вас везде одинаковый конфиг, это даст вам хорошую сборку.
У меня была похожая проблема. Установка пакета таргетинга .Net Framework 4.8 решила проблему.
- перейти к установщику VS
- нажмите «Изменить»
- в разделе «Отдельные компоненты» проверьте пакет таргетинга .Net Framework 4.8.
- установить
- откройте свое решение и создайте его
на случай, если кто-то столкнется с подобной ошибкой:
Проект-->Свойства-->Сборка-->Дополнительно-->затем Изменить языковую версию следующим образом: [