Как я могу подавить статический анализ кода во время сборки?
-
12-09-2019 - |
Вопрос
У нас есть решение с 15 проектами, во всех из которых включен анализ кода.
На создание решения уходит более 60 секунд, что очень долго, если сидеть в ожидании.
Если я отключу анализ кода, он будет построен за 10 секунд.
Мне бы хотелось иметь возможность отключать анализ кода на разовой основе.Но мне все же нужен анализ кода при сборке перед регистрацией, а также я хочу, чтобы наш сервер сборки (круиз-контроль) продолжал работать с включенным анализом кода.
Я бы предпочел, чтобы анализ кода выполнялся из Visual Studio, чтобы я мог сразу перейти к исходному коду, если получу ошибку/предупреждение.
Решение
Вот как мы это делаем:
- Отключить (вернее:не включайте) Анализ кода (CA) для отладочных сборок.
- Создайте новую конфигурацию сборки под названием «Проверка», в которой включен анализ кода, а предупреждения рассматриваются как ошибки.
- Оставьте сборку релиза как есть.
Обычно мы осуществляем разработку в режиме отладки, и у нас просто есть неформальное правило, согласно которому вы должны пройти сборку Verify перед регистрацией.
Об этом легко забыть, но мы запускаем непрерывную интеграцию (CI) в сборке Verify, поэтому, если вы возвращаете код, который имеет предупреждения анализа кода, вы нарушаете сборку - поэтому люди быстро научатся выполнять сборку Verify вручную перед возвратом: )
Вы также можете просто использовать Debug без CA и Release с CA, но поскольку включение CA определяет константу CODE_ANALYSIS, это означает, что подавления CA будут включены в IL, а я предпочитаю не включать их в двоичные файлы Release (YMMV).
Другие советы
У нас была такая проблема с нашими вещами.У нас только что есть четыре 64-битных процессора и от 8 до 16 ГБ оперативной памяти.Плюс мы старались ограничить количество проектов в любой момент.Не самое изящное решение, но оно очень помогло.