Я пытаюсь получить TeamCity для создания моего решения на C# и выполнения StyleCop и сбоя сборки, если есть какие-либо нарушения. Я хочу, чтобы он выполнялся так же, как при щелчке правой кнопкой мыши по решению в обозревателе решений в Visual Studio, а затем нажмите Run StyleCop
, за исключением того, что я хотел бы, чтобы предупреждения обрабатывались как ошибки.Validate StyleCop в TeamCity
Я пробовал предложения в this answer, однако у меня было несколько проблем с его внедрением.
Проблемы были:
<CreateItem Include="$(SourceFolder)\**\*.cs">
был включая все .cs
файлы в структуре папок и не уважая индивидуальные настройки StyleCop для каждого проекта (например, файлы, чтобы исключить).
Другой вариант - иметь файл build.xml
, чтобы на него можно было ссылаться MSBuild. Однако это означало бы сохранение файла XML, а также файла .sln
. Я нашел this answer что означало, вы можете включить ссылку решения в XML как так
<include name="MyTopSecretApplication.sln"/>
, но по какой-то причине он не проходил скомпилированные файлы, когда у меня был CreateItem
комплекта как
<CreateItem Include="@(Compile)">
который должен теоретически передавать скомпилированные файлы и учитывать параметры include/exclude, если было установлено condition
(как показано ниже) (я предполагаю, потому что XML-файл, содержащий , означал, что скомпилированные файлы не были переданы).
Condition="('%(Compile.ExcludeFromStyleCop)' != 'true') and ('%(Compile.ExcludeFromSourceAnalysis)' != 'true')"
Есть хороший способ, я могу получить MSBuild построить свой файл решения в TeamCity, проверить, что правила StyleCop следуют, и соблюдать правила StyleCop за проект?