2010-02-26 19 views
9

Proje dosyalarımızda, StyleCop kullanıyoruz ve oluşturma işlemi sırasında çalışıyoruz. Proje dosyalarımızı StyleCop hedeflerini şu şekilde değiştirdik:StyleCop MS Sihir mi inşa ediyorsunuz? StyleCop hedefini kim arıyor?

<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> 
--> 

Sorunun nedeni bu mu? Microsoft.StyleCop.targets dosyasında tanımlanan StyleCop hedefini kim arıyor?

Yapabileceğim kadarıyla, yapıyı başlattığınızda çalıştırılan tek hedef "Oluşturma" hedefi. Microsoft.StyleCop.targets dosyasının dışında herhangi bir yerde "StyleCop" hedefine herhangi bir başvuru bulamıyorum. Yani yine neden çağrılıyor?

Bilmek istediğim nedeni, kendi özel görevlerimiz için benzer bir şey yapabilseydik iyi olur. Sadece yapılması gereken tüm diğer görevler ile birlikte yerine bu dosyada StyleCop içe sonra

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" /> 
<Import Project="Common.targets" /> 

Ve: gibi Bunun yerine bizim 78 csproj tüm dosyaları düzenleme nedeniyle, sadece kendi genel hedefi alabiliriz Proje bazında

Lütfen

Lütfen anlama yardım edin.

cevap

9

Eureka!

gizli sos StyleCop hedefler dosyasında aşağıdaki satırları geçerli:

<PropertyGroup> 
    <BuildDependsOn>$(BuildDependsOn);StyleCop</BuildDependsOn> 
    <RebuildDependsOn>StyleCopForceFullAnalysis;$(RebuildDependsOn)</RebuildDependsOn> 
</PropertyGroup> 

Microsoft.Common.targets "Yap" hedef şöyle bildirildi: Bu demektir

<Target Name="Build" 
     Condition=" '$(_InvalidConfigurationWarning)' != 'true' " 
     DependsOnTargets="$(BuildDependsOn)" 
     Outputs="$(TargetPath)" /> 

"BuildDependsOn" özelliğinde listelenen herhangi bir hedef, yapı sırasında çağrılacak. Bu hoş değil mi? :)

İlgili konular