Применение пользовательских правил стиля для политики регистрации в TFS - PullRequest
3 голосов
/ 24 февраля 2010

Я установил политику CheckIn StyleCop (от здесь ), и она прекрасно работает. Однако я написал несколько пользовательских правил, которые я хочу применять в рамках политики CheckIn (Visual Studio 2008, Team Explorer 2008, TFS 2005).

Пользовательские правила хорошо отображаются в файле настроек, когда я щелкаю правой кнопкой мыши по проекту и нажимаю «Настройки StyleCop». Однако, когда я добавляю свою политику CheckIn и пытаюсь импортировать те же параметры. Файл StyleCop, мои Пользовательские правила не отображаются в окне редактора.

Другая проблема, возможно связанная с тем, что мои пользовательские правила появляются в редакторе настроек StyleCop при открытии редактора из Visual Studio. Однако, если я открою редактор, дважды щелкнув файл настроек в проводнике Windows, мои правила не будут видны.

Теперь кто-нибудь может сказать мне, возможно ли на самом деле иметь настраиваемые правила как часть политики checkIn, и если да, то как их отобразить в окне редактора настроек StyleCop при добавлении политики checkIn.

Спасибо,

Neil

Ответы [ 2 ]

3 голосов
/ 06 марта 2010

Да, это определенно возможно!

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

Первый шаг - правильно настроить StyleCop на компьютере разработчика с пользовательскими правилами:
1) StyleCop должен быть установлен на машине разработчика
2) Пользовательские правила должны быть установлены в том же каталоге, что и StyleCop (или, опционально, в дочернем каталоге). Если они установлены где-либо еще, то они вряд ли будут работать правильно, если они вообще работают.
3) Файлы Settings.StyleCop в этом установочном каталоге, каталог, содержащий анализируемый проект, и все каталоги выше этого должны быть объединены, чтобы включить ваши пользовательские правила. Лучше всего это проверить, дважды щелкнув файл Settings.StyleCop в каталоге проекта и убедившись, что ваши правила включены в редакторе.

Следующий момент еще сложнее, если StyleCop правильно работает на компьютере сборки.
Это опять те же три пункта, но на машине сборки, на которой будет запущен StyleCop для политики регистрации. Таким образом, на сборочной машине должен быть установлен StyleCop, установлены пользовательские правила и все необходимые файлы Settings.StyleCop для создания тех же общих правил правил StyleCop на сборочной машине, что и на компьютере разработчика. Это легче всего сломать, просто не понимая, что на сборочной машине должен быть установлен StyleCop. Даже если установлен StyleCop, StyleCop может работать через интеграцию VS (как вы, без сомнения, знакомы) или StyleCop через интеграцию MSBuild (что менее распространено и, как правило, менее понятно). Машина сборки часто настроена на использование интеграции MSBuild, что означает, что пользовательские правила должны быть установлены в каталоге% Program Files% \ MSBuild \ Microsoft \ StyleCop \ v4.3 вместо каталога% Program Files% \ StyleCop, который вы используете. может ожидать. Кроме того, если вы изменили базовый файл Settings.StyleCop в каталоге% Program Files% \ StyleCop, вам придется скопировать этот файл в каталог% Program Files% \ MSBuild \ Microsoft \ StyleCop \ v4.3 в Чтобы получить такой же эффект на сборке машины. Обратите внимание, что выполнение копирования / вставки с проверенным рабочим файлом Settings.StyleCop с компьютера разработчика - лучший способ убедиться, что на компьютере сборки установлены правильные параметры. StyleCop очень требователен к этим XML-файлам, и малейшая опечатка может привести к странному поведению, отладка которого займет несколько дней. Не редактируйте вручную. Вы были предупреждены. 8)

Так что, безусловно, существует множество способов не совсем правильно понять это, и вы увидите странность точно так же, как вы описали, пока не получите ее там. К счастью, учитывая три перечисленных момента и разницу между «StyleCop на сборочной машине» и «StyleCop на разработчике», в конечном итоге все должно работать гладко. Ну, по крайней мере, у меня все получалось.

Удачи!

1 голос
/ 10 июля 2010

Я написал политику регистрации, доступную в CodePlex, которая поддерживает настраиваемые правила (проверено), которую можно найти по адресу: http://sourceanalysispolicy.codeplex.com

...