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>