Предупреждения как ошибки против устаревшего атрибута в Visual Studio

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

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

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

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

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

Ответ 1

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

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

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