Обработка предупреждений как ошибок в Visual Studio 2019 для сборки, но НЕ для intellisense - PullRequest
0 голосов
/ 18 февраля 2020

Я только что начал использовать <TreatWarningsAsErrors>true</TreatWarningsAsErrors> в моих файлах csproj, и, когда испортил немного кода, я обнаружил, что трачу немного больше времени на наведение всех красных линий, чтобы найти ту, которая на самом деле ошибка, так как я хочу установить приоритет над ошибками над предупреждениями. Было бы замечательно, если бы предупреждения intellisense по-прежнему отображались в текстовом редакторе в виде зеленых линий, но также приводили к сбою сборки.

Я думаю, что я мог бы заставить тестовые / промежуточные / производственные сборки терпеть неудачу, передавая /warnaserror в MSBuild, но я хочу, чтобы сборка разработки в VS также не работала, если есть какие-либо предупреждения.

Кто-нибудь знает, возможно ли это? Я использую. NET Framework 4.8 (но также было бы интересно узнать, возможно ли это в. NET Core) в Visual Studio 2019.

Большое спасибо!

1 Ответ

1 голос
/ 19 февраля 2020

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

Насколько я знаю, Intellisense очень чувствителен к перехвату ошибок , и как только встроенные предупреждения превращаются в ошибки, intellisense будет отлавливать их как ошибки.

Кто-нибудь знает, возможно ли это? Я использую. NET Framework 4.8 (но было бы также интересно узнать, возможно ли это в. NET Core) в Visual Studio 2019.

Редактировать 1

Так что невозможно различать guish между предупреждениями и реальными ошибками в этом состоянии. И в этом состоянии Intellisense не различает их.

В качестве альтернативы , вы можете попробовать мое предложение:

Предложение

Вы можете создать новую конфигурацию под названием Production , которая отличается от Debug или Release . В этом решении первый шаг - найти реальную ошибку, а второй - превратить предупреждение в ошибку, чтобы вы могли оптимизировать код.

Первый , вы можете используйте Debug или Release для сборки проекта в этом режиме, он может отследить реальную ошибку сборки, чтобы вы могли исправить эти ошибки преимущественно.

Секунда , изменение Configuration до Production. Этот этап часто называют завершающим этапом выпуска продукта, и процесс сборки превратит предупреждения в ошибки, чтобы вы могли обнаружить плохой код и оптимизировать его.

Реальный вопрос заключается в том, как создать Production. Конфигурация:

Шаг

1) Нажмите меню Build -> Configuration Manager -> нажмите new в Active solution configuration -> создать новую конфигурацию с именем Production.

enter image description here

2) выгрузить проект и добавить <TreatWarningsAsErrors>true</TreatWarningsAsErrors> в Производство , например:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Production|AnyCPU'">
    <DebugSymbols>true</DebugSymbols>
    <OutputPath>bin\Production\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <DebugType>full</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
    <Prefer32Bit>true</Prefer32Bit>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  </PropertyGroup>

Одним словом , сначала измените Configuration на Debug или Release, затем соберите проект, чтобы найти реальные ошибки, чтобы исправить их. Во-вторых, измените значение Configuration на Production, постройте проект, чтобы найти ошибки с предупреждением, чтобы исправить их.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...