Code Metrics Task
The source code includes an example of CodeMetrics inspecting MSBuildCodeMetrics code. The example uses the following structure:
XML
<Target Name="demo" DependsOnTargets="build">
<ItemGroup>
<Providers Include="MSBuildCodeMetrics.VisualStudioMetrics.VisualStudioCodeMetricsProvider, MSBuildCodeMetrics.VisualStudioMetrics">
<TempDir>$(MSBuildProjectDirectory)\TempDir</TempDir>
</Providers>
<Providers Include="MSBuildCodeMetrics.Core.Providers.CountFilesByExtensionProvider, MSBuildCodeMetrics.Core.Providers" />
<Providers Include="MSBuildCodeMetrics.Core.Providers.CountLOCProvider, MSBuildCodeMetrics.Core.Providers">
<FileTypes>.cs=C# Sources;.csproj=C# Projects</FileTypes>
</Providers>
<Providers Include="MSBuildCodeMetrics.Core.Providers.CountProjectsByProjectTypeProvider, MSBuildCodeMetrics.Core.Providers" />
<AllFiles Include="..\src\**\*.*" />
<SourceFiles Include="..\src\**\*.cs;..\src\**\*.csproj" />
<ProjectFiles Include="..\src\**\*.csproj" />
<BinariesInOutputDir Include="$(BinariesOutputDir)\*.dll" />
<Metrics Include="LinesOfCode">
<ProviderName>VisualStudioMetrics</ProviderName>
<Ranges>50;10;1</Ranges>
<Files>@(BinariesInOutputDir)</Files>
</Metrics>
<Metrics Include="CyclomaticComplexity">
<ProviderName>VisualStudioMetrics</ProviderName>
<Ranges>10;5;4;3;2;1</Ranges>
<Files>@(BinariesInOutputDir)</Files>
</Metrics>
<Metrics Include="CountFilesByExtension">
<ProviderName>CountFilesByExtension</ProviderName>
<Files>@(AllFiles)</Files>
<Ranges>100</Ranges>
</Metrics>
<Metrics Include="CodeLOC">
<ProviderName>LOC</ProviderName>
<Files>@(SourceFiles)</Files>
<Ranges>500</Ranges>
</Metrics>
<Metrics Include="ProjectTypeCount">
<ProviderName>CountProjectsByProjectTypeProvider</ProviderName>
<Files>@(ProjectFiles)</Files>
<Ranges>100</Ranges>
</Metrics>
</ItemGroup>
<MakeDir Directories="$(MSBuildProjectDirectory)\TempDir" />
<CodeMetrics Providers="@(Providers)" Metrics="@(Metrics)" ShowDetailsReport="true" FileOutput="true" OutputFileName="metrics.xml" />
</Target>