Предупреждения как ошибки по сравнению с устаревшим атрибутом в Visual Studio - PullRequest
10 голосов
/ 05 января 2011

Нам нравится параметр Warnings as Errors , поскольку у нас есть политика не проверять код с предупреждениями, и это единственный эффективный способ обеспечить его применение.

Мы такженравится использовать устаревший атрибут для пометки методов, которые больше не должны использоваться.

Проблема в том, что добавление устаревшего атрибута в метод или класс немедленно приводит к тому, что тонны проектов не создаютсяне говоря уже о проблемах, если вызов API .NET устарел).

У кого-нибудь есть хорошее решение для этого?

Нам нужен видимый, трудно игнорируемый индикатор, который вы используетеустаревший API, но это не приводит к сбою сборки.Мы хотим видеть предупреждения в IDE и в сборках CI.

Ответы [ 2 ]

1 голос
/ 05 января 2011

Простым решением было бы иметь конфигурацию сборки (например, конфигурацию отладочной сборки) без предупреждений в качестве ошибок.Однако, если цель заключается в том, чтобы указать вашим разработчикам, что что-то не так при сборке, это нехорошо, так как они забудут сделать сборку релиза перед регистрацией.

Альтернативно, вместо использования "предупреждений"как ошибки »вы можете настроить свой набор правил так, чтобы он сам выдавал ошибки, а не выдавал предупреждения.Это, конечно, будет означать, что предупреждения, не относящиеся к CA, не вызовут ошибок.

Лучшее решение, я думаю, будет обрабатывать его на стороне сервера.В идеале у вас должна быть какая-то gated checkin , так что ваш репозиторий кода отклоняет коммиты, которые не создаются с использованием его определения сборки (с предупреждениями как ошибки, и вашими разработчиками).может оставить предупреждения как ошибки отключены).Я подозреваю, что это функция только для TFS-2k10.

0 голосов
/ 07 августа 2018

Этот другой пост переполнения стека должен помочь: https://stackoverflow.com/a/468166/9195608

По сути, он говорит:

Вы можете добавить тег WarningsNotAsErrors в файле проекта.

<PropertyGroup>
    ...
    ...
    <WarningsNotAsErrors>612,618</WarningsNotAsErrors>
</PropertyGroup>

Примечание: 612 и 618 - оба предупреждения об Устаревшем

Разница между 612 и 618 - комментарий ObsoleteAttribute.Атрибут ObsoleteAttribute без комментариев генерирует ошибку 612, а атрибут с комментарием генерирует 618.

...