Архив рубрики: Software

Windows Forms: Feature target-typed object creation is not available in C# 7.3

Пытаюсь в стандартном проекте Windows Forms сделать проверку прав пользователя:

using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
{
  WindowsPrincipal principal = new(identity);
  isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
}

Но компилятор выдаёт ошибку:

Error Feature ‘target-typed object creation’ is not available in C# 7.3. Please use language version 9.0 or greater.

 

Как сказано в сообщении об ошибке, функционал ‘target-typed object creation’ нам доступен в C#, начиная с версии 9. Если посмотреть таблицу версий C#, станет понятно, что эта версия входит в .NET 5.
Таким образом, я попробовал включить поддержку языка C# версии 9+ в настройках сборки проекта:
Solution ExplorerProjectNamePropertiesApplication:
Target framework = …

И вот тут мне пришлось искать решение, т.к. для моего проекта максимальная версия была 4.8.1

Эти шаги мне не помогли

1. В дереве проектов выбрать проект.
2. В меню перейти в Project и выбрать Unload project.
3. Опять в меню выбираем FileOpenFile…
4. В папке нашего проекта находим файл с расширением .csproj и открываем его.
5. На текущий момент актуальная версия 8.0 (8.0.3), поэтому вписываем её.

<TargetFrameworkVersion>v8.0.3</TargetFrameworkVersion>

6. Сохраняем изменения и закрываем файл.
7. В дереве проекта выбираем проект и нажимаем Reload Project.
8. Появится сообщение, где мы выбираем загрузку нужной версии:
Download .NET Framework 8.0.3 targeting pack (opens in browser)

Правда у меня открылся какой-то нелепый Bing, где даже не открылась страница загрузки, поэтому скачиваем с официальной страницы .NET.
Здесь скачается версия 8.0.203

 

Даже если мы установим этот пакет, всё равно будет появляться окошко с предложением скачать SDK с сайта.

Решение

Решение нашёл в MSDN.
1. Открываем проект в Visual Studio.
2. Переходим в Дополнения:
MenuExtensionsManage Extensions…
3. Находим и устанавливаем .NET Upgrade Assitant
4. Перезапускаем Visual Studio
5. Ждём, когда установится дополнение
6. Открываем наш проект
7. В дереве проектов на нашем проекте нажимаем правую кнопку мыши и выбираем Upgrade.
8. В этом окошке выбираем Upgrade project to a newer .NET version
9. Подтверждаем все запросы на апгрейд.