Можно ли запустить событие после сборки, когда вся компиляция завершится в 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.