Правила совместного использования кода в MSBuild - PullRequest
2 голосов
/ 11 ноября 2008

Я изо всех сил пытаюсь определить список CodeAnalysisRules, который следует исключить из инструментов анализа кода, когда MSBuild выполняет мой файл TFSBuild.proj.

Но каждый раз, когда я тестирую его, мой список исключаемых правил анализа кода игнорируется, а Team Build просто соблюдает настройки правил анализа кода для каждого проекта.

У кого-нибудь есть пример файла TFSBuild.proj, который разделяет один список исключений из Правил анализа кода для всех проектов, созданных в Team? Я использую Team System 2008.

Спасибо за любую помощь?

Ответы [ 3 ]

1 голос
/ 31 марта 2009

Мы делаем это с помощью Политики регистрации анализа кода. Вы можете настроить это через Team System. Для реализации просто выберите ваши правила, а затем щелкните правой кнопкой мыши Решение -> Заменить параметры анализа кода политикой регистрации.

1 голос
/ 27 октября 2009

Я не вижу особого смысла пытаться переопределить настройки csproj другим набором - наверняка вы хотите использовать одни и те же настройки CA (или полностью отключить CA) всякий раз, когда вы создаете код?

Как говорит foosnazzy, в MSBuild (как правило) нет необходимости делать это. Вы можете использовать регистрацию CA в политике, чтобы установить правила, которые вы хотите применить. Затем щелкните правой кнопкой мыши свое решение в обозревателе решений и примерно в половине контекстного меню появится подменю параметров для применения политики CA TFSProjects ко всем проектам в решении. Вы можете перезаписать настройки проекта на сервере или объединить их.

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

(Это было доступно в VSTS2005, но не работало - значения были «объединены» со значениями в проектах, так что любые существующие правила CA были увеличены по серьезности (до предупреждения или ошибки), но вы не смогли отключить правила ЦС (ошибка понижения -> предупреждение -> отключено). Кроме того, каждый раз, когда вы открываете решение, настройки ЦС будут «сдвигаться», поэтому вам приходилось повторять их каждые несколько дней, чтобы поддерживать его работу)

Альтернативой является настройка правил CA, которые вы хотите использовать в отдельном проекте, поиск элемента XML, который содержит список, и использование текстового редактора (или нескольких строк кода C #) для глобального поиска и замены элемент CA во всех файлах csproj в вашем проекте. Так я и делал, пока не появился VSTS2008 - как только вы заподозрили технику, для переноса настроек через все csprojs потребуется всего несколько секунд. Преимущество этого состоит в том, что вы можете более избирательно подходить к проектам, к которым применяются правила CA.

0 голосов
/ 11 ноября 2008

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

http://bloggingabout.net/blogs/rick/archive/2007/09/04/howto-disable-specific-code-analysis-rules-for-a-team-build.aspx

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

Кто-нибудь еще знает что-нибудь, что работает? - это было решение / обходной путь VS2005, поэтому я надеялся, что это будет проще в VS2008 Team System, но пока не нашел ничего другого

...