#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>