2008-11-10 2 views
2

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

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

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

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

ответ

0

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

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

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

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

1

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

1

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

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

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

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

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

+0

Что делать, если вы не используете TFS? – 2010-10-29 12:50:19

Смежные вопросы