В наших файлах проекта мы используем StyleCop и запускаем его во время процесса сборки. Мы изменили наши файлы проекта, включив в них объекты StyleCop:
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
<Import Project="..\..\Tools\Microsoft\StyleCop\v4.3\Microsoft.StyleCop.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
Вопрос в том, почему это работает? Кто вызывает цель StyleCop, определенную в файле Microsoft.StyleCop.targets?
Насколько я могу судить, единственной целью, запускаемой при запуске сборки, является цель "Создать". Я не могу найти ссылки на цель "StyleCop" вне любого файла Microsoft.StyleCop.targets. Итак, почему это называется?
Я хочу знать, потому что было бы здорово, если бы мы могли сделать что-то подобное для наших собственных задач. Поэтому вместо редактирования всех наших 78 файлов csproj мы могли бы просто импортировать нашу общую цель, например:
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
<Import Project="Common.targets" />
А затем просто импортируйте StyleCop в этот файл вместе со всеми нашими другими задачами, которые необходимо выполнить для каждого проекта.
Пожалуйста, помогите мне понять.