Можно ли запустить событие после сборки, когда вся компиляция завершится в Visual Studio 2013?

У меня есть решение с несколькими проектами, и мы используем FxCop. Мы хотим запустить его, как только запрошенная компиляция завершится (это может быть один проект, папка с несколькими папками или целое решение).

Есть ли способ сделать это? В настоящее время мы делаем это для каждого проекта, но у этого есть некоторые недостатки.

2 ответа

Да, есть способ сделать это, поместив рядом с файлом решения файл с определенным шаблоном именования: after.{Your solution name here}.sln.targets

<!--?xml version="1.0" encoding="utf-8"?-->
<project toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <target name="AtTheStart" beforetargets="Build">
    <message text="GenerateCode target running" importance="high">
    </message>
  </target>
  <target name="AtTheEnd" aftertargets="Build">
    <message text="GenerateCode target running" importance="high">
    </message>
  </target>
</project>

Но если вы хотите эффективно запустить FxCop и установить visualstudio, вы можете по-настоящему развлечься во время сборки, включив /p:RunCodeAnalysis:true или же /p:RunCodeAnalysis:always по вызову MsBuild. Это запустит настроенный файл набора правил во время сборки. /CodeAnalysisRuleSet:PathTo.ruleset позволит вам указать конкретный файл набора правил.

Командная строка всегда будет перезаписывать собственную конфигурацию проекта. И это будет работать самым оптимальным образом.

Я бы поставил набор проектов FxCop (со всеми dll во всех ваших проектах) и вызвал его после того, как все проекты встроены в VS.

Другие вопросы по тегам