Проверки Visual Studio 2019 на наличие NullableContextOptions

#c# #visual-studio-2019 #c#-8.0 #nullable-reference-types

#c# #visual-studio-2019 #c #-8.0 #nullable-ссылочные-типы

Вопрос:

Я использую последнюю версию предварительного просмотра VS 2019, но не получаю никаких проверок или ошибок / предупреждений IDE с включенными NullableContextOptions в csproj.

Я получаю предупреждения компилятора при сборке, но никаких визуальных предупреждений в редакторе IDE. Я бы подумал, что у них будет поддержка для этого, есть ли что-то, что нужно сделать, чтобы включить проверки?

Мой файл csproj:

 <Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.0</TargetFramework>
        <RootNamespace>ConsoleApp</RootNamespace>
        <LangVersion>8.0</LangVersion>
        <NullableContextOptions>enable</NullableContextOptions>
        <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    </PropertyGroup>

</Project>
  

Комментарии:

1. Глупый вопрос, вы закрыли и снова открыли решение и VS? Также попробуйте выгрузить проект и затем перезагрузить… Об этой проблеме сообщалось, пожалуйста , смотрите там об этом.

2. Теперь, когда VS 2019 фактически вышел, похоже, что они что-то изменили. С VS2019 это работает, но требует предварительного просмотра LangVersion.

3. да, кто знает с MS … 😉 Я обнаружил, что ранее, выполняя простой поиск, очевидно, это была проблема, но она была исправлена в выпуске…

4. Да, я отчасти виноват в том, что пытаюсь использовать неподдерживаемую языковую версию, но проект не будет завершен в течение нескольких месяцев, и я мог бы увидеть много преимуществ от проверок ссылочного типа с нулевым значением.

5. да, определенно, избегание этих распространенных ошибок позволит избежать других проблем в будущем с помощью этой новой проверки…

Ответ №1:

Теперь, когда выпущен VS 2019, эта функция работает, но мне потребовалось использовать «предварительный просмотр» вместо «8.0» в качестве языковой версии.

 <PropertyGroup>
    <LangVersion>preview</LangVersion>
    <NullableContextOptions>enable</NullableContextOptions>
</PropertyGroup>
  

Ответ №2:

В Visual Studio 16.2 имя свойства было изменено на Nullable .

 <PropertyGroup>
    <LangVersion>preview</LangVersion>
    <Nullable>enable</Nullable>
</PropertyGroup>