Правила совместного использования кода в MSBuild
Я изо всех сил пытаюсь определить список CodeAnalysisRules, который следует исключить из инструментов анализа кода, когда MSBuild выполняет мой файл TFSBuild.proj.
Но каждый раз, когда я тестирую его, мой список исключаемых правил анализа кода игнорируется, а Team Build просто соблюдает настройки правил анализа кода для каждого проекта.
У кого-нибудь есть пример файла TFSBuild.proj, в котором есть один список исключений из правил анализа кода для всех проектов, созданных в Team? Я использую Team System 2008.
Спасибо за любую помощь?
3 ответа
Мы делаем это с помощью Политики регистрации анализа кода. Вы можете настроить это через Team System. Для реализации просто выберите ваши правила, а затем щелкните правой кнопкой мыши Решение -> Заменить параметры анализа кода политикой регистрации.
Я не вижу особого смысла пытаться переопределить настройки csproj другим набором - наверняка вы хотите использовать одни и те же настройки CA (или полностью отключить CA) всякий раз, когда вы создаете код?
Как говорит foosnazzy, в MSBuild (как правило) нет необходимости делать это. Вы можете использовать регистрацию CA в политике, чтобы установить правила, которые вы хотите применить. Затем щелкните правой кнопкой мыши свое решение в обозревателе решений и примерно на половине пути в контекстном меню появится подменю параметров для применения политики CA TFSProjects ко всем проектам в решении. Вы можете перезаписать настройки проекта на сервер или объединить их.
Он может копировать настройки только для текущей конфигурации, поэтому вам может потребоваться сделать это дважды, если вы хотите применить те же настройки CA к Debug и Release. (Я смутно помню, что это произошло, но мы не запускаем CA в нашей сборке релиза, поэтому я не пытался это недавно)
(Это было доступно в VSTS2005, но не работало - значения были "объединены" со значениями в проектах, так что любые существующие правила CA были увеличены по серьезности (до предупреждения или ошибки), но вы не смогли отключить правила CA (опустить ошибку -> предупреждение -> отключено.) Кроме того, каждый раз, когда вы открываете решение, настройки ЦС будут "сдвигаться", поэтому вам приходилось применять их каждые несколько дней, чтобы оно работало)
Альтернативой является установка необходимых правил CA в одном проекте, поиск элемента XML, который содержит список, и использование текстового редактора (или нескольких строк кода C#) для глобального поиска и замены элемента CA во всех файлах csproj в вашем проекте. Так я и делал, пока не появился VSTS2008 - как только вы заподозрили технику, для переноса настроек через все csproj s потребуется всего несколько секунд. Преимущество этого состоит в том, что вы можете более избирательно подходить к проектам, к которым применяются правила CA.
Ну, мне потребовалось некоторое время, чтобы найти это, но вот лучший ответ, который я мог найти
Это работает, и это позволяет мне применять согласованный набор правил для всех моих решений, не посещая файл каждого проекта, и это очень важно для меня, так как мы настраиваем наборы правил и не хотим каждый раз обновлять каждый проект вручную
Кто-нибудь еще знает что-нибудь, что работает? - это было решение / обходной путь VS2005, поэтому я надеялся, что это будет проще в Team System VS2008, но пока не нашел ничего другого