DotNetCurry Logo

Build Customization in Visual Studio 2015 & TFS 2015 using Code Metrics Utility

Posted by: Gouri Sohoni , on 1/4/2016, in Category Visual Studio, VSTS & TFS
Views: 5792
Abstract: Execute Code Metrics Utility with the help of PowerShell Script as part of the new Build process in TFS and Visual Studio 2015

In one of my previous articles I explained how to use InvokeProcess activity. In another article I showed you how to execute Code Metrics Utility with the help of InvokeProcess. These articles were in the context of 2013 versions of Visual Studio and TFS where we had XAML build definitions.


In this article, I will discuss how to execute Code Metrics Utility with the help of PowerShell Script as part of the new Build process in TFS 2015. In the same context, you may also want to check how easy it is to customize build using Visual Studio 2015.

Code Metrics is a built-in utility in Visual Studio. As the name suggests, it provides information about the code whether it is maintainable or not. Originally this algorithm was developed by Carnegie-Mellon University. Microsoft adopted this and incorporated it as a part of Visual Studio from Visual Studio version 2008 onwards. It evaluates code based upon 4 criteria - Class Coupling, Depth of Inheritance, Cyclomatic Complexity and Number of Lines of Code.

Class coupling finds number of dependencies on other classes (so higher number is not good). Depth of Inheritance considers chain of inheritance from the ‘Object’ class. Cyclomatic Complexity is based on the decisions and loops. And the number of lines as you may have guessed are executable lines in the code. Code Metrics creates an index that is in between the range of 0 to 100. 0 to 9 is low, 10 to 19 is moderate and 20 onwards is high. The higher the index, more are the chances of maintainable code.

Applying Code Metrics using Visual Studio is very straight forward. Just right click on the solution in Solution Explorer and select Calculate Code Metrics


Execute Code Metrics as part of the Build

Now we need to apply this utility for the binaries created by the build. That is possible by making use of PowerShell script which runs the utility and is called as an activity in the build.

For using the utility in PowerShell script, download it from here. After installing, it is available in the folder “<system drive>:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\FxCop”. We get Metrics.exe utility in this folder.

We are going to use a very simple method to incorporate this utility in the build and send the resulting report to the same folder where build binaries are dropped.

1. Let us select one project already available to which we will create a build definition and provide Code Metrics Utility.

2. We need to make the utility available on the build machine. For that, we need to add “Metrics.exe” to the source control and later copy it to the folder for execution

3. Adding the file to Source Control is very easy. Right click on the folder in which you want to add the file and select the options. Browse to the folder where Metrics.exe exists and provide appropriate comment.


4. Create a new build definition. It automatically adds 4 steps to the build definition


5. Select the first step for Visual Studio Build and select the solution to be built. For this walkthrough, we are removing the step of Visual Studio Test.


6. Moving ahead, for the step of Publish Artifact:drop, change the path from Server to file share as follows:


7. In order to execute Metrics utility, we need to use a simple PowerShell script which takes 2 parameters: the location of the build drop folder and the executable name on which the utility is to be applied

param ($path,$exeName)
pathNew= <SET THE VALUE>
Invoke-Expression -Command:$pathNew

The metrics utility takes arguments for the file for which the utility is to be applied and the output file name for report. Eg:

metrics.exe /f:”C:\windowsapp.exe” /o:Results.xml

Make sure to add $ before the complete path for any variable in script.

8. This file needs to be added to the source control so as to provide the path in the custom step we create.


9. Add a new step and select PowerShell Script


10. We need to provide the path for PowerShell script and the arguments to it


11. Once the build definition is created, save it and Queue the build.

12. The Results.xml is also dropped at the same location where all other binaries are dropped.

13. After successful triggering of build, the Results.xml file gets created with all the information about the code.


Customizing build is very easy with Visual Studio 2015. We also saw how Code Metrics utility can be used by adding a custom task to the build definition.

Was this article worth reading? Share it with fellow developers too. Thanks!
Share on Google+
Further Reading - Articles You May Like!
Gouri Sohoni is a Trainer and Consultant for over two decades. She specializes in Visual Studio - Application Lifecycle Management (ALM) and Team Foundation Server (TFS). She is a Microsoft MVP in VS ALM, MCSD (VS ALM) and has conducted several corporate trainings and consulting assignments. She has also created various products that extend the capability of Team Foundation Server.

Page copy protected against web site content infringement 	by Copyscape

Feedback - Leave us some adulation, criticism and everything in between!